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);
}
if (_currentRealm == null) {
String msg = sm.getString("pwdlm.norealmavail", realm);
_logger.log(Level.SEVERE, msg);
throw new LoginException(msg);
}
// Get username and password data from credential (ignore callback)
_username = pwdCred.getUser();
_password = pwdCred.getPassword();
// Delegate the actual authentication to subclass.
authenticateUser();
if(_logger.isLoggable(Level.FINE)){