简单来说,有人可以向我解释JAAS,JACC和JASPIC之间的区别吗?

Hin*_*rry 14 jaas java-ee java-ee-6 jaspic jacc

我会说实话.我一直是开发人员已经有一段时间了,但这是我第一次听说JACC和JASPIC.我知道它们是授权提供商使用的标准,但它们与JAAS有何不同?我们何时会使用一个而不是另一个?

我做了一些初步的研究,并不是说我很懒.只是关于JACC和JASPIC的阅读文章有点让我不知所措,我需要在短时间内了解这一点,因为我需要在我即将开展的一个项目中实现这一点.只是在我对它的理解上寻找一个快速的开始.

dex*_*ers 22

JAAS包含在Java SE中,主要用于Java SE.这是关于代码级安全性(你相信代码).

它对Java EE没有直接用处,Java EE是关于用户级安全性的(你信任用户).

一些Java EE服务器可以使用基于JAAS LoginModules的东西进行身份验证,但是这种JAAS的使用是非标准的,并且与Java SE中的相比非常浅.出于某种原因,由于这个原因,人们认为Java EE中的安全性被称为JAAS,但它完全是另一种方式.

JASPIC是Java EE 6+服务器必须创建和插入其他身份验证机制的扩展点.您可以使用它来创建OAuth,OpenID等机制.JASPIC是关于与您的用户的互动.它没有说明从LDAP或数据库等方面获取用户数据.您可以使用自己的代码或通过调用JAAS LoginModule来实现.JASPIC确定了如何以更标准的方式将JAAS LoginModules连接到您的自定义机制.太糟糕了,它仍然不是100%标准,但至少更好.

JACC是另一个扩展点,但是用于授权机制.您可以使用它以不同的方式进行授权,或仅审核授权.JACC还使您在web.xml中定义的所有安全约束都可用于您的代码.您可以使用它来预先检查用户是否有权访问页面.与JASPIC不同,JACC很难在您的应用程序中实际激活.你需要搞乱JVM参数等.