throw new DataRetrievalFailureException("User '" + user + "' has no password");
}
// Create the password according to the site's and Spring Security's
// digest policy
Password p = (Password) passwords.iterator().next();
String password = null;
switch (site.getDigestType()) {
case md5:
if (!DigestType.md5.equals(p.getDigestType())) {
logger.debug("Creating digest password for '{}@{}'", name, site.getIdentifier());
password = PasswordEncoder.encode(p.getPassword());
} else {
password = p.getPassword();
}
break;
case plain:
if (!DigestType.plain.equals(p.getDigestType())) {
logger.warn("User '{}@{}' does not have a plain text password'", name, site.getIdentifier());
return null;
}
password = p.getPassword();
break;
default:
throw new IllegalStateException("Unknown digest type '" + site.getDigestType() + "'");
}