@RunAs注释允许通过仅指定角色的名称来访问bean。这意味着任何能够轻松访问我的bean的外部客户端只是指向角色名称,不是吗?
我认为调用者和bean位于不同的服务器上。
那么@RunAs需要什么,如果它很容易伪造客户端? 或者如果我错了怎么用呢?
答案 0 :(得分:2)
有点不同。有关详细信息和示例,请参阅WebSphere Application Server V7.0 Security Guide中的第9.6章。
当bean调用另一个bean中的方法时,调用者的身份 默认情况下,传播到下一个。这样,所有EJB方法 在调用链中,如果要调用它,请查看相同的主体 getCallerPrincipal()方法。
但是,有时候,一个EJB需要调用另一个EJB 具有先前定义的身份,例如,一个是 特定角色的成员。
@RunAs
注释定义将用于委派的角色。您仍然可以使用@RolesAllowed
在应用程序部署期间,必须将此runAsRole
映射到用户注册表中的实际用户。