Нужно ли сохранять OAuth2AuthorizationRequest в методе OAuth2AuthorizationService.save?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Нужно ли сохранять OAuth2AuthorizationRequest в методе OAuth2AuthorizationService.save?

Сообщение Anonymous »

Я использую Spring Authorization Server для создания сервера авторизации.
Для сохранения и получения авторизаций я реализовал специальную службу авторизации, реализующую интерфейс 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 до метода CodeVerifierAuthenticator.authenticate:

Код: Выделить всё

OAuth2AuthorizationRequest authorizationRequest = (OAuth2AuthorizationRequest)authorization.getAttribute(OAuth2AuthorizationRequest.class.getName());

Поскольку я не сохраняю запрос авторизации, присутствующий как атрибут в объекте авторизации, я не могу получить его обратно. Также я не думаю, что сам запрос на авторизацию нужно будет сохранять.
Поэтому хочу подтвердить, действительно ли его нужно сохранять или может я что-то не так делаю.< /p>
Я попытался создать новый объект запроса авторизации и назначить его авторизации после получения его из БД. Однако построитель запросов на авторизацию доступен только для типа предоставления авторизации и требуемого URI запроса, который я не хочу жестко кодировать.

Подробнее здесь: https://stackoverflow.com/questions/788 ... rvice-save
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»