我正在尝试使用REST API来保护WSO2 ESB,方法是遵循以下方法:https://docs.wso2.com/display/ESB480/Securing+REST+APIs
我的API配置:
<?xml version="1.0" encoding="UTF-8"?>
<api xmlns="http://ws.apache.org/ns/synapse"
name="Test"
context="/test">
<resource methods="GET">
<inSequence>
<log level="full">
<property name="STATUS" value="***** REQUEST HITS IN SEQUENCE *****"/>
</log>
<send>
<endpoint>
<http method="get" uri-template="http://localhost:8080/document"/>
</endpoint>
</send>
</inSequence>
</resource>
<handlers>
<handler class="org.wso2.handler.SimpleOauthHandler"/>
</handlers>
</api>
当我删除处理程序部分时,我可以看到我的服务被调用。但是当我包含ouath处理程序时,我可以看到我的WSO2 Identity Server接收到令牌验证调用,但ESB的响应始终是HTTP 202。
curl -v -X GET -H&#34;授权:Bearer UQFffmYViFDxTHfCLOwDpjcX3qXZYQuiJ8EgJ_m-F1V7JTgqb6lbyA8QMT3&#34; http://localhost:8285/document
> GET /document HTTP/1.1
> User-Agent: curl/7.33.0
> Host: 192.168.2.162:8285
> Accept: */*
> Authorization: Bearer UQFffmYViFDxTHfCLOwDpjcX3qXZYQuiJ8EgJ_m-F1V7JTgqb6lbyA8QMT3
>
< HTTP/1.1 202 Accepted
< Date: Fri, 10 Apr 2015 20:44:57 GMT
* Server WSO2-PassThrough-HTTP is not blacklisted
< Server: WSO2-PassThrough-HTTP
< Transfer-Encoding: chunked
关于我缺少什么或如何调试的任何指示都将不胜感激。
谢谢。
答案 0 :(得分:0)
事实上,我的访问令牌问题。使用正确的令牌是正确的。也可以使用OAuth介体代替处理程序。
<api xmlns="http://ws.apache.org/ns/synapse"
name="Test"
context="/test">
<resource methods="GET">
<inSequence>
<log level="full">
<property name="STATUS" value="***** REQUEST HITS IN SEQUENCE *****"/>
</log>
<oauthService remoteServiceUrl="https://localhost:9445/services/" username="admin" password="admin"/>
<send>
<endpoint>
<http method="get" uri-template="http://localhost:8080/document"/>
</endpoint>
</send>
</inSequence>
</resource>
</api>