【问题标题】:404 after adding spring security filters添加弹簧安全过滤器后的404
【发布时间】:2021-12-31 23:29:03
【问题描述】:

向我的微服务添加安全配置后,我收到所有请求的 404 错误。请求本身与之前的安全配置相同。在输入控制器方法之前,我正在输入 AuthenticationFilter 并获得 404。控制器带有 @RestController 注释。

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(
    prePostEnabled = true,
    securedEnabled = true,
    jsr250Enabled = true)
public class HttpSecurityConfig extends WebSecurityConfigurerAdapter implements     WebMvcConfigurer {


@Autowired
private AdminAuthClient adminAuthClient;

@Autowired
private MyUserDetailsService myUserDetailsService;

@Override
protected void configure(final HttpSecurity http) throws Exception {
    http.cors()
            .and()
            .httpBasic().disable()
            .csrf().disable()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and()
            .authorizeRequests()
            .anyRequest()
            .authenticated()
            .and()
            .antMatcher("/admin/**")
            .addFilterBefore(new AuthenticationFilter(adminAuthClient, myUserDetailsService),
                    UsernamePasswordAuthenticationFilter.class);
}

【问题讨论】:

  • URL 你得到 404 not found
  • GET localhost:8080/v1/admin/items
  • v1 是上下文路径吗?
  • 是的。即使我从上下文路径中删除它并从请求中删除 - 同样的 404 错误
  • 您的自定义过滤器有什么作用?

标签: java spring spring-boot security spring-security


【解决方案1】:

您必须授予在Spring Security 中加载Url 的权限。 Spring Security 有方法 permitAll() 用于授予 url 的权限。

下面是例子:

@Override
protected void configure(final HttpSecurity http) throws Exception {
    http.cors()
            .and()
            .httpBasic().disable()
            .csrf().disable()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and()
            .authorizeRequests()
             .antMatcher("/admin/**", "/v1/admin/items").permitAll() // for give permission
            .anyRequest()
            .authenticated()
            .and()
            .addFilterBefore(new AuthenticationFilter(adminAuthClient, myUserDetailsService),
                    UsernamePasswordAuthenticationFilter.class);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-18
    • 2017-03-18
    • 2015-09-04
    相关资源
    最近更新 更多