您知道我的spring安全配置有什么问题吗?

时间:2020-06-07 13:11:43

标签: java spring api security authentication

除了“ / api / auth / login”和“ / api / auth / token / refresh”之外,我需要对所有从“ / api / auth”开始的请求进行身份验证。这是我的安全配置配置方法。问题是,它无法按预期工作。即使我为其分配了allowAll,它也会检查“ / api / auth / token / refresh”的身份验证。




    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.antMatcher("/api/auth/login").antMatcher("/api/auth/token/refresh")
                .antMatcher("/api/auth/**")
                .antMatcher("/api/**");
        http
                .cors()
                .and()
                .csrf()
                .disable()
                .exceptionHandling()
                .authenticationEntryPoint(unauthorizedHandler)
                .and()
                .sessionManagement()
                .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
                .and()
                .authorizeRequests()
                .antMatchers(AUTH_WHITELIST)
                .permitAll()
                .antMatchers("/api/auth/login","/api/auth/token/refresh").permitAll()
                .antMatchers("/api/auth/**").authenticated()
                .antMatchers("/api/**").permitAll()
                .anyRequest()
                .permitAll();

        // Add our custom JWT security filter
        http.addFilterBefore(jwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);

    }

1 个答案:

答案 0 :(得分:1)

删除前三行代码。

antMatcher(String)的Javadoc说:

调用antMatcher(String)覆盖先前对[...],antMatcher(String),[...]的调用。

调用4次并没有达到您的预期。