我正在努力让我的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
以外的所有路径吗?
答案 0 :(得分:-1)
添加and().antMatchers("/**").permitAll()