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

如何通过Spring Security使用InMemoryAuthentication记录自定义用户?,第1张

概述我有一个使用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配置.
对于任何想知道的人来说,这似乎是唯一的方法. 总结

以上是内存溢出为你收集整理的如何通过Spring Security使用InMemoryAuthentication记录自定义用户?全部内容,希望文章能够帮你解决如何通过Spring Security使用InMemoryAuthentication记录自定义用户?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1269341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存