有什么方法可以确保对最新wso2ei 6.4.0中部署的REST服务进行基本身份验证?

时间:2018-12-11 13:12:03

标签: api wso2 basic-authentication wso2ei

我想将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停止工作。

有人可以帮忙吗?

1 个答案:

答案 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>