【问题标题】:curl usage wso2-am example apicurl 使用 wso2-am 示例 api
【发布时间】:2017-05-13 11:29:36
【问题描述】:

刚开始使用 wso2-am。我发布了示例 PizzaShackAPI: /pizzashack/1.0.0 API 并针对它注册了一个默认应用程序。我可以(重新)为默认应用程序生成密钥,这样,我可以调用例如API 控制台中的 GET/菜单项。只要访问令牌有效,这就会给我预期的列表。

然而,在 API 控制台中,等效的 curl 命令也给出为:

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'

我在 windows (curl-7.54.0-win64-mingw) 下运行它,但这不起作用。尝试用双引号等替换一些引号,但都无济于事。此外,我假设我对在 wso2-am 本身(在端口 8243 上)运行的服务使用单向 SSL,并且我自己不需要提供任何证书。我也意识到服务器端使用自签名证书,并且不确定这在这种情况下是否有任何影响。

希望有人可以帮助我解决这个问题。

作为补充 - 刚刚注意到在 wso2-am 服务器的 sys$output 中列出了以下内容:

[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)

我认为这是由于 curl 命令命中 API 服务造成的。

谢谢彼得

【问题讨论】:

    标签: wso2 wso2-am


    【解决方案1】:

    您正在访问 API 的 HTTPS url,您必须使用密钥库或使用 -k 选项抑制 cURL 中的 SSL

    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
    

    您也可以使用下面的 API 的 HTTP URL,注意端口差异。

    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'
    

    【讨论】:

    • 嗨 Abimaran,非常感谢您的反馈。我要试试你的建议。正如我之前指出的,我刚刚开始使用 ws02-am 。因此,可能会进一步描述此场景,但密钥库需要包含什么才能在 ws02-am api 控制台屏幕之外使用 SSL 进行此示例 API 调用? (或者您可以提供文档链接)?谢谢彼得
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    相关资源
    最近更新 更多