JAAS - 灵活的Java安全机制 - 编程入门网
验证模块(PAM,Pluggable Authentication Module)框架就非常相似。从事务的角度看,JAAS类似于双步提交(Two-Phase Commit,2PC)协议的行为。JAAS中安全配置的概念(包括策略文件(Police File)和许可(Permission))来自于J2SE 1.2。JAAS还从其他成熟的安全框架 中借鉴了许多思想。
客户端和服务器端的JAAS 开发人员可以将JAAS应用到客户端和服务器端。在客户端使用JAAS很简单。 在服务器端使用JAAS时情况要复杂一些。目前在应用服务器市场中的JAAS产品还 不是很一致,使用JAAS的J2EE应用服务器有一些细微的差别。例如JBossSx使用 自己的结构,将JAAS集成到了一个更大的安全框架中;而虽然WebLogic 6.x也使 用了JAAS,安全框架却完全不一样。 现在你能够理解为什么我们需要从客户端和服务器端的角度来看JAAS了。我 们将在后面列出两种情况下的例子。为了使服务器端的例子程序更加简单,我们 使用了Resin应用服务器。 JAAS - 灵活的Java安全机制(2)时间:2010-12-20核心JAAS类 在使用JAAS之前,你首先需要安装JAAS。在J2SE 1.4中已经包括了JAAS,但 是在J2SE 1.3中没有。如果你希望使用J2SE 1.3,你可以从SUN的官方站点上下 载JAAS。当正确安装了JAAS后,你会在安装目录的lib目录下找到jaas.jar。你 需要将该路径加入Classpath中。(注:如果你安装了应用服务器,其中就已经 包括了JAAS,请阅读应用服务器的帮助文档以获得更详细的信息)。在Java安全 属性文件java.security中,你可以改变一些与JAAS相关的系统属性。该文件保 存在<jre_home>/lib/security目录中。 在应用程序中使用JAAS验证通常会涉及到以下几个步骤: 1. 创建一个LoginContext的实例。 2. 为了能够获得和处理验证信息,将一个CallBackHandler对象作为参数传 送给LoginContext。 3. 通过调用LoginContext的login()方法来进行验证。 4. 通过使用login()方法返回的Subject对象实现一些特殊的功能(假设登 录成功)。 下面是一个简单的例子:
在运行这段代码时,后台进行了以下的工作。 1. 当初始化时,LoginContext对象首先在JAAS配置文件中找到MyExample项 ,然后更具该项的内容决定该加载哪个LoginModule对象(参见图二)。 2. 在登录时,LoginContext对象调用每个LoginModule对象的login()方法 。 3. 每个login()方法进行验证操作或获得一个CallbackHandle对象。 4. CallbackHandle对象通过使用一个或多个CallBack方法同用户进行交互, 获得用户输入。 5. 向一个新的Subject对象中填入验证信息。 我们将对代码作进一步的解释。但是在这之前,让我们先看代码中涉及到的 核心JAAS类和接口。这些类可以被分为三种类型: 普通类型 Subject,Principal,凭证 验证 LoginContext,LoginModule,CallBackHandler,Callback 授权 Policy,AuthPermission,PrivateCredentialPermission 上面列举的类和接口大多数都在javax.security.auth包中。在J2SE 1.4中, 还有一些接口的实现类在com.sun.security.auth包中。 普通类型:Subject,Principal,凭证 Subject类代表了一个验证实体,它可以是用户、管理员、Web服务,设备或 者其他的过程。该类包含了三中类型的安全信息: 身份(Identities):由一个或多个Principal对象表示 公共凭证(Public credentials):例如名称或公共秘钥 私有凭证(Private |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |