我在两台不同的计算机上有两个WSO2实例,并且两个实例都发布了相同的策略。两个WSO2实例都有admin / admin。
我使用SOAPUI(在192.168.0.9上运行)尝试针对EntitlementService Web服务进行测试,并且:
如果我使用SOAPUI来测试运行SOAPUI的同一台机器上的EntitlementService Web服务(192.168.0.9),使用localhost或IP地址,我会获得带有Permit的XACML响应。然而,
如果我使用SOAPUI来测试另一台机器上的EntitlementService Web服务(192.168.0.210),我会收到一个带有拒绝的XACML响应,以及一个"非法访问尝试" 192.168.0.210 WSO2日志中的错误:
从[IP地址] [2014-05-12 15:26:47,0563]进行非法访问尝试 192.168.0.9尝试验证对服务EntitlementService的访问权限
在上述两种情况下,我都有BASIC身份验证和' admin'在SOAPUI中设置用户名和密码。
如果我在192.168.0.210 WSO2管理员上运行Tryit来测试192.168.0.210 WSO2,我会得到一份许可证,即这表明192.168.0.210上的政策应该返回许可证。
最后,我非常确定这是WSO2的内容,而不是SOAPUI,因为我还使用Firefox和一个名为RESTclient的插件从192.168.0.9机器测试,以测试XACML的POST请求在内容正文中。
如果请求来自不同的计算机,WSO2 Identity Server中是否存在导致其返回拒绝的内容?
谢谢, 吉姆
P.S。我在WSO2 wso2carbon.log文件中看到以下内容:
TID:[0] [IS] [2014-05-12 15:59:40,798] ERROR {org.wso2.carbon.core.services.authentication.AbstractAuthenticator} - 检测到无效的远程地址。 {} org.wso2.carbon.core.services.authentication.AbstractAuthenticator org.wso2.carbon.core.common.AuthenticationException:Authentication Failed:传递的无效远程地址 - 0:0:0:0:0:0:0:1 at org.wso2.carbon.core.services.authentication.AuthenticationUtil.validateRemoteAddress(AuthenticationUtil.java:178) at org.wso2.carbon.core.services.authentication.AuthenticationUtil.getRemoteAddress(AuthenticationUtil.java:156) at org.wso2.carbon.core.services.authentication.AbstractAuthenticator.getRemoteAddress(AbstractAuthenticator.java:304) at org.wso2.carbon.core.services.authentication.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:136) 在org.wso2.carbon.server.admin.module.handler.AuthenticationHandler.isAuthenticated(AuthenticationHandler.java:171) {org.wso2.carbon.core.services.util.CarbonAuthenticationUtil}
有没有办法关闭远程地址验证?