blob: 949f70a85310eaed66989bc8d55ee000cc934b5c [file] [log] [blame]
package net.sf.taverna.t2.activities.externaltool;
import java.net.URI;
import net.sf.taverna.t2.security.credentialmanager.CMException;
import net.sf.taverna.t2.security.credentialmanager.CredentialManager;
import net.sf.taverna.t2.security.credentialmanager.UsernamePassword;
import de.uni_luebeck.inb.knowarc.usecases.invocation.AskUserForPw;
public class RetrieveLoginFromTaverna implements AskUserForPw {
private final String url;
private final CredentialManager credentialManager;
public RetrieveLoginFromTaverna(String url, CredentialManager credentialManager) {
this.url = url;
this.credentialManager = credentialManager;
}
private UsernamePassword getUserPass() {
try {
final String urlStr = url;
URI userpassUrl = URI.create(urlStr.replace("//", "/"));
final UsernamePassword userAndPass = credentialManager.getUsernameAndPasswordForService(userpassUrl, false, null);
return userAndPass;
} catch (CMException e) {
throw new RuntimeException("Error in Taverna Credential Manager", e);
}
}
public String getUsername() throws RuntimeException {
final UsernamePassword userPass = getUserPass();
if (userPass == null) {
throw new RuntimeException("Unable to obtain valid username and password");
}
userPass.resetPassword();
return userPass.getUsername();
}
public String getPassword() {
final UsernamePassword userPass = getUserPass();
final String pw = userPass.getPasswordAsString();
userPass.resetPassword();
return pw;
}
public String getKeyfile() {
return "";
}
public String getPassphrase() {
return "";
}
public void authenticationSucceeded() {
}
}