2011-02-28 26 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