String msg = sm.getString("pwdlm.noinfo");
_logger.log(Level.SEVERE, msg);
throw new LoginException(msg);
}
PasswordCredential pwdCred = null;
try {
Iterator i = _subject.getPrivateCredentials().iterator();
while (i.hasNext() && pwdCred == null) {
Object privCred = i.next();
if (privCred instanceof PasswordCredential) {
pwdCred = (PasswordCredential) privCred;
}
}
} catch (Exception e) {
_logger.log(Level.WARNING, "passwordlm.nocreds", e.toString());
}
if (pwdCred == null) {
_logger.log(Level.SEVERE, "passwordlm.nopwdcred");
String msg = sm.getString("pwdlm.nocreds");
throw new LoginException(msg);
}
// Need to obtain the requested realm to get parameters.
String realm = null;
try {
realm = pwdCred.getRealm();
_currentRealm = Realm.getInstance(realm);
} catch (Exception e) {
String msg = sm.getString("pwdlm.norealm", realm);
_logger.log(Level.SEVERE, msg);
throw new LoginException(msg);
}
// Get username and password data from credential (ignore callback)
setUsername(pwdCred.getUser());
setPasswordChar(pwdCred.getPassword());
setPassword(new String(pwdCred.getPassword()));
}