package org.apereo.cas.authentication;
import org.apereo.cas.configuration.model.core.authentication.PasswordEncoderProperties;
import org.apereo.cas.configuration.support.Beans;
import org.junit.Test;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.crypto.password.StandardPasswordEncoder;
import static org.junit.Assert.*;
/**
* This is {@link DefaultPasswordEncoderTests}.
*
* @author Misagh Moayyed
* @since 5.1.0
*/
public class DefaultPasswordEncoderTests {
@Test
public void verifyPasswordEncoderByCustomClassName() {
final PasswordEncoderProperties p = new PasswordEncoderProperties();
p.setType(StandardPasswordEncoder.class.getName());
p.setSecret("SECRET");
final PasswordEncoder e = Beans.newPasswordEncoder(p);
assertNotNull(e);
}
@Test
public void verifyPasswordEncoderByMD5() {
final PasswordEncoderProperties p = new PasswordEncoderProperties();
p.setType(PasswordEncoderProperties.PasswordEncoderTypes.DEFAULT.name());
p.setEncodingAlgorithm("MD5");
p.setCharacterEncoding("UTF-8");
final PasswordEncoder e = Beans.newPasswordEncoder(p);
assertTrue(e.matches("asd123", "bfd59291e825b5f2bbf1eb76569f8fe7"));
}
@Test
public void verifyPasswordEncoderBySHA1() {
final PasswordEncoderProperties p = new PasswordEncoderProperties();
p.setType(PasswordEncoderProperties.PasswordEncoderTypes.DEFAULT.name());
p.setEncodingAlgorithm("SHA-1");
p.setCharacterEncoding("UTF-8");
final PasswordEncoder e = Beans.newPasswordEncoder(p);
assertTrue(e.matches("asd123", "2891baceeef1652ee698294da0e71ba78a2a4064"));
}
@Test
public void verifyPasswordEncoderBySHA256() {
final PasswordEncoderProperties p = new PasswordEncoderProperties();
p.setType(PasswordEncoderProperties.PasswordEncoderTypes.DEFAULT.name());
p.setEncodingAlgorithm("SHA-256");
p.setCharacterEncoding("UTF-8");
final PasswordEncoder e = Beans.newPasswordEncoder(p);
assertTrue(e.matches("asd123", "54d5cb2d332dbdb4850293caae4559ce88b65163f1ea5d4e4b3ac49d772ded14"));
}
}