Получение null SecurityContextHolder.getContext () при удалении пользователя в SpringSecurity - PullRequest
0 голосов
/ 08 июля 2020

При удалении пользователя я получаю значение 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. Таким образом, проблема связана с идентификатором входа, который содержит точку (.) В электронном письме или любым идентификатором, который содержит точку (.). Итак, как загрузить контекст с пользователем, содержащим точку (.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...