面向新手的 Apache Shiro 和 Java 安全性

Posted

技术标签:

【中文标题】面向新手的 Apache Shiro 和 Java 安全性【英文标题】:Apache Shiro & Java Security for Novices 【发布时间】:2011-11-27 02:03:08 【问题描述】:

我对 Java 的安全模型几乎一无所知,包括 XML 配置、策略设置、任何安全框架组件、工具(如密钥库等)以及介于两者之间的一切。

虽然我知道卷起袖子深入学习 Java 安全性最终将成为必不可少的,但我想知道使用 Apache Shiro 之类的工具是否有助于简化过渡。因此,我对此有一些担忧。

Shiro 本质上是一个“统包、包罗万象的包装器”,用于在 Java 应用程序(尤其是 Web 应用程序)中实现安全性。意思是,一个人可以用他们的项目配置 Shiro 并从本质上调整它来完成所有相同的配置、策略设置等,如果没有它,一个人必须“手动”(零碎地)做吗?如果没有,Shiro 有什么缺点(有哪些大事 Shiro 不能为我做重要的事情)?有没有 Shiro 根本没有解决的大漏洞?

同样,我听说过关于 OWASP 的 ESAPI 框架的好消息。有人有这两个方面的经验吗? ESAPI 和 Shiro 是否可以配置为一起工作,或者它只是一种二进制“一种或另一种”类型的交易?

提前致谢!

【问题讨论】:

您的实际要求是什么? 我的要求是:(1)我需要知道 Shiro 和 ESAPI 是否互斥,以及(2)Shiro 是否提供了与保护 Web 应用程序相同的安全性没有它。 【参考方案1】:

简短的回答是肯定的。 Shiro 和 ESAPI 可以一起工作,尽管这两个 API 之间存在一些冗余功能。 Shiro 为您提供涵盖标准 Java 安全模型所需的一切。 ESAPI 超越了提供 OWASP 的全球标准化安全机制。

Shiro 应该由像我这样真正不了解 Java 安全性和/或一般应用程序/服务器安全性的新手使用。它为安全无知的人处理了很多事情。 ESAPI 应该由已经了解 Java 安全性并且不仅希望利用 Java EE 附带的所有功能但需要加倍努力并让事情更加安全的编程安全专业人员使用。

【讨论】:

以上是关于面向新手的 Apache Shiro 和 Java 安全性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Apache Shiro 中使用编程配置创建新帐户?

使用 Java 和 apache HttpClient 的 Apache Shiro authcBasic 身份验证

Spring 上的 Apache Shiro 会话管理

Apache Shiro LOGIN 使用令牌失败

如何使用带有 LDAP 身份验证的 Apache Shiro 添加角色授权

Java EE 7基于数据库的Apache Shiro配置