Spring-security自定义配置器

定义配置器

public final class MyFilterConfigurer<H extends HttpSecurityBuilder<H>>
        extends SecurityConfigurerAdapter<DefaultSecurityFilterChain, H> {
    
    public void configure(H http) throws Exception {
        http.addFilterBefore(new MyFilter() , SecurityContextPersistenceFilter.class);
    }
    
    public static class MyFilter extends GenericFilterBean{

        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            System.out.println(request);
            chain.doFilter(request, response);
        }
        
    }
}

配置

@Configuration
    public static class WebSecurityConfigurer extends WebSecurityConfigurerAdapter{

        
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                .apply(new MyFilterConfigurer<>())
            .and()
                .formLogin()
            .and()
                .logout()
                    .invalidateHttpSession(true)
                    .logoutUrl("/logout").logoutSuccessUrl("/")
                    .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
            .and()
                .sessionManagement()
                    .sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)
            .and()
                .authorizeRequests()
                    .anyRequest().authenticated();
        }
    }
原文地址:https://www.cnblogs.com/kingsy/p/6635979.html