Spring Boot Security不使用WebSecurity忽略目录

时间:2017-12-05 11:51:24

标签: spring spring-boot spring-security

我试图使用websecurity.ignore忽略目录。我有以下配置。

    @Override
    protected void configure(HttpSecurity http) throws Exception {
            http
                .authorizeRequests()
                    .antMatchers("/", "/home").permitAll()
                    .antMatchers("/product_save").hasAuthority("ADMIN")
                    .anyRequest().authenticated()
                    .and()
                .formLogin()
                    .loginPage("/login")
                    .permitAll()
                    .and()                  
                .logout()
                    .permitAll().and().csrf().disable()
                    .exceptionHandling().and()
                    .rememberMe()
                        .key("uniqueAndSecret")
                        .rememberMeCookieName("broman-remember-me")
                        .tokenValiditySeconds(60 * 60 * 24).and()
                    .sessionManagement().maximumSessions(1);

    }

    @Override
    public void configure(WebSecurity web)throws Exception {
        web.ignoring().antMatchers("/static/**");
    }
}

以上配置不会忽略。

1 个答案:

答案 0 :(得分:2)

您的代码:

@Override
public void configure(WebSecurity web)throws Exception {
    web.ignoring().antMatchers("/static/**");
}

将忽略以/static/**

开头http://localhost:8080/static/...开头的所有网址

Spring Boot默认提供静态文件夹的内容。因此,如果您在静态文件夹中有一些文件夹或文件(如与客户和经理等相关的静态资源......),您可以逐个忽略它们:

@Override
public void configure(WebSecurity web)throws Exception {
    web.ignoring().antMatchers("/customers/**", "/managers/**", "/monitor.html");
}

这将忽略:

  • http://localhost:8080/customers/ - 以及所有子网址

  • http://localhost:8080/managers/ - 以及所有子网址

  • http://localhost:8080/monitor.html