java - 面向人类的 JAAS

标签 java security spring spring-security jaas

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

最佳答案

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

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

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

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

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

关于java - 面向人类的 JAAS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/628416/

相关文章:

java - 如何删除输出中的最后一个 “-”?

security - java.lang.SecurityException : class "org.apache.log4j.Logger" does not match trust level of other classes in the same package 错误

JavaScript:由于安全错误,无法获取图像数据

java - JHipster/React - 匿名从服务器获取数据(登录前)

java - Oracle DB 12c/SQL Developer 中 Java 目录的用途是什么?

Java 暂停执行

java - 我的 tomcat 8 主页正在运行但无法运行我的项目

security - nServiceBus 和安全 : what is best practise?

spring - <mvc :resources> how to use the classpath location

java - 在更新操作中访问先前的实体