2016-06-28 137 views
0

我有手动验证春季安全如下代码:手动验证春季安全

Authentication authentication = new UsernamePasswordAuthenticationToken(username, password); 

SecurityContextHolder.getContext().setAuthentication(authenticationManager.authenticate(authentication)); 

在这些代码中,场usernamepassword是在我的系统真正的账户。

但是将真实信息放在代码中很敏感。

我的意思是,我们创建了一个假帐户,并授予他们权力,如USERADMIN

我的问题是:

反正有人工验证,而不使用真实账户。

+0

用户名和密码分别是“usernameReal”和“passwordReal”。对于那个很抱歉! –

回答

1

是的,只要创建一个Username... Authentication用任何用户名和密码,只要他们不是真实的,再加上所需的权限。

然后把它放在SecurityContext

List<GrantedAuthority> authorities = Arrays.asList(new SimpleGrantedAuthority("ROLE_ADMIN")); 
Authentication authentication = new UsernamePasswordAuthenticationToken("admin_user", "", authorities); 
SecurityContextHolder.getContext().setAuthentication(authentication); 
+0

我试过你的方式,但我发现一个问题,因为:不能设置此令牌信任 - 使用构造函数,它需要一个GrantedAuthority列表 –

+0

嗯,它的工作原理。谢谢 –