currentUri в AccessTokenRequest всегда null
Всем привет.
Реализую OAuth2 авторизацию с помощью AuthorizationCodeAccessTokenProvider, и собственно в месте, где я должен перед отправкой запроса на получение кода авторизации в параметры положить redirect_uri, я всегда получаю null.
@Override
public OAuth2AccessToken obtainAccessToken(OAuth2ProtectedResourceDetails details, AccessTokenRequest request) throws UserRedirectRequiredException, UserApprovalRequiredException, AccessDeniedException, OAuth2AccessDeniedException {
AuthorizationCodeResourceDetails resource = (AuthorizationCodeResourceDetails) details;
if (request.getAuthorizationCode() == null && request.getStateKey() == null) {
// Пользователь еще не авторизовался
throw getRedirectForAuthorization((AuthorizationResource) resource, request);
}
...
}
UserRedirectRequiredException getRedirectForAuthorization(AuthorizationResource resource, AccessTokenRequest request) {
Map<String, String> params = new HashMap<>();
final String clientId = resource.getClientId();
final String redirectUri = resource.getRedirectUri(request); // Здесь null
...
return redirectException;
}
Вопрос - почему в объекте AccessTokenRequest текущий адрес запроса currentUri может быть равен нулю?
На всякий случай дефолтная реализация метода getRedirectUri(request):
public String getRedirectUri(AccessTokenRequest request) {
String redirectUri = (String)request.getFirst("redirect_uri");
if (redirectUri == null && request.getCurrentUri() != null && this.useCurrentUri) {
redirectUri = request.getCurrentUri();
}
if (redirectUri == null && this.getPreEstablishedRedirectUri() != null) {
redirectUri = this.getPreEstablishedRedirectUri();
}
return redirectUri;
}