【问题标题】:Why acegi (Spring Security) converts password to uppercase before comparing?为什么acegi(Spring Security)在比较之前将密码转换为大写?
【发布时间】:2011-03-03 00:23:18
【问题描述】:

我的一个QA团队的同事向我报告了一个错误,错误说不能将密码更改为小写,否则登录被拒绝,使用数字或大写都可以。登录系统是使用 acegi 1.0(现在称为 Spring Security)实现的。

这是一个非常奇怪的错误,更改密码是通过将用户输入字符串加密为 MD5 字符串来完成的,我在没有使用任何相关 acegi 的情况下实现了这一点,如果这是问题的根源,我不这样做。

当登录被拒绝时,通过调试,我发现,用户输入在传递给acegi比较逻辑时被acegi转换为大写。起初,我不相信,当我检查 acegi 源并用它调试时,我发现它确实将用户名和密码都转换为大写(source code line 121),你能告诉我为什么会这样吗?这会导致密码编码不匹配!

【问题讨论】:

  • 您在使用 Siteminder 吗?您链接到的代码是特定于 Siteminder 的实现。如果您不使用它,您可能正在查看错误的代码。
  • 不,我从 acegi 签出源代码,看起来完全一样。这太荒谬了,为什么将密码更改为大写?我想这一定有充分的理由。

标签: java spring-security


【解决方案1】:

感谢 matt,我团队中的某个人选择了 Acegi 的 Siteminder 实施,这就是导致此问题的原因。

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 2014-07-29
    • 1970-01-01
    • 2021-11-01
    • 2010-09-27
    • 2014-11-04
    • 2021-10-22
    • 2011-12-22
    • 1970-01-01
    相关资源
    最近更新 更多