Spring忽略过滤链的某些网址

时间:2016-03-03 11:39:11

标签: spring spring-mvc spring-security

我们有一堆过滤器设置与基本网址匹配,如下所示:

    FilterRegistration.Dynamic characterEncoding = servletContext.addFilter("characterEncoding", characterEncodingFilter);
    characterEncoding.addMappingForUrlPatterns(dispatcherTypes, true, "/*");

我有一个新的开放式网址,例如/open/pages/,我想跳过所有这些预先配置的过滤器。

我使用Spring进行基于注释的配置,这是我的安全上下文规则:

http
        .csrf().disable()
                    .logout()
                        .deleteCookies("JSESSIONID")
                        .invalidateHttpSession(true)
                //Configures url based authorization
                .and()
                    .authorizeRequests()
                        .antMatchers(OpenPageDataController.OPEN_PAGE_MAPPING + "/**")
                        .hasIpAddress("127.0.0.1")
                .and()
                        .authorizeRequests()
                            //Anyone can access the urls
                            .antMatchers(
                                    "/auth/**",
                                    "/login",
                                    "/login/email/**",
                                    "/signup/**",
                            ).permitAll()
                            .antMatchers("/**").hasRole("USER")

这是最好的方法吗?

1 个答案:

答案 0 :(得分:0)

尝试添加:

.authorizeRequests().antMatchers("/open/pages/**").permitAll()

这将允许未经过身份验证的用户访问/open/pages/层次结构下的任何资源。