WSO2 ESB如何在部署时默认安装代理

时间:2013-09-24 12:35:58

标签: wso2 wso2esb

我在WSO2 ESB中有很多代理我必须安全。我需要在部署时使用用户名令牌进行安全化,而不是浏览仪表板并逐个启用它。

任何帮助?

2 个答案:

答案 0 :(得分:0)

我猜当前,您需要使用管理控制台并执行此操作。在UI中,它正在调用后端Web服务。您可以通过自动化此后端Web服务来自动执行流程。此Web服务由以下组件[1]公开。您可以使用soapui或某些客户端程序自动执行此Web服务。

[1] http://svn.wso2.org/repos/wso2/carbon/platform/trunk/components/security/org.wso2.carbon.security.mgt/

答案 1 :(得分:0)

我有类似的要求,这是我如何解决它

Apply Role security to WSO2 ESB Proxy using Java API

此外,您可以在此处找到有关如何使用方法的测试用例

http://svn.wso2.org/repos/wso2/tags/carbon/3.2.3/products/bps/2.1.1/modules/integration/org.wso2.bps.management.test/src/test/java/org/wso2/bps/management/SecurityTest.java

在这里,代码片段如何使用WSO2 ESB的默认安全方案来保护任何代理服务。在WSO2中,ESB“scenario1”表示基于Usernametoken的安全性。现在,如果您希望使用scenario1保护代理,请按照以下代码段进行操作:

  public void applySecurityOnService(String serviceName, String policyId,
        String[] userGroups, String[] trustedKeyStoreArray,
        String privateStore)
        throws SecurityAdminServiceSecurityConfigExceptionException,
        RemoteException {
    ApplySecurity applySecurity;
    applySecurity = new ApplySecurity();
    applySecurity.setServiceName(serviceName);
    applySecurity.setPolicyId("scenario" + policyId); //scenario1 i.e. for Usernametoken security policyId should be 1
    applySecurity.setTrustedStores(trustedKeyStoreArray);
    applySecurity.setPrivateStore(privateStore);
    applySecurity.setUserGroupNames(userGroups);
    stub.applySecurity(applySecurity);
    _logger.info("Security Applied Successfully");
} 

以下是您可以从客户端类调用此方法的方法:

 applySecurityOnService("MyProxy", "1", new String[]{"TestRole"}, new String[]{"wso2carbon.jks"}, "wso2carbon.jks");