How do I enable logging for Spring Security?

后端 未结 6 1448
孤独总比滥情好
孤独总比滥情好 2020-12-02 21:34

I am setting up Spring Security to handle logging users in. I have logged in as a user, and am taken to an Access Denied error page upon successful login. I don\'t know what

相关标签:
6条回答
  • 2020-12-02 22:12

    You can easily enable debugging support using an option for the @EnableWebSecurity annotation:

    @EnableWebSecurity(debug = true)
    public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
        …
    }
    
    0 讨论(0)
  • 2020-12-02 22:12

    By default Spring Security redirects user to the URL that he originally requested (/Load.do in your case) after login.

    You can set always-use-default-target to true to disable this behavior:

     <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"
            always-use-default-target = "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>
    
    0 讨论(0)
  • 2020-12-02 22:18

    Basic debugging using Spring's DebugFilter can be configured like this:

    @EnableWebSecurity
    public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
    
        @Override
        public void configure(WebSecurity web) throws Exception {
            web.debug(true);
        }
    }
    
    0 讨论(0)
  • 2020-12-02 22:19

    Spring security logging for webflux reactive apps is now available starting with version 5.4.0-M2 (as mentionned by @bzhu in comment How do I enable logging for Spring Security?)

    Until this gets into a GA release, here is how to get this milestone release in gradle

    repositories {
        mavenCentral()
        if (!version.endsWith('RELEASE')) {
            maven { url "https://repo.spring.io/milestone" }
        }
    }
    
    // Force earlier milestone release to get securing logging preview
    // https://docs.spring.io/spring-security/site/docs/current/reference/html5/#getting-gradle-boot
    // https://github.com/spring-projects/spring-security/pull/8504
    // https://github.com/spring-projects/spring-security/releases/tag/5.4.0-M2
    ext['spring-security.version']='5.4.0-M2'
    dependencyManagement {
        imports {
            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
        }
    
    }
    
    0 讨论(0)
  • 2020-12-02 22:20

    You can easily enable debugging support using an option for the @EnableWebSecurity annotation:

    @EnableWebSecurity(debug = true)
    public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
        …
    }
    

    If you need profile-specific control the in your application-{profile}.properties file

    org.springframework.security.config.annotation.web.builders.WebSecurity.debugEnabled=false
    

    Get Detailed Post: http://www.bytefold.com/enable-disable-profile-specific-spring-security-debug-flag/

    0 讨论(0)
  • 2020-12-02 22:27

    Assuming you're using Spring Boot, another option is to put the following in your application.properties:

    logging.level.org.springframework.security=DEBUG
    

    This is the same for most other Spring modules as well.

    If you're not using Spring Boot, try setting the property in your logging configuration, e.g. logback.

    Here is the application.yml version as well:

    logging:
      level:
        org:
          springframework:
            security: DEBUG
    
    0 讨论(0)
提交回复
热议问题