我想将WSO2EI 6.4.0用作SOAP和REST服务身份验证平台(以后可能是授权)的代理。 我在wso2(https://docs.wso2.com/display/EI640/Applying+Security+to+an+API)的文档中找到了解决方案,但不幸的是它无法正常工作。
在服务定义中添加“处理程序”元素
<handlers>
<handler class="org.wso2.carbon.integrator.core.handler.RESTBasicAuthHandler"/>
</handlers>
导致设计时间(日食)异常:
Invalid mediator <handler class="org.wso2.carbon.integrator.core.handler.RESTBasicAuthHandler"/> 1d6bbce1-08e3-42d5-b550-6a4e224b0028.xml /.tmp/.org.wso2.developerstudio.eclipse.esb line 15 org.wso2.developerstudio.eclipse.gmf.esb.diagram.synapseerror
忽略和部署此类API,会使API停止工作。
有人可以帮忙吗?
答案 0 :(得分:0)
您尝试在WSO2EI 6.4.0中为API添加基本身份验证的方法是正确的。如您提到的那样,Developer Studio将发出警告,但这不应成为问题。无论是否发出警告,Developer Studio都将允许设置处理程序,并且您应该能够创建一个包含API的Composite Application,并将其部署到ESB。以下是带有RESTBasicAuthHandler的示例API。
<?xml version="1.0" encoding="UTF-8"?>
<api context="/testapi" name="testapi" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="POST" protocol="https" url-mapping="/*">
<inSequence>
<send>
<endpoint name="testapi_EP">
<http uri-template="http://localhost:8080/testapi"/>
</endpoint>
</send>
</inSequence>
<outSequence/>
<faultSequence/>
</resource>
<handlers>
<handler class="org.wso2.carbon.integrator.core.handler.RESTBasicAuthHandler"/>
</handlers>
</api>