gpt4 book ai didi

java - SecurityContextHolder.getContext().getAuthentication() 返回字符串

转载 作者:行者123 更新时间:2023-11-30 07:57:38 26 4
gpt4 key购买 nike

我在我的 Spring Boot 项目中处理安全层时遇到了以下问题:

SecurityContextHolder.getContext().getAuthentication() 

此代码返回:

  • 匿名用户的字符串“anonymousUser
  • UserDetails 已验证用户的对象

因此,我想将此代码配置为在两种情况下都返回 UserDetails。我该怎么做?

我猜,我需要实现自定义 AnonymousAuthenticationFilter。我对么?

最佳答案

As I guess, I need to implement custom AnonymousAuthenticationFilter. Am I correct?

有一个更简单的方法,那就是 anonymous() HttpSecurity DSL 的方法。只需使用该 block 来设置您想要的 principal :

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// other configuration methods

@Override
protected void configure(HttpSecurity http) throws Exception {
UserDetails anonymousUserDetails = // your custom UserDetails for anonymous case
http
// other configurations
.anonymous()
.principal(anonymousUserDetails);
}
}

使用 Null Object Pattern -ish 方法对于匿名用户的自定义实现可能是个好主意。

关于java - SecurityContextHolder.getContext().getAuthentication() 返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41065706/

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