首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java安全性: JASPIC / JAAS还是应用安全框架?(玻璃鱼3)

Java安全性: JASPIC / JAAS还是应用安全框架?(玻璃鱼3)
EN

Stack Overflow用户
提问于 2014-03-11 21:18:54
回答 2查看 2.3K关注 0票数 15

我目前正在使用Oracle (这是一个端到端的Java框架)来构建我的web应用程序,使用GlassFish 3.1作为应用服务器。

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

我发现,如果坚持使用“基本”安全性,JAAS就足够好了。此外,JAAS (作为的一部分)似乎仅用于Java (但由于Java构建在Java上,因此它的一些模块正在被重用,如LoginMethod和回调)。

然后,我找到了许多关于JASPIC的帖子,发现它只能通过编程方式实现(而不是问题),并且还没有得到应用服务器供应商的完全支持,并试图在两者之间建立一个比较。即使JASPIC1.1发布已经解决了一些问题,例如:

然而,容器将不会完全记住身份验证。仍然会在每次请求时调用SAM,而SAM仍然需要重新验证。

(我听起来不太好)。

然后,我就放弃了寻找集成一些安全框架。最著名的似乎是"Spring""Shiro"。当然,他们每一个都有自己的特点(可能第一个更适合于一个特定的情况,而第二个在另一个)。对我来说更重要的是

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

但是,无论在哪里,我都发现了自相矛盾的结论。结果是:在搜索之前,我现在更困惑了。

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

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

EN

回答 2

Stack Overflow用户

发布于 2014-12-16 09:36:05

JASPIC是Java的一部分,它与它集成得很好。

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

Shiro和Security是功能非常齐全的框架。你几乎无法与JASPIC相比,这是非常低的水平和基础。Spring和Shiro都没有与Java完美地集成。弹簧安全通常被认为比Shiro更复杂。

希望这能有所帮助

票数 8
EN

Stack Overflow用户

发布于 2015-01-02 22:32:45

JASPIC的Servlet配置文件要求对每个请求调用已配置的服务器身份验证模块( SAM ),这样SAM就能够管理身份验证会话(如果需要的话)

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

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

JASPIC定义回调,容器提供回调处理程序,允许可移植的SAM设置容器调用方主体,查询容器的用户注册中心进行密码验证和组分配等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22336838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档