jaas是一种安全机制,即验证和授权。
LoginContext Ic=new LoginContext("MyExample");
1.当初始化的时候,logincontext对象首先在JAAS配置文件中找到MyExample项,然后根据该项的内容决定加载哪个loginMoudle对象。
2.在登录的时候LoginContext对象调用每个LoginMoudle对象的login()方法。
3.每个login()进行验证操作或获得一个CallBackHandle对象。
4.CallBackHandle对象通过使用一个或者多个CallBack方法同用户进行交互,获得用户输入。
向一个新的subject对象中填入验证信息。
核心的JAAS类和接口。这些类可以被分为三种类型:
普听类型subject,principal凭证
验证LoginContext,LoginModele,CallBackHandle,Callback
授权Policy,AuthPermission,PrivateCredentialPermission
subject类代表一个验证实体,它可以是用户、管理员、Web服务。设备或者其他的过程。该类包含三种类型的安全信息:
身份(Identities):由一个或多个Principal对象表示
公共凭证(public credentials):例如名称或公共秘钥。
私有凭证(Private credentials):例如口令或私有秘钥。
principal对象代表了Subject对象的身份。他们实现了java.security.Principal和java.io.Serializzble接口。在subject类中,最重要的方法是getName()。该方法返回一个身份名称。在subject对象中包含了多个Principal对象,因此它可以拥有多个名称,由于登录名称、身份证号和Email地址都可以作为用户的身份标识,可见用于多个身份名称的情况在实际应用中试一种普遍的情况
subject对象中维护者一组特定的私有和公有的凭证,这些凭证可以通过getPrivateCredentials()和getPublicCredentials()方法获得。这些方法同城在应用程序层中的安全子系统被调用。
LoginContext中经常使用的三个方法:
login()进行登录操作。该方法激活了配置中制定的所有所有LoginModule对象。如果成功,它将创建一个经过验证的subject对象;否则抛出LoginException异常。
getSubject()返回记过验证的Subject对象。
logout()Z注销Subject对象,删除与之相关的Principal对象和凭证。
验证::LoginMoudle
LoginModule是调用特定验证机制的接口。将J2EE 1.4中包含了下面几种LoginMoudle的实现类:
jndiLoginModule用于验证在JNDI中配置的目录服务
KrbLoginModule使用Kerberos协议进行验证
NTLoginModule使用当前用户在NT中的用户信息进行验证。
UnixLoginModule使用当前用户在Unix中的用户信息进行验证。
同上面这些模块绑定在一起的还有对应的Principal接口的实现类,例如NTDomainPrincipal和UnixPrincipal。这些类在com.sun.security.auth包中。
LoginModule接口包含了五个方法:
initialize()当创建一LoginModule实例时会构造函数调用
login()进行验证。
commit()当LoginContext对象接受所有LoginModule对象传回的结果后将调用该方法。该方法将Principal对象和凭证赋给subject对象。
abort()当任何一个LoginModule对象验证失败时会调用该方法。此时没有任何Principal对象或凭证关联到Subject对象上。
logout()删除与Subject对象关联的Principal对象和凭证。
在应用策划年供需代码中,程序员通常不会直接调用上面列出的方法,而是通过loginContext间接调用这些方法。
验证:CallbackHandle和Callback对象可以使LoginModule对象从系统和与用户那里收集必要的验证信息,同时独立于实际的手机信息时放生的交互过程。
当你的代码构造一个LoginContext对象的时候,你需要把配置文件中申请的名称传递给它。LoginModule将会根据申请中的信息决定激活哪些LoginModule对象,按照什么顺序激活以及使用什么规则激活。
配置文件的结构
Application{
ModuleClass Flag ModuleOptions;
ModuleClass Flag ModuleOptions;
}
下面是一个名称为Sample的申请
Sample{
com.sun.security.auth,module.NTLoginModule Rquired
debug=true;
}
上面这个简单的申请指定了LoginContext对象应该使用NTLoginModule进行验证。类的名称在ModuleClass中指定。
Flag控制当前申请中包含了多个LoginModule时进行登录时的行为:Required、sufficient、requisite和Optional。最常用的是required,使用它意味着对应的LoginModule对象必须被调用,并且必须需要通过所有的验证。
配置文件可以被任意命名,并且可以被放在任何位置,JAAS框架通过使用java.security.auth.long.config属性类确定配置文件的位置。假如当你的应用程序是JaasTest,配置文件时当前目录下的jaas.config,你需要在命令行中输入java-Djava.security.auth.login.config=jass.config JaasTest
分享到:
相关推荐
Java Authentication and Authorization Service (JAAS) 是Java平台提供的一种安全框架,用于实现用户身份验证和权限管理。这个框架使得开发者可以轻松地在Java应用程序中集成安全性,而不必深入理解底层的复杂安全...
Java Authentication and Authorization Service (JAAS) 是Java平台中用于安全性的核心组件,它为开发者提供了一种机制来处理用户身份验证和权限控制。这个服务允许应用程序执行基于角色的安全性,这意味着用户的...
Java Authentication and Authorization Service (JAAS) 是Java平台中用于实现用户身份验证和权限管理的核心组件。这个"Java JAAS安全认证 demo"是一个示例项目,旨在帮助开发者理解如何在Java应用中实施安全认证...
Java Authentication and Authorization Service (JAAS) 是 Java 平台中用于安全管理的重要组件,它提供了一种框架,使得应用程序可以进行用户身份验证和权限控制。在本文中,我们将深入探讨 JAAS 的核心概念、工作...
Java Authentication and Authorization Service (JAAS) 是Java平台中用于安全性的框架,主要用于用户身份验证和权限授权。在Java应用程序中,尤其是服务器端应用,确保只有合法的用户能够访问资源是至关重要的。...
### JAAS登录验证知识点 #### 一、JAAS概述 Java Authentication and Authorization Service(JAAS)是Java平台提供的一种安全框架,它允许开发者为应用程序添加认证和授权功能。与传统的基于容器的身份验证不同,...
Java Authentication and Authorization Service (JAAS) 是Java平台中用于安全性的关键组件,它提供了一种框架,使得应用程序能够实现用户身份验证和权限管理。在这个教程中,我们将深入探讨JAAS的核心概念、工作...
Java Authentication and Authorization Service (JAAS) 是Java平台中用于安全性的关键组件,它提供了一种标准框架来实现用户身份验证和授权。在Web应用程序中,JAAS被用来控制对资源的访问,确保只有经过验证的用户...
**Java Authentication and Authorization Service (JAAS) 认证在Mac版Tomcat中的应用** Java Authentication and Authorization Service (JAAS) 是Java平台的核心组件,用于提供安全的用户认证和权限管理。在Mac版...
Java Authentication and Authorization Service (JAAS) 是Java平台中用于安全认证和授权的核心组件。它为开发者提供了一种标准的方式来管理用户的身份验证和访问控制,从而确保应用程序的安全性。在本精讲中,我们...
标题 "websphere 6 JAAS登陆例子" 描述了一个在Websphere 6版本中集成LDAP用户和实现Single Sign-On (SSO)的实践案例。这个主题涉及到Java Authentication and Authorization Service (JAAS)的安全框架,以及它如何...
Java Authentication and Authorization Service (JAAS) 是Java平台中用于安全性的关键组件,它提供了一种框架,用于在Java应用程序中实现认证(Authentication)和授权(Authorization)。`jaas.jar` 文件是这个...
Java Authentication and Authorization Service (JAAS) 是Java平台中用于安全管理的框架,它是Java Cryptography Extension (JCE) 安全框架的重要补充。JAAS的主要目标是提供用户认证和授权服务,确保应用程序能...
### 在JAAS基础上的Java安全编程 #### 一、引言 随着互联网技术的发展和企业对数据安全的重视,Java作为一种广泛应用的编程语言,在安全领域扮演着越来越重要的角色。JAAS(Java Authentication and Authorization...
Java Authentication and Authorization Service (JAAS) 是Java平台中用于安全认证和授权的核心组件。它提供了一个框架,使得应用程序可以通过统一的方式来处理用户身份验证和权限控制。JAAS的主要目标是简化应用的...
### 基于JAAS的Java安全编程 #### JAAS概览 JAAS(Java Authentication and Authorization Service,Java认证与授权服务)是Sun Microsystems为Java 2平台开发的一套安全框架扩展,旨在加强Java应用程序的安全性。...
### JAAS身份验证技术入门详解 #### 一、JAAS概览 JAAS,全称为Java Authentication and Authorization Service(Java认证与授权服务),是Java Standard Edition(Java SE)中的一个核心组成部分,旨在为Java应用...
Java Authentication and Authorization Service (JAAS) 是Java平台中用于实现用户认证和权限授权的一个核心组件。它为开发者提供了一种灵活的方式来实现安全控制,确保只有经过验证和授权的用户能够访问敏感资源或...