我正在尝试将cas配置为使用数据库中的编码密码。
当我配置为纯文本时,它工作得很好。
当我配置为编码为MD5或SHA1时,它总是无法进行身份验证。
我的配置如下所示
<bean class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler">
<property name="tableUsers">
<value>uh_ors_test_users</value>
</property>
<property name="fieldUser">
<value>username</value>
</property>
<property name="fieldPassword">
<value>password</value>
</property>
<property name="passwordEncoder">
<bean class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg value="MD5" />
</bean>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
在没有passwordEncoder的情况下,它可以很好地处理纯文本密码。
我通过执行以下操作对密码进行编码。sha1sum“明文密码”| echo echo“明文密码”|echo
并将这些命令的输出放入我的数据库的密码字段中。
例如,对于带有password=" bobs_password“的user="bob”回显bobs_password| md5sum 4ee4c4a91f34ce62335942ca73b15b5c -
因此数据库user表包含user:bob password:4ee4c4a91f34ce62335942ca73b15b5c,用于"MD5“测试
为了测试SHA1,我使用了echo bobs_password | sha1sum d62cfc513413784cb3b9e558abecf56069528681 - So数据库用户表包含用户:bob sha1sum用于我的"SHA1“测试
我不知道我是不是编码错了,是我的配置错了,还是代码做了一些与我期望的不同的事情。
有没有人看到我的所作所为有问题?是否可以启用日志记录来查看post编码的密码以进行比较?我将log4j日志设置为"ALL“,我可以看到getUser和getPassword的值,但它们在我输入时并不是post编码的,所以我不能说出编码值是什么样子。
发布于 2015-06-16 04:51:04
我找到了我的错误。echo添加了一个需要使用echo密码“-n”| md5sum进行编码的新行
https://stackoverflow.com/questions/30854235
复制相似问题