Apache Shiro 与 Java EE 原生 API

Posted

技术标签:

【中文标题】Apache Shiro 与 Java EE 原生 API【英文标题】:Apache Shiro vs Java EE native APIs 【发布时间】:2012-05-07 03:02:35 【问题描述】:

转到 Apache Shiro 并保留 Java EE 的本机 API 用于安全性和会话管理有什么优势?

我发现所有安全角色和会话都可以在 Apache Shiro 中完成,但同样的事情也可以使用 Java EE 安全完成,而无需任何外部依赖 jar。

所以建议我一些去 Apache Shiro 的利弊。

【问题讨论】:

请任何人帮助我无法判断....... 【参考方案1】:

我当然有偏见(我是 Apache Shiro 项目的提交者),所以请随意选择,但以下是我的意见:

Java EE Security 不支持开箱即用的独立于容器的会话集群选项(Shiro 支持)。

Shiro 从一开始就被设计为在 POJO/依赖注入环境中工作。它使用接口驱动设计,并提供了比传统 Java EE 安全环境更多的自定义钩子(例如,您如何显示当前有多少用户使用 Java EE 安全登录到您的站点?Shiro 可以帮助您显示这一点)。

Shiro 可在任何应用程序环境中完全移植。如果您使用 Java EE 供应商特定的安全定制,这些定制将不可移植(例如,*** question 表明切换到 JBoss 可能会解决用户的安全问题 - IMO 的一个令人不安的答案)。

1234563如果你切换,重新学习会令人沮丧。此外,Java EE 配置通常需要 XML。我更喜欢可以在任何地方使用的单一、非冗长的文本配置格式(shiro.ini 很好,但人们也可以使用 groovy、yaml 等配置 shiro)。

Shiro 旨在在任何应用程序环境中工作。 Java EE 安全性设计得很好 - 仅适用于 Java EE。至少当您学习 Shiro 时,您可以在任何基于 JVM 的应用程序(Spring、Guice、Java EE、命令行等)中利用这些知识,而不仅仅是 Java EE 应用程序。

HTH!

莱斯

【讨论】:

感谢您对 apache shiro 的解释。我能得到更多关于 POJO 注入环境中 shiro 用法的解释 >this *** question shows that switching to JBoss might solve the user's security problem - an unsettling answer IMO - 我给出了这个答案,我同意这令人不安。我创建了问题java.net/jira/browse/JAVAEE_SPEC-20 要求对安全配置的这一特定方面进行标准化。

以上是关于Apache Shiro 与 Java EE 原生 API的主要内容,如果未能解决你的问题,请参考以下文章

Apache Shiro(授权)+ SiteMinder(认证)

Apache Shiro 与 Spring MVC AuthorizingRealm @Autowired java.lang.NullPointerException

Java hibernate 与 Apache Shiro 登录身份验证在“成功”登录后返回 false

使用 Apache Shiro 在自定义 Java Web 应用程序与 Drupal 之间进行 SSO 集成

Apache Shiro 使用手册Shiro 配置说明

Java环境下shiro的测试-认证与授权