Dat*_*yen 0 java authentication spring-security
我在 Spring Security 中有一个手动身份验证的代码,如下所示:
Authentication authentication = new UsernamePasswordAuthenticationToken(username, password);
SecurityContextHolder.getContext().setAuthentication(authenticationManager.authenticate(authentication));
Run Code Online (Sandbox Code Playgroud)
在这些代码中,字段username
和password
是我系统中的真实帐户。
但将真实信息放入代码中是敏感的。
我的意思是,我们创建一个假帐户并授予他们权限,例如USER
或ADMIN
我的问题是:
无论如何,是否可以在不使用真实帐户的情况下进行手动身份验证。
是的,只需使用任何用户名和密码创建一个Username... Authentication
,只要它们不是真实的,再加上所需的权限即可。
然后将其放入SecurityContext
.
List<GrantedAuthority> authorities = Arrays.asList(new SimpleGrantedAuthority("ROLE_ADMIN"));
Authentication authentication = new UsernamePasswordAuthenticationToken("admin_user", "", authorities);
SecurityContextHolder.getContext().setAuthentication(authentication);
Run Code Online (Sandbox Code Playgroud)