当前位置:  开发笔记 > 编程语言 > 正文

JAAS为人类服务

如何解决《JAAS为人类服务》经验,为你挑选了4个好方法。

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



1> lsiu..:

其他用户提供了一些非常有用的链接,所以我不打扰链接.我在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应用程序安全问题.


Java EE 6教程假设您了解基本的安全性概念,因此对JAAS的一些概述不会受到影响.

2> Martlark..:

以下是我用来帮助理解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/

http://roneiv.wordpress.com/2008/02/18/jaas-authentication-mechanism-is-it-possible-to-force-j_security_check-to-go-to-a-specific-page/

另外看看Apache tomcat领域的配置方法:

http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html


jaasbook的关键已经死了.它现在已移至https://jaasbook.wordpress.com/

3> lisak..:

javax.security是imho过于复杂的API.因此,不仅有LoginModules,还有整个身份验证和授权api的实现者,它们创建了上面的抽象层,如身份验证和授权管理器.

对于初学者来说,这是好事,打印到你的记忆.

其次,对于JAAS来说,最简单的设置和去库是Jboss PicketBox.它说如何通过JBossAuthenticationManager和JBossAuthorizationManager进行身份验证和授权......可以通过XML或Annotations轻松配置.您可以使用它来管理Web应用程序和独立应用程序.

如果您需要用于管理存储库访问的授权部分,就资源的ACL而言,这是您正在寻找的.

安全性问题是,通常您需要根据需要对其进行自定义,因此您最终可能会实施:

LoginModule - 验证userName + Password

CallbackHandler就像这样使用new LoginContext("Sample", new MyCallbackHandler());

CallbackHandler被传递给底层的LoginModule,因此它们可以与用户进行通信和交互 - 例如,通过图形用户界面提示输入用户名和密码.因此,在Handler内部,您可以从用户那里获得用户名和密码,并将其传递给LoginModule.

LoginContext - 然后你只需要调用lc.login(); 并验证凭据.LoginContext使用经过身份验证的Subject进行填充.

然而,Jboss picketbox为您提供了一个非常简单的方法,除非您需要特定的东西.



4> Arjan Tijms..:

lsiu的回答是这里的几个答案之一,真的"得到它";)

除了这个答案之外,关于这个主题的一个非常好的参考是JAAS发生了什么?.

它解释了JASPIC是Servlet和EJB安全模型之间Java EE中的链接,以及可能是JAAS登录模块,但在许多情况下,JAAS的角色被简化为Java EE中相对简单的用户名和角色提供者的角色.

来自同一作者的是企业中的JAAS,这是一篇较旧的文章,但提供了很多历史背景,说明为什么Java SE(JAAS)和Java EE模型与他们的方式不同.

总体但也有少数种类从JAAS Java EE中直接使用,基本上Principal,SubjectCallbackHandler.后两者主要由JASPIC使用.我在使用JASPIC在Java EE中实现容器认证的文章中解释了JASPIC.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有