2013-05-22 99 views
0

我正在嘗試使用RESTeasy來設置一個REST-webservice,它可以訪問部署在JBoss 7.1.1上的EJB。 我已經成功地:通過RESTeasy webservice進行EJB認證

  • 設置豆類通過REST

  • 配置SSL連接

  • 設置使用HTTP基本認證問一個PreProcessInterceptor訪問用戶爲他的憑據。

目前我基本上只是檢查攔截器硬編碼的憑據。 這工作,以確保用戶進行身份驗證,但是我們對於豆類的當前登錄的主要爲一些像這樣的Beancalls名稱查詢:

@Resource 
private SessionContext context = null; 
[...] 

String userName = context.getCallerPrincipal().getName(); 

目前使用者名稱現在是匿名始終。什麼是設置來電者主體的正確方法?我在攔截器中做這個嗎?或者在Bean本身?我的目標是基本上能夠調用方法loginUserWithEJBOnJboss(String user,String pass),該方法使用在jboss中配置的登錄方法並正確設置主體。

我在這裏虧本,谷歌沒有找到任何東西。也許我只是在尋找錯誤的單詞。

回答

0

所以是的,一如既往地問我自己找到解決方案。我想有時候我只會問,因爲我知道這會發生。

所以解決的辦法有以下方法:

SecurityContextAssociation.setPrincipal(new SimplePrincipal(username)); 
    SecurityContextAssociation.setCredential(password.toCharArray()); 

他們這樣做幾乎所有我想要的:)