【问题标题】:Invoke Secured web service in wso2esb在 wso2esb 中调用安全的 Web 服务
【发布时间】:2013-07-01 17:29:55
【问题描述】:

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

现在,当我使用 SOAP-UI 访问该服务时,通过提供用户名、密码、密码类型,我可以访问该服务。

现在,我想创建一个可以访问此安全网络服务的独立 Java 项目。

我正在尝试为此目的实现 apache-rampart,但我掌握的信息很分散。

谁能帮助我了解如何访问此安全服务。

感谢和问候。

【问题讨论】:

    标签: web-services wso2 axis esb


    【解决方案1】:

    以这种方式访问​​安全的网络服务,我假设你使用的是 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);
    

    方法loadPolicy:

    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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多