0

我在 WSO2 ESB 中有很多代理,我必须对其进行保护。我需要在部署时使用用户名令牌来保护它们,而不是浏览到仪表板并一一启用它。

有什么帮助吗?

4

2 回答 2

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/

于 2013-09-24T17:38:04.313 回答
0

我有类似的要求,这是我解决的方法

使用 Java API 将角色安全性应用于 WSO2 ESB 代理

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

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 的安全性。现在,如果您希望使用方案 1 保护您的代理,请遵循以下代码片段:

  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");
于 2014-08-29T12:52:25.820 回答