我正在进行JWT身份验证。我想绕过(不允许通过jwt过滤器)提供的URL。以下是代码段。
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable().authorizeRequests().antMatchers(bypassURLs)
.permitAll().anyRequest().authenticated().and().addFilter(new JWTAuthenticationFilter(authenticationManager(), jwtConfigProperties))
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);}
在上面的代码中,我希望系统不要过滤bypassURL。 如果我正在传递" / sayHello",那么JWTAuthenticationFilter不应该应用于此而不是" / sayHello"必须通过JWTAuthenticationFilter。
我尝试了http.csrf().ignoringAntMatchers("/sayHello");
和一些正则表达式但没有成功。请帮忙。
答案 0 :(得分:2)
使用permitAll
时,它表示每个经过身份验证的用户,但是您禁用了匿名访问,因此无效。
您想要忽略某些网址,以覆盖采用configure
对象和WebSecurity
模式的ignore
方法。
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/api/v1/signup");
}
从HttpSecurity
部分删除该行。这将告诉Spring Security忽略此URL,并且不对它们应用任何过滤器。