Spring Security将过滤器应用于所有路径,而不仅仅是" / api **"

时间:2017-06-13 19:29:39

标签: java spring spring-boot spring-security

我正在努力让我的Spring Security配置正确完成。 我已经设置了JWT安全性,但是我希望它只能在/api**上工作而且我无法正确...即使我尝试点击localhost:8080我也会从JWTFilter收到错误

这是我的配置:

public static final String TOKEN_BASED_AUTH_ENTRY_POINT = "/api/**";
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf().disable()
                .addFilterBefore(new CORSFilter(), ChannelProcessingFilter.class)
                .exceptionHandling()
                    .authenticationEntryPoint(this.restAuthEntryPoint)
                    .and()
                .sessionManagement()
                    .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
                    .and()
                .authorizeRequests()
                    .antMatchers(HttpMethod.OPTIONS, "**").permitAll()
                    .antMatchers(FORM_BASED_REGISTRATION_ENTRY_POINT).permitAll()
                    .antMatchers(FORM_BASED_LOGIN_ENTRY_POINT).permitAll()
                    .and()
                .authorizeRequests()
                    .antMatchers(TOKEN_BASED_AUTH_ENTRY_POINT).authenticated()
                    .and()
                .addFilterBefore(buildJWTLoginFilter(), UsernamePasswordAuthenticationFilter.class)
                .addFilterBefore(buildJWTAuthFilter(), UsernamePasswordAuthenticationFilter.class);
    }

理论上它应该仅在API上应用过滤器,但它以某种方式将它们应用于所有路径。

有人可以帮助让它正常工作,因此只有/api**才能得到保护,我可以自由访问/api以外的所有路径吗?

1 个答案:

答案 0 :(得分:-1)

添加and().antMatchers("/**").permitAll()