密码加密问题
在Spring Acegi身份认证连载2中基础继续添加代码
步骤1 添加jar包文件:
commons-codec.jar
步骤2 配置文件applicationContext-acegi-plugin.xml添加密码配置信息
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService"/>
<!-- 密码算法 -->
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.Md5PasswordEncoder">
<property name="encodeHashAsBase64" value="false" />
</bean>
</property>
<!-- 加密盐 -->
<property name="saltSource">
<bean class="org.acegisecurity.providers.dao.salt.SystemWideSaltSource">
<property name="systemWideSalt" value="saltSource"/>
</bean>
</property>
</bean>
步骤3 修改数据库T_USER表中的用户名的密码
这里要使用一个类生成T_USER表的用户名密码,核心代码如下:
Md5PasswordEncoder md5 = new Md5PasswordEncoder();
md5.setEncodeHashAsBase64(false);
//使用动态加密盐的只需要在注册用户的时候将第二个参数换成用户名即可
String pwd = md5.encodePassword("tom", "saltSource");
System.out.println("MD5 SystemWideSaltSource: " + pwd + " len=" + pwd.length());
这3步工序做完后,直接运行项目即可。