gpt4 book ai didi

java - 在同一配置 Spring Security 中使用 RequestHeaderRequestMatcher 和 antmactcher basic auth

转载 作者:行者123 更新时间:2023-12-01 18:17:39 24 4
gpt4 key购买 nike

我有这个过滤器:

 @Override
protected void configure(HttpSecurity http) throws Exception {
http.requestMatchers(new RequestHeaderRequestMatcher("Caller", "Rem"));
// add here a seconde filter condition for basic Auth
}

在 header 过滤器之后,我想在相同的配置中创建另一个过滤器,其标识符在内存中如下:

 @Autowired
public void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.passwordEncoder(NoOpPasswordEncoder.getInstance())
.withUser("myAccount").password("MyPassword").roles("USER");
}

提前致谢。

最佳答案

http.httpBasic().and()
.authorizeRequests()
.requestMatchers(new AndRequestMatcher(new RequestHeaderRequestMatcher("Caller", "Rem"), new AntPathRequestMatcher("/hello/one")))
.hasRole("USER")
.and()
.authorizeRequests().anyRequest().authenticated()
.anyRequest().denyAll();

在您的场景中将“/hello/one”替换为“/**”。

说明:

  1. 如果请求中的路径与“/hello/one”不匹配,则服务器将返回 403。
  2. 如果路径匹配,它将检查身份验证,如果失败,将返回 401,否则将进入下一步。
  3. 如果路径匹配且身份验证成功,但 header 不包含值为“Rem”的“Caller”,则将返回 403。
  4. 如果路径匹配,则身份验证成功并且 header 具有所需的键值,端点将被执行。

关于java - 在同一配置 Spring Security 中使用 RequestHeaderRequestMatcher 和 antmactcher basic auth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60336258/

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