我有一个使用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直接返回通过“getUserDetailsService(..createuser”调用发送给他的内容的问题但是必须有一个……
无论如何,我可能在这里做错了什么,任何想法?
最佳答案
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。