2010-06-09 67 views
3

我有一個自定義登錄模塊在jboss耳朵上。耳朵的META-INF有一個jboss-app.xml,它指向一個login-service.xml,它包含一個指向login-config.xml的mbean,它定義了自定義登錄模塊。JAAS自定義登錄模塊

耳朵的META-INF中的jboss.xml使用與爲login-config.xml中的登錄模塊定義的安全域相同的安全域。

在那個耳朵裏打一個EJB的調用時,我沒有看到我的自定義登錄模塊運行登錄和提交方法,就像我以前在其他地方實現過的那樣。

我有跟蹤log4j設置爲org.jboss.security和我看什麼都沒有在進行EJB調用。即使我沒有通過身份驗證,EJB調用也會成功。

我無法弄清楚爲什麼我的登錄模塊沒有被調用或者如何調試JAAS決策過程。有任何想法嗎?謝謝。

回答

2

我發現這個問題,有一定的幫助。

我的jboss.xml位於耳朵的META-INF文件夾中,它應該位於EJB jar的META-INF文件夾中。

顯然,耳朵的META-INF文件夾中的jboss文件應該是jboss-app.xml,我想這將是下次記住的線索。

3

你做了什麼至今創造登錄模塊,現在你需要告訴你的EJB使用它:

import javax.annotation.security.RolesAllowed; 
import javax.ejb.Stateless; 

import org.jboss.ejb3.annotation.SecurityDomain; 


@Stateless 
@SecurityDomain("mySecurityDomain") 
@RolesAllowed({"guestRole", "userRole", "adminRole"}) 
public class SecureBean implements Secure { 
+0

謝謝 - 我怎樣才能做到這一點沒有註釋?我確實在指定安全域的jboss.xml中定義了EJB,但不確定這是否是註釋的替代方法。 – rich 2010-06-09 16:18:05