You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Security配置问题:如何放行/admin/auth/**并保护/admin/**?

问题解决:调整Spring Security路径匹配顺序

你的配置不生效的核心原因是路径匹配规则的顺序错误:Spring Security的授权规则是从上到下依次匹配,当请求是/admin/auth/login这类路径时,会先匹配到/admin/**的规则(要求认证),后面的/admin/auth/**放行规则根本不会被执行。

修改后的配置

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http
            .authorizeHttpRequests((requests) -> requests
                    // 先配置更具体的路径,放行登录相关接口
                    .requestMatchers("/admin/auth/**").permitAll()
                    // 再配置宽泛的/admin/**路径,要求认证
                    .requestMatchers("/admin/**").authenticated()
                    // 其他路径全部放行
                    .anyRequest().permitAll()
            );
    // 修正CSRF忽略路径的斜杠,避免匹配异常
    http.csrf(c -> c.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
            .ignoringRequestMatchers("/admin/**"));
    http.addFilterBefore(jwtTokenFilter, UsernamePasswordAuthenticationFilter.class);
    return http.build();
}

关键说明

  • 规则顺序优先级:必须将更具体的路径规则放在前面,宽泛的路径规则放在后面,确保精准匹配的规则先被触发。
  • CSRF配置修正:原代码中ignoringRequestMatchers("admin/**")少了开头的斜杠,会导致路径匹配不准确,修正为"/admin/**"。

内容的提问来源于stack exchange,提问作者Never_se

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 18:05:23