use of org.apache.shiro.crypto.hash.DefaultHashService in project cas by apereo.
the class QueryAndEncodeDatabaseAuthenticationHandlerTests method genPassword.
private static String genPassword(final String psw, final String salt, final int iter) {
try {
final DefaultHashService hash = new DefaultHashService();
hash.setPrivateSalt(ByteSource.Util.bytes(STATIC_SALT));
hash.setHashIterations(iter);
hash.setGeneratePublicSalt(false);
hash.setHashAlgorithmName(ALG_NAME);
return hash.computeHash(new HashRequest.Builder().setSource(psw).setSalt(salt).setIterations(iter).build()).toHex();
} catch (final Exception e) {
throw Throwables.propagate(e);
}
}
use of org.apache.shiro.crypto.hash.DefaultHashService in project cas by apereo.
the class QueryAndEncodeDatabaseAuthenticationHandler method digestEncodedPassword.
/**
* Digest encoded password.
*
* @param encodedPassword the encoded password
* @param values the values retrieved from database
* @return the digested password
*/
protected String digestEncodedPassword(final String encodedPassword, final Map<String, Object> values) {
final ConfigurableHashService hashService = new DefaultHashService();
if (StringUtils.isNotBlank(this.staticSalt)) {
hashService.setPrivateSalt(ByteSource.Util.bytes(this.staticSalt));
}
hashService.setHashAlgorithmName(this.algorithmName);
Long numOfIterations = this.numberOfIterations;
if (values.containsKey(this.numberOfIterationsFieldName)) {
final String longAsStr = values.get(this.numberOfIterationsFieldName).toString();
numOfIterations = Long.valueOf(longAsStr);
}
hashService.setHashIterations(numOfIterations.intValue());
if (!values.containsKey(this.saltFieldName)) {
throw new RuntimeException("Specified field name for salt does not exist in the results");
}
final String dynaSalt = values.get(this.saltFieldName).toString();
final HashRequest request = new HashRequest.Builder().setSalt(dynaSalt).setSource(encodedPassword).build();
return hashService.computeHash(request).toHex();
}
use of org.apache.shiro.crypto.hash.DefaultHashService in project qi4j-sdk by Qi4j.
the class PasswordRealmMixin method activateService.
@Override
public void activateService() throws Exception {
configuration.refresh();
PasswordRealmConfiguration config = configuration.get();
String algorithm = config.hashAlgorithmName().get();
Integer iterations = config.hashIterationsCount().get();
if (algorithm != null || iterations != null) {
DefaultHashService hashService = (DefaultHashService) passwordService.getHashService();
if (algorithm != null) {
hashService.setHashAlgorithmName(algorithm);
}
if (iterations != null) {
hashService.setHashIterations(iterations);
}
}
}
Aggregations