Для сохранения и получения авторизаций я реализовал специальную службу авторизации, реализующую интерфейс OAuth2AuthorizationService. При вызове метода save я сохраняю клиента, тип гранта, авторизованные области, принципала и токены, доступные в объекте авторизации. Я не сохраняю никаких атрибутов объекта авторизации, поскольку не определил никаких пользовательских атрибутов.
Когда я отправляю запрос на конечную точку /authorize, я получаю код авторизации и он сохраняется в БД, как и ожидалось. Однако когда я вызываю конечную точку /token для получения токена доступа, выдается исключение.
Код: Выделить всё
java.lang.NullPointerException: Cannot invoke "org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest.getAdditionalParameters()" because
"authorizationRequest" is null at org.springframework.security.oauth2.server.authorization.authentication.CodeVerifierAuthenticator.authenticate(CodeVerifierAuthenticator.java:97) at org.springframework.security.oauth2.server.authorization.authentication.CodeVerifierAuthenticator.authenticatelfAvailable(CodeVerifierAuthenticator.java:73) at org.springframework.security.oauth2.server.authorization.authentication.ClientSecretAuthentication Provider.authenticate(ClientSecretAuthenticationProvider.java:151) at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:182) at org.springframework.security.authentication. ObservationAuthenticationManager.lambda$authenticate$1(ObservationAuthenticationManager.java:54)
Код: Выделить всё
OAuth2AuthorizationRequest authorizationRequest = (OAuth2AuthorizationRequest)authorization.getAttribute(OAuth2AuthorizationRequest.class.getName());
Поэтому хочу подтвердить, действительно ли его нужно сохранять или может я что-то не так делаю.< /p>
Я попытался создать новый объект запроса авторизации и назначить его авторизации после получения его из БД. Однако построитель запросов на авторизацию доступен только для типа предоставления авторизации и требуемого URI запроса, который я не хочу жестко кодировать.
Подробнее здесь: https://stackoverflow.com/questions/788 ... rvice-save
Мобильная версия