首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >debug spring安全认证管理器

debug spring安全认证管理器
EN

Stack Overflow用户
提问于 2013-11-26 17:09:55
回答 1查看 1.2K关注 0票数 0

我正在尝试使用mykong网站上的一个示例来获取Spring安全性……

http://www.mkyong.com/spring-security/spring-security-form-login-using-database/

我使用一个简单的MySQL表让它工作,但现在我尝试使用db2让它工作,其中密码存储在使用md5加密的数据库中。

我是这样设置的.

代码语言:javascript
复制
<authentication-manager>
    <authentication-provider>
        <password-encoder hash="md5" />
        <jdbc-user-service data-source-ref="dataSource"

            users-by-username-query="
                select employeenumber, employeepassword 
                from employee where employeenumber like ? 
                and employeestatus = 'Active'"

            authorities-by-username-query="
                select employeenumber, securitygroupcode 
                from employee 
                where employeenumber like ? 
                and employeestatus = 'Active'" 
        />
    </authentication-provider>
</authentication-manager>

当我尝试登录我的应用程序时,我输入了错误的登录详细信息,它正确地告诉我……

您的登录尝试不成功,请重试。原因:用户名或密码无效

但当我正确登录时,我会输入正确的登录详细信息...

您的登录尝试不成功,请重试。原因: PreparedStatementCallback;未分类的SQLException for SQL select employeenumber作为用户名,employeepassword作为来自epos.employee的密码,其中employeenumber喜欢?ibmjcc10897无效参数3:参数索引超出范围;嵌套异常为com.ibm.db2.jcc.b.SqlException: ibmjcc10897无效参数3:参数索引超出范围。

感谢所有人

EN

回答 1

Stack Overflow用户

发布于 2013-11-27 17:44:26

谢谢你的帮助。我的问题是,我没有在查询中包含enabled列,这显然会导致参数3:参数index超出范围。

无论如何,我决定给自己更多的控制权,扩展JdbcDaoImpl类并编写我自己的setAuthoritiesByUsernameQuery()。我还没有对它进行测试,但我对这种方法更满意,因为它允许开发人员通过执行查询的代码进行调试,而且我仍然可以将md5作为加密注入。这是两全其美的。希望我能让它工作起来!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20212595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档