Oauth 2.0 WSO2 ESB-使用OAuth2服务

Oauth 2.0 WSO2 ESB-使用OAuth2服务,oauth-2.0,wso2esb,Oauth 2.0,Wso2esb,我打算调用OAuth令牌服务来检索令牌。 下面是我的代理。这是一个简单的rest端点调用,用于检索令牌。出于测试目的,我尝试将令牌记录在响应中 <?xml version="1.0" encoding="UTF-8"?> <proxy name="sla_proxy_svc_vo2" startOnLoad="true" trace="disable" transports="http https" xmlns="http://ws.apache.org/ns/synapse"

我打算调用OAuth令牌服务来检索令牌。 下面是我的代理。这是一个简单的rest端点调用,用于检索令牌。出于测试目的,我尝试将令牌记录在响应中

<?xml version="1.0" encoding="UTF-8"?>
<proxy name="sla_proxy_svc_vo2" startOnLoad="true" trace="disable"
transports="http https" xmlns="http://ws.apache.org/ns/synapse">
<target>
    <inSequence>
        <log level="custom">
            <property name="msg" value="*****INITIATING*****" />
        </log>
        <payloadFactory media-type="xml">
            <format>
                <soapenv:Envelope xmlns:echo="http://echo.services.core.carbon.wso2.org"
                    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
                    <soapenv:Body>
                        <nstxt:text xmlns:nstxt="http://ws.apache.org/commons/ns/payload">grant_type=client_credentials&amp;client_id=G6Dk_3ZdrXOfPiuctufVq6GfTWoa&amp;client_secret=jxA8NTkEClE5xGUvGvvhVTDyXM4a</nstxt:text>
                    </soapenv:Body>
                </soapenv:Envelope>
            </format>
            <args />
        </payloadFactory>
        <log level="custom">
            <property name="msg" value="*****BEFORE TOKEN SERVICE CALL*****" />
        </log>
        <log level="full" />
        <property name="HTTP_METHOD" scope="axis2" type="STRING"
            value="POST" />
        <property name="messageType" scope="axis2" type="STRING"
            value="text/plain" />
        <property name="ContentType" scope="axis2" type="STRING"
            value="text/plain" />
        <property name="Accept" scope="axis2" type="STRING"
            value="application/json" />
        <send>
            <endpoint>
                <http format="rest" method="post" trace="disable"
                    uri-template="http://10.236.70.9:8281/token" />
            </endpoint>
        </send>
    </inSequence>
    <outSequence>
        <log level="custom">
            <property name="msg" value="******OUT SEQUENCE*******" />
        </log>
        <log level="full" />
        <send />
    </outSequence>
    <faultSequence />
</target>
</proxy>

授予\类型=客户\凭证&;客户id=G6Dk\U 3ZdrXOfPiuctufVq6GfTWoa&;客户_secret=jxa8ntkecle5xguvgvvtdyxm4a
我打电话时得到以下回复

DEBUG {org.apache.synapse.transport.http.wire} -  << "HTTP/1.1 415 Unsupported Media Type[\r][\n]" {org.apache.synapse.transport.http.wire}
DEBUG {org.apache.synapse.transport.http.wire} -  << "X-Frame-Options: DENY[\r][\n]" {org.apache.synapse.transport.http.wire}
DEBUG {org.apache.synapse.transport.http.wire} -  << "X-XSS-Protection: 1; mode=block[\r][\n]" {org.apache.synapse.transport.http

DEBUG{org.apache.synapse.transport.http.wire}-我能够使用以下负载调用该服务

<payloadFactory media-type="xml">
            <format>
                <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
                    <soapenv:Body>
                        <root>
                            <grant_type>client_credentials</grant_type>
                            <client_id>G6Dk_3ZdrXOfPiuctufVq6GfTWoa</client_id>
                            <client_secret>jxA8NTkEClE5xGUvGvvhVTDyXM4a</client_secret>
                        </root>
                    </soapenv:Body>
                </soapenv:Envelope>
            </format>
            <args />
        </payloadFactory>

客户端凭据
G6Dk_3ZDRXOFPIUCTUFQ6GFTwoA
JXA8Ntkecle5xGuvGVvtdyxM4A
还必须添加以下内容类型

<property name="messageType" scope="axis2" type="STRING" value="application/x-www-form-urlencoded" />
<property name="ContentType" scope="axis2" type="STRING" value="application/x-www-form-urlencoded" /> 


这起作用并检索到了令牌。

这是我在组件中使用的一个模板,用于设置oAuth令牌,您可能会根据您的情况对其进行一些调整(听起来您不需要grantType或用户凭据)



Hi@Yasothar你的问题解决了吗,其中一个答案对你有帮助吗?是的,尼古拉斯,这很有帮助。我找到了,你的回答也很有帮助。