用Apache Shiro保护EJB是否可能?

问题描述:

我想知道我是否可以使用Apache Shiro来保护(容器管理的)Java EE应用程序的业务层。我在问,因为我没有找到任何例子,但只有像“它可以在web,EJB和IoC环境中工作”的语句。用Apache Shiro保护EJB是否可能?

Apache Shiro与默认的基于Java角色的访问控制相比,具有更广泛的方式来授权用户(例如权限字符串),我希望可以使用它作为替代来保护会话bean的方法以基于注释的方式。

这是可能的,有人试过吗?有限制吗?一个例子或教程也会很好。

好吧,我已经从2010年

监督that answer从莱斯黑兹尔伍德的实质是保证的EJB支持给定,如果被摄体可以绑定到当前线程。如果请求是从Web环境启动的,则会通过Shiro过滤器自动发生。

他进一步指出:

一旦主题与线程关联,AOP是强制执行安全限制的最简单的 方式之一。然后,您可以注释您的EJB方法[...]。

您可以使用shiro API作为ejb中的简单Java代码。

您可以使用https://issues.apache.org/jira/browse/SHIRO-337

+0

谢谢,这将是“程序化”的方式。我的目标是使用注释来更好地将业务逻辑与安全问题区分开来。因此Shiro是否使用Java EE拦截器? – tsh 2012-08-07 07:03:45