Как получить доступ к информации о пользователе, который в данный момент обращается к контроллеру в Spring и Spring Security - PullRequest
0 голосов
/ 10 ноября 2019

Мне нравится знать, кто в данный момент идет к контроллеру, и контроллер будет извлекать данные из базы данных, основываясь на том, кто пользователь. Есть ли способ узнать, кто пользователь, или имя пользователя должно быть сохранено во внешнем интерфейсе приложения. Я попробовал это в контроллере.

    Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    String username = "";
    if (principal instanceof UserDetails) {
        username = ((UserDetails) principal).getUsername();
    } else {
        username = principal.toString();
    }
    System.out.print("email is:" +  username);

Однако, он возвращает anonymousUser, который не является именем пользователя в базе данных.

Любые идеи о том, что я делаю неправильно. TIA

1 Ответ

0 голосов
/ 10 ноября 2019

((UserDetails) principal).getUsername() выдаст anonymousUser при доступе к конечным точкам без входа . Чтобы получить имя пользователя, вы должны сначала выполнить вход, и он вернет соответствующее имя пользователя. Другие способы получения подробной информации для текущего вошедшего в систему пользователя.

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