1、定义一个专门负责取得加密后密码的工具类。
本次采用的是MD5加密处理
public class MyPasswordEncrypt {
private static final String SALT = "*****************";
/**
* 提供有密码的加密处理操作
* @param password
* @return
*/
public static String encryptPassword(String password) {
return new MD5Code().getMD5ofStr(password + "*****"+SALT+"*****") ;
}
}
2、要建立一个认证的匹配处理类;
public class CustomerCredentialsMatcher extends SimpleCredentialsMatcher {
@Override
public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) {
// 取得原始的输入数据信息
Object tokenCredentials = MyPasswordEncrypt.encryptPassword(super.toString(token.getCredentials())).getBytes();
// 取得认证数据库中的数据
Object accountCredentials = super.getCredentials(info) ;
return super.equals(tokenCredentials, accountCredentials);
}
}
将MemberRealm的操作配置定义在spring的配置文件中,
在整个的shiro操作过程之中,对于用户的认证部分除了自定义的Realm之外还需要有一个专门的认证匹配器。
<bean id="memberRealm" class="cn.mldn.realm.MemberRealm">
<property name="credentialsMatcher">
<bean class="cn.realm.cre.CustomerCredentialsMatcher"/> </property>
</bean>