我目前正在使用 Oracle ADF(它是一个端到端的 Java EE 框架)来构建我的 Web 应用程序,并使用 GlassFish 3.1 作为应用程序服务器。
后者支持JAAS(在其管理控制台中声明)。因此,我创建了一个安全领域并将它们映射到配置文件中声明的角色,并使用 JAAS 来实现授权和身份验证安全功能。一切都很好,直到现在!过去几周我一直在研究 Java EE 安全性。
我发现,如果您坚持“基本”安全,那么 JAAS 就足够了。此外,似乎 JAAS(作为 Java 安全框架的一部分)仅适用于 Java SE(但由于 Java EE 是基于 Java SE 构建的,因此它的一些模块正在被重用,例如 LoginMethod 和 Callbacks)。
然后,我发现了很多关于JASPIC的帖子,发现它只能通过编程方式实现(不是问题)并且尚未得到应用服务器供应商的完全支持,并试图在两者之间进行比较。即使JASPIC1.1版本已经解决了一些问题,例如:
然而,容器不会完全记住身份验证。SAM 仍然在每次请求时被调用,并且 SAM 仍然需要重新认证
(对我来说听起来不太好)。
然后,我继续寻找集成一些安全框架。最著名的似乎是“春天”和“白”。当然,他们每个人都有自己的特点(可能第一个更适合特定情况,而第二个更适合另一种情况)。对我来说更重要的是:
- 验证
- 授权
- 会话管理(可能还有加密)
但是,我到处都发现了相互矛盾的结论。结果:我现在比搜索之前更困惑。
我只是安全等主题的新手,而且我是一名开发人员(我有一些东西要实现),所以很难跟上每个新版本的更新,而且安全方面的进展似乎每天都在飞速发展.
如果可能的话,我想要一些基于个人经验的事实。每一个提示或建议都值得赞赏。在采取实施步骤之前,我想确保自己有信心。