Обнаружение UserRedirectRequiredException - при реализации кода авторизации Grant с использованием Spring Boot - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь реализовать тип предоставления кода авторизации с помощью Spring Boot и сталкиваюсь с UserRedirectRequiredException.Насколько я понимаю, существует проблема с кодом авторизации, который не может обмениваться кодом токена доступа. Ниже упомянутый код используется для того же самого.Было бы полезно, если бы кто-то мог предоставить некоторые сведения о том, как вызывать API, защищенный с помощью типа разрешенного разрешения.

То, что я пробовал:

Настройка фильтра Регистрация компонента в классе конфигурации, как упоминалось ниже, но он это сделалтоже не поможет:

 @Bean
public FilterRegistrationBean<OAuth2ClientContextFilter> 
    oauth2ClientFilterRegistration(OAuth2ClientContextFilter filter) {
    FilterRegistrationBean<OAuth2ClientContextFilter> registration = new 
    FilterRegistrationBean<OAuth2ClientContextFilter>();
    registration.setFilter(filter);
    registration.setOrder(-100);
    return registration;
}

@RestController
@EnableOAuth2Client
public class ApiController {

@Value("${security.oauth2.client.clientId}")
private String clientId;

@Value("${security.oauth2.client.clientSecret}")
private String clientSecret;

@Value("${security.oauth2.client.accessTokenUri}")
private String accessTokenUri;

@Value(("${security.oauth2.client.userAuthorizationUri}"))
private String userAuthorizationUri;

@Value("${security.oauth2.client.apiUrl}")
private String apiUrl;

@Value("${security.oauth2.client.redirectUri}")
private String redirectUri;

@Autowired
private OAuth2ClientContext oAuth2Context;


@Bean
public OAuth2RestTemplate getOauth2RestTemplate() {
    return new OAuth2RestTemplate(resource(),oAuth2Context);
}   


 @RequestMapping("/api")
 public String retrieve() {
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    headers.set("Accept","application/json");
    headers.set("Accept-Encoding","gzip, deflate, br"); 

    String parameters "grant_type=authorization_code&client_id=xxxxxxxxxx&client_secret=xxxxxxxxx";
    OAuth2RestTemplate oAuth2RestTemplate = getOauth2RestTemplate();
    HttpEntity request = new HttpEntity(parameters,headers);
    HttpEntity token = oAuth2RestTemplate.postForEntity(accessTokenUri, 
    request, String.class);


private OAuth2ProtectedResourceDetails resource() {
AuthorizationCodeResourceDetails authorizationCodeResourceDetails = new 
AuthorizationCodeResourceDetails();
authorizationCodeResourceDetails.setClientId(clientId);
authorizationCodeResourceDetails.setClientSecret(clientSecret);
authorizationCodeResourceDetails.setAccessTokenUri(accessTokenUri);
authorizationCodeResourceDetails.
setuserAuthorizationUri(userAuthorizationUri);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...