【问题标题】:Java EE Security: JASPIC / JAAS or apply a Security Framework? (Glassfish 3)Java EE 安全:JASPIC / JAAS 还是应用安全框架? (玻璃鱼 3)
【发布时间】:2014-04-15 17:18:02
【问题描述】:

我目前使用 Oracle ADF(一个端到端 Java EE 框架)来构建我的 Web 应用程序,并将 GlassFish 3.1 作为应用程序服务器。

后者支持JAAS(在其管理控制台中声明)。因此,我创建了一个安全领域并将它们映射到配置文件中声明的角色,并使用 JAAS 来实现授权和身份验证安全功能。 一切都很好,直到现在!过去几周我一直在研究 Java EE 安全性。

我发现,如果您坚持 "basic" 安全性,JAAS 就足够了。此外,似乎 JAAS(作为 Java 安全框架的一部分)仅适用于 Java SE(但由于 Java EE 是基于 Java SE 构建的,因此它的一些模块正在被重用,例如 LoginMethod 和 Callbacks)。

然后,我找到了很多关于JASPIC的帖子,发现它只能通过编程方式实现(不是问题)并且尚未得到应用服务器供应商的完全支持,并尝试制作@ 987654323@ 两者之间。即使JASPIC1.1 release 已经解决了一些问题,比如:

但容器不会完全记住身份验证。这 SAM 仍然在每次请求时被调用,并且 SAM 仍然必须 重新认证

(对我来说听起来不太好)。

然后,我继续寻找integrating some security framework。最著名的似乎是 "Spring""Shiro"。当然,他们每个人都有自己的特点(可能第一个更适合特定情况,而第二个更适合另一种情况)。对我来说更重要的是:

  • 身份验证
  • 授权
  • 会话管理(可能还有加密)

但是,我到处都发现了相互矛盾的结论。结果:我现在比搜索之前更困惑。

我只是安全等主题的新手,而且我是一名开发人员(我有一些东西要实现),所以很难跟上每个新版本的最新情况,而且安全方面的进展似乎还在继续每天都在奔跑。

如果可能的话,我想要一些基于个人经验的事实。每一个提示或建议都值得赞赏。在采取实施步骤之前,我想确保自己有信心。

【问题讨论】:

    标签: java security glassfish-3 jaas jaspic


    【解决方案1】:

    JASPIC 是作为 Java EE 的一部分与之完美集成的一种技术。

    JASPIC 身份验证模块不会自动记住会话这一事实也是一个优势,因为它也使它们也适用于无状态应用程序(想想诸如 JAX-RS 之类的 API)。当您进行身份验证并确实想要会话时,只需将结果(用户名 + 组)放入会话中。然后在每个“validateRequest”方法开始时快速检查会话中是否有任何内容,如果有,请再次将它们提供给容器。无需从头开始进行身份验证,当然也无需记住任何密码!

    Shiro 和 Spring Security 是功能非常齐全的框架。您几乎无法将其与非常低级和基本的 JASPIC 进行比较。 Spring 和 Shiro 都没有与 Java EE 完美集成。 Spring Security 通常被认为比 Shiro 更复杂。

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      JASPIC 的 Servlet 配置文件要求在每个请求上调用已配置的(用于应用程序的)服务器身份验证模块 (SAM);以便 SAM 能够管理身份验证会话(如果需要的话)

      配置文件还支持这种情况,SAM 被配置为执行身份验证,但随后希望将身份验证会话管理委托给包含容器,该容器通过使用 registerSession 回调属性启用。

      正如 Mike Braun 所指出的,该配置文件还支持身份验证会话的无状态模式,并与容器授权系统完全集成;这样当目标请求被授权约束(例如在 web.xml 中定义或通过使用 ServletSecurity 注释)覆盖时,必须进行 JASPIC 身份验证。

      JASPIC 定义的回调和容器提供的回调处理程序,允许便携式 SAM 设置容器调用者主体,查阅容器的用户注册表以进行密码验证和组分配等。

      【讨论】:

        猜你喜欢
        • 2012-06-15
        • 1970-01-01
        • 2013-01-18
        • 1970-01-01
        • 1970-01-01
        • 2010-12-31
        • 1970-01-01
        • 1970-01-01
        • 2010-09-15
        相关资源
        最近更新 更多