我很难理解JAAS。这一切看起来都比实际情况要复杂(尤其是Sun教程)。我需要一个简单的教程或示例如何实现安全(身份验证+授权)在java应用程序基于Struts + Spring + Hibernate与自定义用户存储库。可以使用ACEGI实现。
发布于 2009-03-09 23:38:08
下面是我用来帮助理解JAAS的一些链接:
http://www.owasp.org/index.php/JAAS_Tomcat_Login_Module
http://www.javaworld.com/jw-09-2002/jw-0913-jaas.html
http://jaasbook.wordpress.com/
还可以查看Apache tomcat领域配置操作指南:
发布于 2009-03-29 15:37:04
其他用户已经在上面提供了一些非常有用的链接,所以我就不再赘述链接了。我曾在JAAS中为web应用程序做过类似的研究,并遇到了“思想障碍”,直到我最终意识到JAAS是一个在不同于Java世界中的web应用程序的“层”上处理安全性的框架。构建它是为了解决Java SE而不是Java EE中的安全问题。
JAAS是一个安全框架,用于在比web应用程序低得多的级别上保护事物。这些东西的一些例子是JVM级别的代码和资源,因此所有这些在JVM级别设置策略文件的能力。
然而,由于Java是建立在Java之上的,JAAS中的一些模块在Java安全性中得到了重用,比如LoginModules和回调。
请注意,除了Java EE安全性之外,还有Spring安全性(以前称为Acegi),它与原生Java EE安全性类似,可以解决web应用程序安全问题中更高的“层”。它是一个单独的安全实现,并不是构建在标准Java安全之上的,尽管它在许多方面的行为类似。
总而言之,除非您希望保护Java SE级别的资源(类、系统资源),否则除了使用公共类和接口之外,我不认为JAAS有任何实际用途。只需专注于使用Spring Security或普通的老式Java安全性,它们都可以解决许多常见的web应用程序安全问题。
发布于 2013-05-04 06:11:13
lsiu的答案是这里为数不多的真正“明白了”的答案之一;)
除了这个答案,关于这个主题的一个很好的参考资料是Whatever Happened to JAAS?。
它解释了JASPIC如何成为Java EE中Servlet和EJB安全模型之间的链接,并且可能是JAAS登录模块,但在许多情况下,JAAS的角色在Java EE中被简化为相对简单的用户名和角色提供者。
来自同一作者的是JAAS in the Enterprise,这是一篇较旧的文章,但提供了许多关于Java (JAAS)和Java模型为何如此不同的历史背景。
总的来说,JAAS中的一些类型直接用于Java,基本上是Principal
、Subject
和CallbackHandler
。后两者主要由JASPIC使用。我已经在文章Implementing container authentication in Java EE with JASPIC中解释过JASPIC。
https://stackoverflow.com/questions/628416
复制相似问题