java - 忽略对特定端点发出的请求执行的过滤器

标签 java spring

我的 WebSecurityConfig 有以下配置方法,它扩展了 WebSecurityConfigurerAdapter:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .csrf().disable()
        .authorizeRequests()
            .antMatchers("/login").permitAll()
        .and()
        .authorizeRequests()
            .antMatchers("/signup").permitAll()
        .and()
        .authorizeRequests()
            .anyRequest().authenticated()
        .and()
        .addFilterBefore(
            new JWTAuthenticationFilter(userDetailsServiceBean()),
            UsernamePasswordAuthenticationFilter.class);
}

JWTAuthenticationFilter 实际上过滤所有端点上收到的请求,并检查它们的 header 中是否具有正确的 JWT 身份验证 token 。

我不希望此过滤器对向 /login 端点发出的请求执行!有没有办法忽略特殊端点的过滤器? (这里是 /login/signup)。

是否有任何充分的理由让此过滤器对向所有端点(包括 loginsignup)发出的请求执行?

最佳答案

您可以尝试添加以下内容

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

关于java - 忽略对特定端点发出的请求执行的过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43995085/

相关文章:

java - 在 Spring Boot 应用程序中共享类的实例

java - 用 Mockito 注入(inject)模拟不起作用

java - Intellij IDEA : No beans of 'JdbcTemplate' type found

java - 找出已更改的位数(按位运算符)

java - SQLException : ResultSet closed

java - BufferedInputStream 没有标记

java - @OneToMany 实际上是带有参数的 OneToOne/@Formula

java - 将此递归 python 方法转换为 Java 的最佳方法是什么?

java - 星期功能不起作用

spring - 为什么 Spring SendToUser 不起作用