我有一个在spring security中手动验证的代码,如下所示:
Authentication authentication = new UsernamePasswordAuthenticationToken(username, password);
SecurityContextHolder.getContext().setAuthentication(authenticationManager.authenticate(authentication));
在这些代码中,字段username
和password
是我系统中的真实帐户。
但是将真实信息放在代码中是很敏感的。
我的意思是,我们创建了一个虚假帐户并授予他们权限,例如USER
或ADMIN
我的问题是:
无论如何都不使用真实账户进行手动验证。
答案 0 :(得分:2)
是的,只需使用任何用户名和密码创建Username... Authentication
,只要它们不是真实的,加上所需的权限。
然后将其放入SecurityContext
。
List<GrantedAuthority> authorities = Arrays.asList(new SimpleGrantedAuthority("ROLE_ADMIN"));
Authentication authentication = new UsernamePasswordAuthenticationToken("admin_user", "", authorities);
SecurityContextHolder.getContext().setAuthentication(authentication);