gpt4 book ai didi

java - 如何根据 URL 创建 JWT 过滤器的异常(exception)

转载 作者:可可西里 更新时间:2023-11-01 16:29:39 26 4
gpt4 key购买 nike

我正在处理 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);}

在上面的代码中,我希望系统不过滤 bypassURLs。如果我传递“/sayHello”,则不应将 JWTAuthenticationFilter 应用于此,而“/sayHello”以外的 URL 必须通过 JWTAuthenticationFilter。

我尝试了 http.csrf().ignoringAntMatchers("/sayHello"); 和一些正则表达式但没有成功。请帮忙。

最佳答案

当使用 permitAll 时,它意味着每个经过身份验证的用户,但是您禁用了匿名访问,所以这将不起作用。

您想要的是忽略某些 URL,因为它会覆盖采用 WebSecurity 对象的 configure 方法并忽略 模式。

@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/api/v1/signup");
}

并从 HttpSecurity 部分删除该行。这将告诉 Spring Security 忽略此 URL 并且不对其应用任何过滤器。

关于java - 如何根据 URL 创建 JWT 过滤器的异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47672347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com