加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何通过Spring Security使用InMemoryAuthentication记录自定义

发布时间:2020-12-15 01:49:50 所属栏目:大数据 来源:网络整理
导读:我有一个使用Spring Security保护的Spring MVC Web应用程序,我正在编写测试.我很难在SpringContextHolder中获取Spring Security检索到的一个(自定义)用户. 一旦我的用户被“插入”(java配置),其中: auth.inMemoryAuthentication().getUserDetailsService().

我有一个使用Spring Security保护的Spring MVC Web应用程序,我正在编写测试.我很难在SpringContextHolder中获取Spring Security检索到的一个(自定义)用户.
一旦我的用户被“插入”(java配置),其中:

auth.inMemoryAuthentication().getUserDetailsService().createUser(myCustomUser);

然后,我可以创建相关的令牌(UsernamePasswordAuthenticationToken)并要求Spring使用此令牌对我的用户进行身份验证.问题是Spring不检索自定义用户实例,而是检索其User类的实例.当Spring在以下方法中查找这样的用户时(来自Spring的InMemoryUserDetailsManager):

public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        UserDetails user = users.get(username.toLowerCase());

        if (user == null) {
            throw new UsernameNotFoundException(username);
        }

        return new User(user.getUsername(),user.getPassword(),user.isEnabled(),user.isAccountNonExpired(),user.isCredentialsNonExpired(),user.isAccountNonLocked(),user.getAuthorities());
    }

它使用我的配置提供的详细信息实例化一个新用户.

我没有看到让InMemoryUserDetailsManager直接返回通过“getUserDetailsS??ervice(..createUser”调用发送给他的内容的问题但是必须有一个……
无论如何,我可能在这里做错了什么,任何想法?

最佳答案
像建议的那样,我最终编写了一个自定义的InMemoryUserDetailsManager,我用它提供了我的Spring Security配置.
对于任何想知道的人来说,这似乎是唯一的方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读