При удалении пользователя я получаю значение context null.
SecurityContextHolder.getContext().getAuthentication()
Ниже мой код контроллера:
@DeleteMapping("/users/{login:" + Constants.LOGIN_REGEX + "}")
@Timed
public ResponseEntity<Void> deleteUser(@PathVariable String login) {
log.debug("REST request to delete User: {}", login);
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
userService.deleteUser(login);
return ResponseEntity.ok().headers(HeaderUtil.createAlert("userManagement.deactivated", login)).build();
}
Ниже регулярное выражение:
public static final String LOGIN_REGEX = "^[_'.@A-Za-z0-9-]*$";
Abel для доступа к методу контроллера, но при попытке доступа к SecurityContextHolder.getContext (), который становится нулевым.
Ниже приведен сценарий:
Если мы создаем двух пользователей, скажем, login = test6 и login = test@test5.com и оба имеют одинаковую РОЛЬ. Теперь мы не можем удалить test@test5.com и можем удалить test6. Таким образом, проблема связана с идентификатором входа, который содержит точку (.) В электронном письме или любым идентификатором, который содержит точку (.). Итак, как загрузить контекст с пользователем, содержащим точку (.).