繁体   English   中英

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

[英]MySQL query in spring-security.xml for authorization

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' "/>

我可以使用硬编码值登录并根据用户类型提供权限。 但是我不能通过从数据库中选择记录。

谁能帮我这个忙。

为实现了UserDetailsService JdbcDaoImpl启用日志。 就像是:

log4j.logger.org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl=DEBUG

如果那不起作用,请在此类上添加一些断点,然后在运行时对其进行调试。

我解决了 事情是查询错误。 用户按用户名查询将仅使用3个参数。 它应该是用户名,密码并从数据库启用。 另外,按用户名查询的权限将使用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中控制用户。 这将完美地工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM