人类的JAAS

2022-08-31 11:54:01

我很难理解JAAS。这一切似乎都比它应该的更复杂(特别是Sun教程)。我需要一个简单的教程或示例,介绍如何在基于Struts + Spring + Hibernate的Java应用程序中实现安全性(身份验证+授权),并具有自定义用户存储库。可以使用 ACEGI 实现。


答案 1

其他用户在上面提供了一些非常有用的链接,所以我不会打扰链接。我在JAAS中为Web应用程序做了类似的研究,并遇到了一个“思维障碍”,直到我最终意识到JAAS是一个框架,在Java世界中处理与Web应用程序不同的“层”的安全性。它的构建是为了解决Java SE中的安全问题,而不是Java EE。

JAAS是一个安全框架,用于在比Web应用程序低得多的级别上保护事物。这些东西的一些例子是在JVM级别可用的代码和资源,因此所有这些在JVM级别设置策略文件的能力。

但是,由于 Java EE 是在 Java SE 之上构建的,因此 JAAS 中的一些模块在 Java EE 安全性中被重用,例如 LoginModules 和 Callbacks。

请注意,除了Java EE安全性之外,还有Spring安全性(以前称为Acegi),它类似于本机Java EE安全性,在保护Web应用程序问题中解决了更高的“层”。它是一个单独的安全实现,不是建立在标准 Java EE 安全性之上的,尽管它在许多方面的行为相似。

总而言之,除非您希望保护 Java SE 级别的资源(类、系统资源),否则除了使用公共类和接口之外,我没有看到 JAAS 的任何实际用途。只需专注于使用Spring Security或普通的旧Java EE安全性,它们都可以解决许多常见的Web应用程序安全问题。