java - 登录时在 spring security 中更改用户名

标签 java spring spring-boot authentication spring-security

我想在该用户登录系统时更改用户名。我实现了自己的 crypt 算法,无法获得真实密码来进行新的身份验证并将其放入

Authentication authentication = new UsernamePasswordAuthenticationToken(principal, credentials);

最佳答案

登录后,您可以使用以下代码更改您的用户名和密码:

Collection<SimpleGrantedAuthority> nowAuthorities = 
  (Collection<SimpleGrantedAuthority>)SecurityContextHolder.getContext()
                                                           .getAuthentication()
                                                           .getAuthorities();
UsernamePasswordAuthenticationToken authentication = 
  new UsernamePasswordAuthenticationToken(username, password, nowAuthorities);

SecurityContextHolder.getContext().setAuthentication(authentication);

关于java - 登录时在 spring security 中更改用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29434209/

相关文章:

java - 如何使用xsl :variable in xsl:choose

java - android studio 找不到符号报错

java - JSF 2.1 使用 Ajax 同时验证两个输入

java - Ehcache:找不到缓存

java - Spring Boot JSON 后 400 错误

java - 从 Spring Integration 启动 Spring Batch 作业

java - Spring Boot viewControllerHandlerMapping配置

java - Hql 错误 : Class is not mapped, 无法解析符号

java - 在 spring 中将值从 Controller 传递到 html

java - SpringBoot2 配置 JOOQ MariaDB : "required a bean of type ' javax. sql.DataSource' 找不到”