2011-02-28 63 views
4

我想在包含多个战争的整个EAR文件中实现JAAS。如何实现EAR范围内的JAAS

我在每次战争中都成功地设置了它,但这意味着当用户在战争之间切换时(通过超链接)他们必须重新登录每个战役,即使每场战争都配置为使用相同的领域。

如何为整个EAR创建单一登录过程?

谢谢。

回答

2

我已经找到了答案! - 在同一个servlet上下文中的所有应用程序以及相同的安全领域进行单点登录。它可用于tomcat。我简单地更新了config.xml,如下面的url所建议的那样,它现在只要求登录一次。

http://publib.boulder.ibm.com/wasce/V2.1.0/en/valves.html#Valves-AddingtheSingleSignonValvetotheinitialvalvechain

+0

http://tomcat.apache.org/tomcat-5.5-doc/config/host.html#Single_Sign_On可能也有用。 – 2011-03-02 18:49:42

+1

只是为了让其他人后来可以访问这个问题清楚:这个阀门非常适合纯网络应用程序(网页,肥皂,休息),但是当您也有客户希望通过rmi与应用程序交谈时或其供应商等同)。 – 2011-03-02 19:41:30

2

这通常是容器特定的。 对于JBoss,您可以使用yourapp.ear/META-INF/jboss-app.xml来实现此目的。在这里,您定义一个指向各自登录策略的security-domain元素。从DTD摘录:

< - 安全域元素 指定实现 EJBSecurityManager和RealmMapping 域的 安全管理器的JNDI名称。当在 指定jboss级别时,它指定部署单元中所有j2ee 组件的安全域 。
可以使用容器配置 级别的安全域 元素覆盖容器
级别上的全局安全域 级别。 !

中使用:JBoss的应用程序内 - >

<元安全域(#PCDATA)>

+0

嗨,感谢您的帮助,是的,我已经使用Geronimo(v2.1)完成了这项工作。但它仍然要求在每个模块上登录。我猜这是因为每次都是新的会话?我在geronimo-application.xml中设置了所有配置,除了在适当的web.xml中的安全约束之外 – 2011-02-28 14:10:24

+0

对不起,我对Geronimo不了解。 – 2011-02-28 14:18:51