在spring-security.xml中进行MySQL查询以进行授权

时间:2015-05-12 07:49:17

标签: java mysql spring spring-mvc spring-security

Q1。 >如何在spring-security.xml中检查是否执行了以下两个查询?

 <jdbc-user-service data-source-ref="dataSource"
          users-by-username-query=
            "select user_login_name as username,user_password as password,user_type_id,role_id from sox_audit.sox_users where user_login_name=? and user_password=?"

           authorities-by-username-query=
            "select user_login_name as username,role_id as authority from sox_audit.sox_users where user_login_name ='sriram@gmail.com' and user_password='12345' "/>

我可以使用硬编码值登录,并根据用户类型授予权限。但我无法通过从DB中选择记录。

任何人都可以帮助我。

2 个答案:

答案 0 :(得分:1)

启用实现JdbcDaoImpl的{​​{1}}的日志。 类似的东西:

UserDetailsService

如果这不起作用,请在此类上添加一些断点并在运行时调试它。

答案 1 :(得分:0)

我解决了。 事情是查询错误。 users-by-username-query只需3个参数。它应该是用户名,密码并从数据库启用。 也, authority-by-username-query将采用2个参数。

 users-by-username-query=
            "select user_login_name as username,user_password as password,enabled from sox_audit.sox_users where user_login_name=?"

           authorities-by-username-query=
            "select user_login_name as username,authority from sox_audit.sox_users where user_login_name =?"/>

然后在HomeController中控制用户。这将完美地运作。