Как мне создать экземпляр java.security.Principal?Все подклассы устарели - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть служба Spring API, которая принимает принципал.

public ResponseEntity<ApiCustomResponse> create(Principal principal, UrlInfoData urlinfo) throws ApiException;

Принципал автоматически создается Spring для вызовов API OAuth2. Я хотел бы использовать тот же сервис для интерфейса администратора веб-страницы.

@Autowired
private IShortUrlService apiService;
...
    Principal principal = new Principal();
    apiService.create(principal, urlinfo);

Я хочу создать экземпляр Принципала с текущим зарегистрированным именем администратора. Однако все экземпляры классов устарели. Как я могу создать экземпляр Принципала для перехода на сервис?

https://docs.oracle.com/javase/8/docs/api/java/security/Principal.html

1 Ответ

3 голосов
/ 17 апреля 2019

Поскольку java.security.Principal является интерфейсом, почему бы вам не реализовать его?

Principal principal = new Principal() {

        @Override
        public String getName() {
            return adminName;
        }

    }
apiService.create(principal, urlinfo);

Кроме того, вы можете получить Принципал для текущего вошедшего в систему пользователя с помощью: SecurityContextHolder.getContext().getAuthentication().getPrincipal()

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