2017-03-07 3 views
0

Ich habe WSOAM 1.10 Binary heruntergeladen und installiert und die Schritte https://docs.wso2.com/display/CLUSTER44x/Clustering+API+Manager+1.10.0 für eine verteilte Bereitstellung ausgeführt. Nach dem Eingeben der Registerkarte "Meine Abonnements" im Geschäft konnte ich Schlüssel für meine abonnierte API nicht neu generieren und HTTP 400-Fehler erhalten. Die Key Mgr Protokolle zeigen:wso2 api manager 1.10 schlägt fehl Token zu regenerieren

TID: [-1234] [] [2017-03-07 20:26:14,730] ERROR {org.wso2.carbon.identity.oauth.endpoint.token.OAuth2TokenEndpoint} - Error while creating the Carbon OAuth token request {org.wso2.carbon.identity.oauth.endpoint.token.OAuth2TokenEndpoint} 
OAuthProblemException{error='invalid_request', description='Missing grant_type parameter value', uri='null', state='null', scope='null', redirectUri='null', responseStatus=0, parameters={}} 
     at org.apache.oltu.oauth2.common.exception.OAuthProblemException.error(OAuthProblemException.java:59) 
     at org.apache.oltu.oauth2.common.utils.OAuthUtils.handleOAuthProblemException(OAuthUtils.java:167) 
... 

I get the same if I use a curl command: 
curl -k -v -d "token=224cd22cd6b4ee622d951c69be34f633&grant_type=client_credentials" -H "Authorization: Basic eG9HSnZDS3FYNVNSazV6N3FHZXhhR3VTSWVnYTpzUTQ0QlBmTXRacG1ZNnA3ZUdPejhONVZxMGdh" -H "Content-Type: application/x-www-form-urlencoded" http:GATEWAY_HOST/revoke 

Sieht aus wie die revoke API-Aufruf wird die "grant_type" Parameter fehlt. Ist die Dokumentation korrekt? : https://docs.wso2.com/display/AM1100/Token+API

+0

Ja, es scheint, als ob Sie Grant-Typ fehlen. Es ist normalerweise entweder 'password' oder' refresh_token', aber es hängt von der API-Dokumentation ab. – Coder

Antwort

0

Dieses Dokument ist korrekt. Im Folgenden finden Sie die Beispielbefehle zum Generieren des Tokens und zum Widerrufen des Tokens.

curl -k -d "grant_type = client_credentials" -H "Authorization: Grund dkFGR0pLQWliMDVrUW5fX2JJZFgzS1pEaGZvYTo2NDFGWlNtSVJ2anVIU0ozcTYzbHVENXU0Mllh" http://localhost:8280/token

curl -k -v -d "token = 77ed4636c08c80fefb6f7aa1ce6987e0" -H „Authorization: Grund dkFGR0pLQWliMDVrUW5fX2JJZFgzS1pEaGZvYTo2NDFGWlNtSVJ2anVIU0ozcTYzbHVENXU0Mllh“ -H "Content-Type: application/x-www-form-urlencoded" http://localhost:8280/token

Basierend auf der Stack-Ablaufverfolgung sieht es so aus, als ob Sie versuchen, das Token zu entziehen. Der Aufruf erfolgt an den Token-Endpunkt, der den Berechtigungstyp zum Generieren des Tokens benötigt. Überprüfen Sie die Standard-APIs in der Synapse (wso2am-1.10.0/repository/deployment/server/synapse-configs/default/api), um zu überprüfen, ob die Endpunkte korrekt sind.

+0

In einer verteilten Umgebung konnte der API-Mgr-Speicher ein Token widerrufen, indem er einen Aufruf an die URL http: // [API-Mgr-Gateway]: PORT/sperrt URL aufruft. Dann verwendet das Gateway dann die Synapse-APIs, um den Schlüsselmanager mit der URL http: // [Schlüssel-Mgr]: PORT/oauth2/token anzurufen. Ist das richtig? –

+0

Ein Teil Ihrer Erklärung ist korrekt. Der Store ruft den Endpoint im Gateway zurück. Wenn Sie die Datei _RevokeAPI_.xml in der Synapse überprüfen, bei der es sich um die API revoke handelt, wird der Aufruf an http: // [Key Mgr]: PORT/oauth2/revoke gesendet. Um einen Token zu entziehen verwenden wir den revoke-Endpunkt. – Pubci