日期:2014-05-19 浏览次数:20801 次
<!-- 源文件是判断账户和密码相同就通过 故注释掉 <bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" /> --> <!-- 自己添加的bean --> <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> <property name="dataSource" ref="dataSource"></property> <property name="sql" value="select `password` from t_test where `username` = ? "></property> <property name="passwordEncoder" ref="MD5PasswordEncoder"></property> </bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property> <!-- jdbc url 原demo是jdbc:mysql:\\\test 我不管改这样还是下面的都没登录成功 --> <property name="url"><value>jdbc:mysql://127.0.0.1:3306/test</value></property> <property name="username"><value>root</value></property> <property name="password"><value>boyuboyu</value></property> </bean> <bean id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"> <constructor-arg index="0"> <value>MD5</value> </constructor-arg> </bean>
final String username = getPrincipalNameTransformer().transform(credentials.getUsername());//拿到用户名123123 final String password = credentials.getPassword();//拿到用户名123123 final String encryptedPassword = this.getPasswordEncoder().encode( password);//将密码进行加密,结果形如:e834jf84jf84j8g...... try { final String dbPassword = getJdbcTemplate().queryForObject(this.sql, String.class, username);//根据你的SQL取得数据库中的密码为:123123 return dbPassword.equals(encryptedPassword);//用加密后的字符串和123123进行比较???,肯定不会正确 } catch (final IncorrectResultSizeDataAccessException e) { // this means the username was not found. return false; }
------解决方案--------------------
恭喜楼主了,。,,自己解决了!!!!!!
------解决方案--------------------
我去。。。 看了半天。。