我在 WSO2 ESB 中有很多代理,我必须对其进行保护。我需要在部署时使用用户名令牌来保护它们,而不是浏览到仪表板并一一启用它。
有什么帮助吗?
我想目前,您需要使用管理控制台并执行此操作。从 UI 中,它正在调用后端 Web 服务。您可以通过自动化此后端 Web 服务来自动化流程。此 Web 服务由以下组件 [1] 公开。您可以使用soapui 或一些客户端程序来自动化这个Web 服务。
我有类似的要求,这是我解决的方法
使用 Java API 将角色安全性应用于 WSO2 ESB 代理
您也可以在此处找到有关如何使用这些方法的测试用例
那么这里的代码片段如何使用 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");