Ich möchte den Autorisierungscode für Refresh- und Zugriffstoken mit dem Spring oauth2-Clientpaket austauschen. Mein Code sieht so aus:Spring - oauth2 - Autorisierungscode für Aktualisierungs- und Zugriffstoken austauschen
public static void main(String[] args) {
AuthorizationCodeResourceDetails resource = new AuthorizationCodeResourceDetails();
resource.setUserAuthorizationUri("http://localhost:8080/oauth/authorize");
resource.setAccessTokenUri("http://localhost:8080/oauth/token");
resource.setClientId("my-client-with-secret");
resource.setClientSecret("secret");
AccessTokenRequest request = new DefaultAccessTokenRequest();
request.setAuthorizationCode("o9subu");
AuthorizationCodeAccessTokenProvider provider = new AuthorizationCodeAccessTokenProvider();
OAuth2AccessToken accessToken = provider.obtainAccessToken(resource, request);
System.out.println(accessToken.getValue());
}
Der Anbieter von https://github.com/spring-projects/spring-security-oauth/tree/master/tests/annotation/approval ist, und ich habe die temp oauth2 Code aus dem Browser genommen, wenn ich die Anbieter direkt angerufen.
und die Fehlermeldung ist
Exception in thread "main" error = "invalid_request", ERROR_DESCRIPTION = "Möglicher CSRF erkannt - Zustandsparameter erforderlich war, aber kein Staat gefunden werden kann" bei org.springframework .security.oauth2.client.token.grant.code.AuthorizationCodeAccessTokenProvider.getParametersForTokenRequest (AuthorizationCodeAccessTokenProvider.java:255) bei org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeAccessTokenProvider.obtainAccessToken (AuthorizationCodeAccessTokenProvider.java:209)
Ich möchte immer noch access_token und secret_token von mir anfordern, weil ich den oauth2-Code von einem anderen System bekomme.