我正在尝试将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>
&#13;
没有passwordEncoder,它可以使用纯文本密码。
我通过执行以下操作来编码我的密码。 echo&#34;纯文本密码&#34; |的md5sum echo&#34;纯文本密码&#34; | SHA1SUM
将这些命令的输出放入密码字段的数据库中。
例如对于user =&#34; bob&#34;密码=&#34; bobs_password&#34; echo bobs_password |的md5sum 4ee4c4a91f34ce62335942ca73b15b5c -
所以数据库用户表包含 用户:鲍勃 密码:4ee4c4a91f34ce62335942ca73b15b5c 对于我的&#34; MD5&#34;测试
测试我使用的SHA1 echo bobs_password | SHA1SUM d62cfc513413784cb3b9e558abecf56069528681 - 所以数据库用户表包含 用户:鲍勃 密码:d62cfc513413784cb3b9e558abecf56069528681 对于我的&#34; SHA1&#34;测试
我无法判断我的编码是否错误,如果我的配置错误或者代码执行的操作与我预期的不同。
有没有人看到我正在做的事情的问题? 是否可以启用日志记录以查看要编码的密码进行比较? 我将log4j日志记录设置为&#34; ALL&#34;我可以看到getUser和getPassword值,但它们是我输入的,不是后期编码的,所以我不能告诉编码值是什么样的。
答案 0 :(得分:0)
我发现了自己的错误。 echo添加换行符 需要编码 echo -n“password”|的md5sum