gpt4 book ai didi

带有过滤器 permitAll 的 Spring Security 不起作用

转载 作者:行者123 更新时间:2023-12-05 01:01:06 25 4
gpt4 key购买 nike

我有这个安全配置:

@Override
public void configure(HttpSecurity http) throws Exception {
http
.addFilterBefore(
new JwtLoginFilter("/login", authenticationManager()),
UsernamePasswordAuthenticationFilter.class)
.addFilterBefore(
new JwtAuthenticationFilter(),
UsernamePasswordAuthenticationFilter.class);
http.csrf().disable()
.authorizeRequests().antMatchers("/", "/register").permitAll()
.and()
.authorizeRequests().anyRequest().authenticated();
}

这两个过滤器正在做身份验证工作:loginFilter 检查帖子正文中的凭据,然后将 cookie 添加到响应中。 authenticationFilter 检查 auth cookie。

然而,permitAll 不允许根路由和“/register”路由通过(又名。仍然通过 authenticationFilter,我认为 permitAll 会让这些路由通过过滤器)

怎么了?

最佳答案

permitAll()不忽略过滤器。无论 Authentication 是否存在,它都会简单地授予访问权限。在处理完所有过滤器后,它会出现在请求的安全上下文中。

您应该检查您的过滤器和任何 AuthenticationProvider他们用来确保不会通过抛出未经检查/未捕获的异常或在身份验证失败时明确发送响应来破坏 Spring Security 的执行流程的实现。

关于带有过滤器 permitAll 的 Spring Security 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46068433/

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