Spring Security 中用户信息更新问题。
- 如何获取用户信息
在 Spring Security 中提供了一个 Authentication ,我们可以在一个 Controller 或者一个 Service 中,直接注入 Authentication,注入成功后,就能直接使用。
@GetMapping("/hr/info")
public Hr getCurrentHr(Authentication authentication) {
return ((Hr) authentication.getPrincipal());
}
这个方法用来获取当前用户信息,方法参数就是由 Spring Security 提供的。
- 如何更新用户信息
@PutMapping("/hr/info")
public RespBean updateHr(@RequestBody Hr hr,Authentication authentication) {
if (hrService.updateHr(hr) == 1) {
SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken(hr, authentication.getCredentials(), authentication.getAuthorities()));
return RespBean.ok("更新成功!");
}
return RespBean.error("更新失败!");
}
这里的核心部分就是 SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken(hr, authentication.getCredentials(), authentication.getAuthorities()));
,我们要做的,就是重新构建一个 Authentication 实例放到 Context 中去。
39.1 前端数据统一
前端的数据同步修改,其实就是多个组件之间共享数据。Vue 中对此有很多种解决方案,但是比较主流的方案是 Vuex,实际上就是把数据放在一个公共的地方,所有组件都能读取到,一改俱改。
扫码关注微信公众号 江南一点雨,回复 2TB,获取超 2TB Java 学习教程~