我正在安全对话场景中使用WSO2 Identity Server 4.6.0中的STS服务与场景5的安全性和WSO2 Application Server 5.2.1中的Web服务使用场景15进行安全保护。
当我从WSO2 IS请求令牌时,我收到了这个错误:
SEVERE: errorInObtainingToken
org.apache.axis2.AxisFault: Expected parameter missing : "sct-issuer-config"
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
at org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:150)
org.apache.rahas.TrustException: Error in obtaining token from : "https://localhost:9449/services/wso2carbon-sts"
at org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:159)
有关如何在我的代码中配置sct-issuer-config参数的任何想法?它是客户端还是服务器端?
编辑:我将配置不在WSO2 AS中部署的服务中,而是在WSO2 IS中部署的STS服务中,并且错误更改。现在是这样的:
org.apache.rahas.TrustException: Error in obtaining token from : "https://localhost:9449/services/wso2carbon-sts"
at org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:159)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: org.apache.axis2.AxisFault: java.lang.RuntimeException: Undefined 'Unsupported WS-SecureConversation version' resource property
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
at org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:150)
... 6 more
感谢。
答案 0 :(得分:0)
sct-issuer-config
应作为axis2参数添加到AS中的服务中。它通常如下所示。您可以尝试手动将此参数添加到服务中,然后尝试。
<parameter name="sct-issuer-config" type="2">
<sct-issuer-config>
<cryptoProperties>
<crypto provider="org.wso2.carbon.security.util.ServerCrypto">
<property name="org.wso2.carbon.security.crypto.alias">wso2carbon</property>
<property name="org.wso2.carbon.security.crypto.privatestore">wso2carbon.jks</property>
</crypto>
</cryptoProperties>
<keyComputation>3</keyComputation>
<proofKeyType>BinarySecret</proofKeyType>
<addRequestedAttachedRef/>
<addRequestedUnattachedRef/>
</sct-issuer-config>
</parameter>
<parameter name="token-canceler-config" type="2">
<token-canceler-config/>
<parameter name="token-canceler-config" type="1">
<token-canceler-config/>
</parameter>
</parameter>