【发布时间】:2020-11-30 16:42:19
【问题描述】:
我正在尝试通过 SOAP 创建一个 SP。创建 SP 的调用是正确的,之后我尝试通过 SOAP 指定 oauthConsumerKey 和 oauthConsumerSecret 来配置 Oauth2,就像这样
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://org.apache.axis2/xsd" xmlns:xsd1="http://dto.oauth.identity.carbon.wso2.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<xsd:registerOAuthApplicationData>
<xsd:application>
<xsd1:OAuthVersion>OAuth-2.0</xsd1:OAuthVersion>
<xsd1:applicationAccessTokenExpiryTime>3600</xsd1:applicationAccessTokenExpiryTime>
<xsd1:applicationName>test</xsd1:applicationName>
<xsd1:callbackUrl>regexp=(.*)/login/oauth2/code/wso2</xsd1:callbackUrl>
<xsd1:grantTypes>refresh_token urn:ietf:params:oauth:grant-type:saml2-bearer implicit password client_credentials iwa:ntlm authorization_code urn:ietf:params:oauth:grant-type:uma-ticket urn:ietf:params:oauth:grant-type:jwt-bearer</xsd1:grantTypes>
<xsd1:oauthConsumerKey>gVWBVK0pdX4pg2Yk3fFbBjKe1aUa</xsd1:oauthConsumerKey>
<xsd1:oauthConsumerSecret>CbfGJXhTYvb3i1BAfu5ijgUSXXYa</xsd1:oauthConsumerSecret>
<xsd1:pkceMandatory>false</xsd1:pkceMandatory>
<xsd1:pkceSupportPlain>true</xsd1:pkceSupportPlain>
<xsd1:refreshTokenExpiryTime>86400</xsd1:refreshTokenExpiryTime>
<xsd1:userAccessTokenExpiryTime>3600</xsd1:userAccessTokenExpiryTime>
</xsd:application>
</xsd:registerOAuthApplicationData>
</soapenv:Body>
</soapenv:Envelope>
但在 db 中,我发现了不同的键、oauth 版本、callbackUrl 和 grant_types,如附加屏幕所示 我做错了吗?
当我运行 SOAP 时,响应是
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns:registerOAuthConsumerResponse xmlns:ns="http://org.apache.axis2/xsd" xmlns:ax2408="http://dto.oauth.identity.carbon.wso2.org/xsd" xmlns:ax2404="http://oauth.identity.carbon.wso2.org/xsd" xmlns:ax2405="http://base.identity.carbon.wso2.org/xsd"><ns:return>BE2JqA9lOZQKSkMvo4diNy2QHb0a</ns:return><ns:return>7xjxUrbWOztADfODEcvEbn8NeuEa</ns:return></ns:registerOAuthConsumerResponse></soapenv:Body></soapenv:Envelope>
【问题讨论】:
-
能否请您提及 IS 版本和您用于 IS 的数据库类型?
-
我使用的 wso2 是 5.10 和 postgres db
-
希望您在复制粘贴时错过了
起始标签。除此之外,此 SOAP 请求正文是正确的。我尝试了完全相同的请求正文,它工作正常。我认为您正在查看表格中的其他条目。您能否刷新 idn_oauth_consumer_apps 表并查看 SOAP 调用后的条目 -
我已经更新了答案...它不适合我
-
@Jalisse 给定的 SOAP 响应不是上述 SOAP 请求(registerOAuthApplicationData)的预期响应。对于提到的soap 请求,您应该得到一个registerOAuthApplicationDataResponse。如果你只执行 registerOAuthConsumer SOAP 请求,你会得到一个 registerOAuthConsumerResponse。您正在查看的数据库条目是由于 registerOAuthConsumer 请求而生成的。似乎您正在使用不同的肥皂请求
标签: wso2 wso2is wso2carbon