Skip to main content
 首页 » 编程设计

debugging之如何为 Spring Security 启用日志记录

2024年02月27日28shihaiming

我正在设置 Spring Security 来处理登录用户。我已作为用户登录,并在成功登录后进入“拒绝访问”错误页面。我不知道我的用户实际上被分配了哪些角色,也不知道导致访问被拒绝的规则,因为我不知道如何启用 Spring Security 库的调试。

我的安全 xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans ... > 
    <!-- security --> 
 
    <security:debug/><!-- doesn't seem to be working --> 
 
    <security:http auto-config="true"> 
 
        <security:intercept-url pattern="/Admin**" access="hasRole('PROGRAMMER') or hasRole('ADMIN')"/> 
        <security:form-login login-page="/Load.do" 
            default-target-url="/Admin.do?m=loadAdminMain" 
            authentication-failure-url="/Load.do?error=true" 
            username-parameter="j_username" 
            password-parameter="j_password" 
            login-processing-url="/j_spring_security_check"/> 
        <security:csrf/><!-- enable Cross Site Request Forgery protection --> 
    </security:http> 
 
    <security:authentication-manager> 
        <security:authentication-provider> 
            <security:jdbc-user-service data-source-ref="loginDataSource" 
                users-by-username-query="SELECT username, password, active FROM userinformation WHERE username = ?" 
                authorities-by-username-query=" 
                    SELECT ui.username, r.rolename  
                    FROM role r, userrole ur, userinformation ui  
                    WHERE ui.username=?  
                    AND ui.userinformationid = ur.userinformationid  
                    AND ur.roleid = r.roleid " 
            /> 
            <security:password-encoder hash="md5"/> 
        </security:authentication-provider> 
    </security:authentication-manager> 
</beans> 

我还尝试将 log4j.logger.org.springframework.security=DEBUG 添加到我的 log4j.properties

如何获取 Spring Security 的调试输出?

请您参考如下方法:

假设您使用 Spring Boot,另一个选择是将以下内容放入 application.properties 中:

logging.level.org.springframework.security=DEBUG 

对于大多数其他 Spring 模块来说也是如此。

如果您不使用 Spring Boot,请尝试在日志记录配置中设置该属性,例如登录。

这也是 application.yml 版本:

logging: 
  level: 
    org: 
      springframework: 
        security: DEBUG