有关此问题的话题很多,但是从来没有像下面这样的提议的解决方案,所以我正在考虑是否合适。
问题是,当用户更改其登录名时,Spring将在下一次登录时(在Security上下文中)更新该登录名。如果要更新而不注销,则需要手动更改用户名。经过检查,我知道直接在主体对象中修改用户名没有问题。我已经在做类似的事情:
@PostMapping("/user/user-settings-edit-action")
public String userSettingsEditAction(@AuthenticationPrincipal UserAuth prinUser, @Valid @ModelAttribute EditPersonalDataForm editPersonalDataForm, BindingResult errors, RedirectAttributes redirectAttributes) {
// ommited code
prinUser.setEmail(editPersonalDataForm.getEmail());
return "redirect:/user/account";
}
我的问题是我不知道这是否对应用程序安全性没有更深的影响,因为我没有看到任何建议可以这样做。