2017-05-12 3 views
1

hat gerade mit wso2-am begonnen. Ich habe das Beispiel PizzaShackAPI: /pizzashack/1.0.0 API veröffentlicht und eine Standardanwendung dagegen registriert. Ich kann Schlüssel für die Standardanwendung (re) generieren und damit kann ich z.B. das GET/Menüelement in der API-Konsole. Dies gibt mir die erwartete Liste, solange das Zugriffstoken gültig ist.curl usage wso2-am beispiel api

jedoch in der API-Konsole entspricht curl Befehl auch als gegeben:

curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 00cb3832-f73f-3536-b287-4330a47ef4bd' 'https://192.168.1.9:8243/pizzashack/1.0.0/menu' 

ich das unter Windows laufen (curl-7.54.0-win64-mingw), aber das funktioniert nicht. Versucht, einige Zitate mit Anführungszeichen usw. zu ersetzen, aber alles ohne Erfolg. Außerdem gehe ich davon aus, dass ich für den Dienst, der in wso2-am läuft, Einweg-SSL verwende (an Port 8243) und ich selbst kein Zertifikat liefern muss. Ich weiß auch, dass die Serverseite ein selbstsigniertes Zertifikat verwendet und nicht sicher ist, ob dies in dieser Situation Auswirkungen hat.

Hoffe jemand kann mir dabei helfen.

Als Ergänzung - gerade festgestellt, dass die in der sys $ Ausgabe des WSO2-am-Servers folgend aufgeführt:

[2017-05-13 00:38:38,858] ERROR - SourceHandler I/O error: Received fatal alert: 
unknown_ca 
javax.net.ssl.SSLException: Received fatal alert: unknown_ca 
     at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) 
     at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1639) 
     at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1607) 
     at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1776) 
     at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1068) 
     at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:890) 
     at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:764) 
     at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624) 
     at org.apache.http.nio.reactor.ssl.SSLIOSession.doUnwrap(SSLIOSession.ja 
va:245) 

Ich denke, dass dies durch den curl Befehl, um den API-Service schlägt verursacht wird.

Dank Peter

Antwort

0

Sie greifen HTTPS URL der API, haben Sie entweder einen Schlüsselspeicher verwenden oder die SSL in cURL mit Option -k

curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 00cb3832-f73f-3536-b287-4330a47ef4bd' 'https://192.168.1.9:8243/pizzashack/1.0.0/menu' -k 

Sie auch unter HTTP-URL verwenden können, unterdrücken der API beachten Sie den Portunterschied.

curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 00cb3832-f73f-3536-b287-4330a47ef4bd' 'http://192.168.1.9:8280/pizzashack/1.0.0/menu' 
+0

Hallo Abimaran, vielen Dank für die Rückmeldung. Ich werde deinen Vorschlag ausprobieren. Wie ich bereits angedeutet habe, habe ich gerade mit ws02-am angefangen. Möglicherweise wird dieses Szenario weiter unten beschrieben, aber was muss der Keystore enthalten, um SSL für diesen Beispiel-API-Aufruf außerhalb des ws02-am api-Konsolenbildschirms verwenden zu können? (oder vielleicht können Sie einen Link zur Dokumentation angeben)? Danke Peter – user3665510