2014-11-06 87 views
0

@RunAs註釋允許通過僅指定角色的名稱來訪問bean。這意味着任何能夠輕鬆訪問我的bean的外部客戶端只是指向角色名稱,不是嗎?EJB3 @RunAs註釋和安全

我想調用者和bean位於不同的服務器上。

那麼@RunAs需要什麼,如果它很容易僞造客戶端? 或者如何正確使用它,如果我錯了?

回答

1

它有點不同。有關更多詳細信息和示例,請參見WebSphere Application Server V7.0 Security Guide中的第9.6章。

當一個bean調用另一個bean中的方法時,默認情況下調用者 的標識傳播到下一個。通過這種方式,調用鏈中的所有EJB方法 在調用getCallerPrincipal()方法時都會看到相同的主體。

然而,有時候,一個EJB需要以先前定義的標識調用另一個EJB ,例如,某個特定角色的成員是 。

@RunAs註解定義將用於委託的作用。您仍然可以使用@RolesAllowed

保護第一個bean。在應用程序部署期間,必須將此runAsRole映射到來自用戶註冊表的實際用戶。