我在http-connector(ApplicationRealm)级别有一个安全领域,我有另一个安全领域,我的远程出站连接是MyRealm。当我设置jboss-ejb-client属性时,我设置了以下两个属性:
remote.connection.default.username = $ {用户名}
remote.connection.default.password = $ {密码}
帮助我使用远程服务器验证ApplicationRealm。我遇到的问题是,当我在远程服务器上时,没有办法通过安全领域:MyRealm,因为服务器之间没有共享主体,我没有或知道发送方法因为我从JBossCallbackHandler获取的用户名和密码实际上是用于ApplicationRealm的凭证,而不是我需要验证我的第二个领域的凭证,所以需要在另一台服务器上验证用户的信息。
我试图删除security-realm =" ApplicationRealm"但它失败了,因为它需要认证机制。
有没有办法将信息发送到远程服务器,而不是用户名/密码,例如验证MyRealm的主体?有没有办法停用ApplicationRealm,替换它或juste删除它?
<subsystem xmlns="urn:jboss:domain:remoting:2.0">
<endpoint worker="default"/>
<http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
<outbound-connections>
<remote-outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb" username="ejb" security-realm="MyRealm" protocol="http-remoting">
<properties>
<property name="SASL_POLICY_NOANONYMOUS" value="true"/>
<property name="SSL_ENABLED" value="false"/>
<property name="SASL_POLICY_NOPLAINTEXT" value="false"/>
</properties>
</remote-outbound-connection>
</outbound-connections>
</subsystem>
谢谢!
答案 0 :(得分:0)
此处描述的情况是WildFly当前安全工作的主要动机之一 - 我们正在积极努力实现从服务器到服务器的安全传播。
http://darranl.blogspot.co.uk/2015/07/upcomming-wildfly-security-changes.html
与此同时,以下快速入门演示了一种可以使用拦截器将身份从一个服务器传播到另一个服务器的方法: -
https://github.com/wildfly/quickstart/tree/9.x/ejb-security-interceptors
本质上,第二台服务器已对第一台服务器进行了身份验证,因此本快速入门显示了当第一台服务器要求代表另一台用户执行请求时,第二台服务器如何信任第一台服务器。