blob: 1d35069f29e1e38ce7acbb6197b90dabbac98474 [file] [log] [blame]
/*
* Copyright (c) 2008, 2010-2012, 2015, 2019 Eike Stepper (Loehne, Germany) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eike Stepper - initial API and implementation
*/
package org.eclipse.net4j.util.security;
/**
* @author Eike Stepper
*/
public class PasswordCredentialsProvider implements IPasswordCredentialsProvider
{
private IPasswordCredentials credentials;
/**
* @since 3.1
*/
public PasswordCredentialsProvider()
{
}
public PasswordCredentialsProvider(IPasswordCredentials credentials)
{
this.credentials = credentials;
}
/**
* @since 2.0
*/
public PasswordCredentialsProvider(String userID, char[] password)
{
this(new PasswordCredentials(userID, password));
}
/**
* @since 2.0
*/
public PasswordCredentialsProvider(String userID, String password)
{
this(userID, SecurityUtil.toCharArray(password));
}
@Override
public boolean isInteractive()
{
return false;
}
@Override
public IPasswordCredentials getCredentials()
{
return credentials;
}
/**
* @since 3.1
*/
public void setCredentials(IPasswordCredentials credentials)
{
this.credentials = credentials;
}
/**
* @author Eike Stepper
* @since 3.1
*/
public static class Delegating extends PasswordCredentialsProvider
{
private IPasswordCredentialsProvider delegate;
public Delegating(IPasswordCredentialsProvider delegate)
{
this.delegate = delegate;
}
public IPasswordCredentialsProvider getDelegate()
{
return delegate;
}
@Override
public boolean isInteractive()
{
return delegate.isInteractive();
}
@Override
public IPasswordCredentials getCredentials()
{
IPasswordCredentials credentials = super.getCredentials();
if (credentials == null)
{
credentials = delegate.getCredentials();
setCredentials(credentials);
}
return credentials;
}
}
}