【问题标题】:Manually Authentication Spring Security手动验证 Spring Security
【发布时间】:2016-07-20 16:00:19
【问题描述】:

我在 Spring Security 中有一个用于手动身份验证的代码,如下所示:

Authentication authentication = new UsernamePasswordAuthenticationToken(username, password);

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

在这些代码中,字段usernamepassword 是我系统中的真实账户。

但是把真实的信息放在代码里是敏感的。

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

我的问题是:

是否有不使用真实帐户的手动身份验证。

【问题讨论】:

  • 用户名和密码分别是“usernameReal”和“passwordReal”。很抱歉!

标签: java authentication spring-security


【解决方案1】:

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

然后放到SecurityContext.

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

【讨论】:

  • 我试过你的方法,但我发现了一个问题:无法将此令牌设置为受信任 - 使用采用 GrantedAuthority 列表的构造函数
猜你喜欢
  • 2012-04-14
  • 2014-10-13
  • 2019-07-18
  • 2014-07-29
  • 2014-10-22
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2014-02-26
相关资源
最近更新 更多