Web services 在wso2esb中调用安全web服务

Web services 在wso2esb中调用安全web服务,web-services,wso2,axis,esb,Web Services,Wso2,Axis,Esb,我已经在WSO2 ESB中创建了一个web服务。安全性实现了只有特定的用户角色才能访问它 现在,当我使用SOAP-UI点击该服务时,通过提供用户名、密码、密码类型,我能够点击该服务 现在,我想创建一个独立的Java项目来访问这个安全的WEB服务 我正试图为此实现apache rampart,但我掌握的信息并不多 任何人都可以帮助我如何访问此安全服务 感谢和问候。通过这种方式访问安全的web服务,我假定您使用UT场景: String trustStore = null; Configurati

我已经在WSO2 ESB中创建了一个web服务。安全性实现了只有特定的用户角色才能访问它

现在,当我使用SOAP-UI点击该服务时,通过提供用户名、密码、密码类型,我能够点击该服务

现在,我想创建一个独立的Java项目来访问这个安全的WEB服务

我正试图为此实现apache rampart,但我掌握的信息并不多

任何人都可以帮助我如何访问此安全服务


感谢和问候。

通过这种方式访问安全的web服务,我假定您使用UT场景:

String trustStore = null;  
ConfigurationContext ctx = null;
String policyFilePath = "[file_system_path]/secure_sample_policy.xml";

trustStore = "[file_system_path]/wso2carbon.jks";  
System.setProperty("javax.net.ssl.trustStore",trustStore);  
System.setProperty("javax.net.ssl.trustStorePassword","pass_store");  

ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(null,
        null);
this.stub = new ProxyStub(ctx);
stub._getServiceClient().engageModule("rampart");
stub._getServiceClient().engageModule("addressing");

Options options = this.stub._getServiceClient().getOptions();
options.setUserName("user");
        options.setPassword("pass");

options.setProperty(RampartMessageData.KEY_RAMPART_POLICY, loadPolicy(policyFilePath));
this.stub._getServiceClient().setOptions(options);
方法加载策略:

private static Policy loadPolicy(String xmlPath) throws Exception {
    StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
    return PolicyEngine.getPolicy(builder.getDocumentElement());
}
以及一个示例策略文件:

<?xml version="1.0" encoding="UTF-8"?>

<wsp:Policy wsu:Id="UTOverTransport" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
    <wsp:ExactlyOne>
      <wsp:All>
        <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
          <wsp:Policy>
            <sp:TransportToken>
              <wsp:Policy>
                <sp:HttpsToken RequireClientCertificate="false"/>
              </wsp:Policy>
            </sp:TransportToken>
            <sp:AlgorithmSuite>
              <wsp:Policy>
                <sp:Basic256/>
              </wsp:Policy>
            </sp:AlgorithmSuite>
            <sp:Layout>
              <wsp:Policy>
                <sp:Lax/>
              </wsp:Policy>
            </sp:Layout>
            <sp:IncludeTimestamp/>
          </wsp:Policy>
        </sp:TransportBinding>
        <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
            <wsp:Policy>
                <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient"/>
          </wsp:Policy>
        </sp:SignedSupportingTokens>

      </wsp:All>
    </wsp:ExactlyOne>
</wsp:Policy>