Princial является нулевым в service / oauth / authorize (сообщение http в ApproveOrDeny) после подтверждения потока подтверждения oauth2 - PullRequest
0 голосов
/ 18 октября 2019

Я использую весеннюю страницу подтверждения oauth2 безопасности, которая при авторизации запроса отправляется как "post" в "/ oauth / authorize" (метод ApproveOrDeny из класса AuthorizationEndpoint), однако один из параметров этого сервисаравно нулю, что будет "принципалом".

Страница oauth весны, когда я нажимаю в авторизации (https://i.imgur.com/rJvCUo9.jpg)

Кто-нибудь знает, почему этот параметр (принципал принципала) равен нулю?

Это метод пружины, у которого основной ноль

    public View approveOrDeny(@RequestParam Map<String, String> approvalParameters, Map<String, ?> model,
            SessionStatus sessionStatus, Principal principal) {

        if (!(principal instanceof Authentication)) {
            sessionStatus.setComplete();
            throw new InsufficientAuthenticationException(
                    "User must be authenticated with Spring Security before authorizing an access token.");
        }

         ...
         ...

1 Ответ

0 голосов
/ 22 октября 2019

Я обнаружил проблему, у меня был класс, который расширял DefaultRedirectResolver, и в переопределенном методе resolRedirect я вызывал SecurityContextHolder.clearContext ()

Просто removeindo SecurityContextHolder.clearContext (), основной участник был заполнен.

...