org.jasig.cas.authentication.handler.DefaultPasswordEncoder sha1和md5不工作明文很好

时间:2015-06-15 20:16:37

标签: jdbc cas

我正在尝试将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;
&#13;
&#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值,但它们是我输入的,不是后期编码的,所以我不能告诉编码值是什么样的。

1 个答案:

答案 0 :(得分:0)

我发现了自己的错误。 echo添加换行符 需要编码 echo -n“password”|的md5sum