您能否以编程方式更改 SecurityTokenService 的 AlgorithmSuite?
Can you change the SecurityTokenService's AlgorithmSuite programmatically?
我必须使用文档中包含此片段的服务:
...you may need to release an update that changes
the configured STS URL to the v1.3 production end point, and changes the AlgorithmSuite on the STS binding to SecurityAlgorithmSuite.Basic256Sha256Rsa15
我是这样处理请求的:
IService service = new Service(new URL(getServiceWSDL())).getWS2007FederationHttpBindingIService();
((WSBindingProvider) service).getRequestContext().put(CERTIFICATE_PROPERTY, getCertificate());
((WSBindingProvider) service).getRequestContext().put(PRIVATEKEY_PROPERTY, getPrivateKey());
((WSBindingProvider) service).getRequestContext().put(STS_NAMESPACE, getSTSNamespace());
((WSBindingProvider) service).getRequestContext().put(STS_PORT_NAME, getSTSPortName());
((WSBindingProvider) service).getRequestContext().put(STS_SERVICE_NAME, getSTSServiceName());
((WSBindingProvider) service).getRequestContext().put(STS_ENDPOINT, getSTSEndpoint());
((WSBindingProvider) service).getRequestContext().put(STS_WSDL_LOCATION, getSTSWDSLLocation());
service.operation(...);
请求执行时,它首先使用 STS 进行身份验证,然后执行实际请求。如何更改请求的 STS 部分的 AlgorithmSuite?
我尝试在 STS 的 WSDL 中声明它,但我不认为该请求实际上使用该 WSDL 加载任何内容。
您不能以编程方式更改它。如果必须更改它,则必须在加载之前修改 WSDL。我只是手动修改了我正在使用的实际 WSDL,但您可以通过编程方式进行修改。
我必须使用文档中包含此片段的服务:
...you may need to release an update that changes the configured STS URL to the v1.3 production end point, and changes the AlgorithmSuite on the STS binding to SecurityAlgorithmSuite.Basic256Sha256Rsa15
我是这样处理请求的:
IService service = new Service(new URL(getServiceWSDL())).getWS2007FederationHttpBindingIService();
((WSBindingProvider) service).getRequestContext().put(CERTIFICATE_PROPERTY, getCertificate());
((WSBindingProvider) service).getRequestContext().put(PRIVATEKEY_PROPERTY, getPrivateKey());
((WSBindingProvider) service).getRequestContext().put(STS_NAMESPACE, getSTSNamespace());
((WSBindingProvider) service).getRequestContext().put(STS_PORT_NAME, getSTSPortName());
((WSBindingProvider) service).getRequestContext().put(STS_SERVICE_NAME, getSTSServiceName());
((WSBindingProvider) service).getRequestContext().put(STS_ENDPOINT, getSTSEndpoint());
((WSBindingProvider) service).getRequestContext().put(STS_WSDL_LOCATION, getSTSWDSLLocation());
service.operation(...);
请求执行时,它首先使用 STS 进行身份验证,然后执行实际请求。如何更改请求的 STS 部分的 AlgorithmSuite?
我尝试在 STS 的 WSDL 中声明它,但我不认为该请求实际上使用该 WSDL 加载任何内容。
您不能以编程方式更改它。如果必须更改它,则必须在加载之前修改 WSDL。我只是手动修改了我正在使用的实际 WSDL,但您可以通过编程方式进行修改。