【发布时间】:2012-06-16 06:50:12
【问题描述】:
一般案例:一个简单的应用程序,它通过 EJB (3.1) 公开其服务 - 其中大多数是无状态会话 bean(这里没有什么好玩的)和基于 SWING 的客户端,它们通过远程接口调用这些服务和做他们必须做的事。
安全性:我想验证/授权这个调用周期,当然还要保护我的服务。显而易见的答案是在服务器中使用 JAAS 并在底层服务器上使用任何自定义布线设置。这仍然是一个选择
Apache Shiro:很多人都在谈论 Apache Shiro,实际上它具有非常简单的 API 和机制 - 可能独立于应用程序服务器。
技术问题:
会话:就我而言,我没有 HTTP 会话 - 据我了解,Shiro 至少需要某种我需要传递的 SESSION ID。在不污染我的业务 API 的情况下,在我的 RMI/IIOP 调用中向服务器注入用户凭据的任何好方法?
服务器端实现:对于我经历过的少数资源,我认为我可以通过从 Singleton Ejb 3.1 bean 中“引用它”来实现 Shiro DefaultSecurityManager。还有其他想法吗? 然后我可以轻松地创建一个拦截器并将其添加到我的远程调用中 - 所以当一个新调用通过我的远程 EJB 方法时 - Shiro 拦截器来验证我的用户或检查特定权限。
任何 cmets/提示/示例?
非常感谢
【问题讨论】:
标签: java swing jboss ejb-3.0 shiro