JAAS
Resource:http://hintcnuie.iteye.com/blog/245239
Authentication, Authorization and Access Control
The primary goal of JAAS is to manage the granting of permissions and performing security checks for those permissions.
1.Authentication
1.1 Concept
Principal is one of identifers of a subject.
Subject is a collection of principals.
Credential is a prove of principal, it could be any type of object.
Authentication:The process to identify subject and attach credentials and principals to a subject.
LoginModule: provide a pluggable way to have system support JAAS.
used for authentication(login, and principals, credentials binding)
(authentication technology providers interface)
LoginContext:describes the basic methods used to authenticate Subjects and provides a way to develop an
application independent of the underlying authentication technology.
(Application Interface)
Configuration:determine which LoginModules should be used,
and which ones must succeed in order for the overall authentication to succeed(consits of AppConfigurationEntrys).
CallbackHandler: communicate and interact with users to gather identification information
CallBack: store information gathered by CallbackHandler;
1.2Authentication Progress
Application employ LoginContext to get a authenticated Subject. At this time, LoginContext will ask the Configuration for the
plugined LoginModules, and call each LoginModule to attach principals and credentials to Subject(owned by each LoginModule or LoginContext).
Before each LoginModule attach principals and credentials, there will be a chance for LoginModule to judge whether to attach or not,
it employ CallbackHandler to collect informations in the CallBacks. If the collected information is valid, it could do attach now(in LoginContext is commit).
2.Authorization && AccessControl
2.1 Concept
Permission defines what kind of actions on a target.
Permission = Permission Type + Target(permission effect on) + Action(Optional)
Not a subject but principal is assigned to a permission(defined by policy).
Policy: defines which permission are granted to a given security context(principal).(Deploying time And RunTime)
Authorization: binding permissions to princpals(policy)
Acess Control: access sensitive code employ AccessControler or Security Mananger to check subject have the right to access resources.
ProtectDomain: encapsulates a set of classes whose instances are granted a set of permissions when being executed on behalf of a given
set of Principals.
2.2 Acess Control Progress
3. Two Extensible Interface
Subject -- Principals -- Permission: Jaas employs Pricipals to decouple the Subject and Principals.
Configuration: support to dynamicly or staticly add/remove/edit LoginModules which attach pricipals to Subject.
It judges which pricipals a Subject could have.
Policy: support to dynamicly or staticly add/remove permissions to a principal.
It judges which permissions a principal could have.
4. JAAS in Tomcat
Realm: as LoginModule, authenticate a user based on a username and password, adding “roles” to that user if authentication was successful.
defined as Realm in server.xml
Role: as Principal, defined as security-role in web.xml
Authenticator: as access controller to take access control function. defined as login-config in web.xml.
It look down security-constraint to check.
- 大小: 22.9 KB
分享到:
相关推荐
通过阅读"JAAS学习笔记.doc"和"Weblogic Security Provider学习笔记.docx",我们可以更全面地了解这个主题。 1. **JAAS概述**: - JAAS是Java的安全框架,提供了一种标准化的方式来验证用户身份(认证)并控制对...
这份"Java-J2EE全部学习笔记 培训结构的学习资料"涵盖了从基础到高级的Java编程和J2EE应用开发的知识点,对于想要深入理解Java EE技术的人来说是一份宝贵的资源。 1. **Java基础知识**:这部分可能包括Java语言的...
【J2EE学习笔记概述】 J2EE,全称为Java 2 Platform, Enterprise Edition,是Oracle公司(原Sun Microsystems)推出的用于开发企业级分布式应用程序的平台。2010年的J2EE版本主要是指J2EE 5或早期的Java EE 6,这两...
【JBoss7学习笔记】 JBoss Application Server,简称JBoss AS,是Red Hat公司开发的一款开源Java EE应用服务器,而JBoss7则是其一个重要的版本,带来了许多性能优化和架构改进。这篇学习笔记将深入探讨JBoss7的核心...
### EJB学习笔记第六部分详解 #### 一、EJB之间的调用 EJB (Enterprise JavaBeans) 是Java EE平台中用于开发分布式企业应用程序的重要组件。在实际开发过程中,经常需要一个EJB调用另一个EJB来实现更复杂的业务...
2. **安全性**:通过JAAS(Java Authentication and Authorization Service)实现用户身份验证和权限控制,保护应用程序的安全。 3. **分布式性**:EJB组件可以在网络中的不同节点上部署和执行,实现了分布式计算。...
【Tomcat 学习精华笔记】 Tomcat 是一个广泛应用的开源服务器,主要用于托管Java Web应用程序。它虽然不是严格意义上的应用服务器,但作为一个Servlet容器,它能够处理Servlet和JSP,并且具备了一些应用服务器的...
在本笔记代码中,我们将深入探讨JAAS的工作原理以及如何通过编程实现相关功能。 1. **JAAS的基本概念** - **认证(Authentication)**:验证用户或系统实体的身份,通常涉及用户名、密码、数字证书等凭证。 - **...
这是一份专门针对J2EE技术的详细学习笔记,可能包含了从基础概念到高级应用的各个层面。 【描述】"MLDN_J2EE框架_笔记(已解密)"的描述虽然重复,但可以推测笔记内容是围绕J2EE框架展开的,可能包括了J2EE开发中的...
本笔记主要围绕J2EE的核心概念、主要组件以及它们的应用场景进行阐述。 ### 1. J2EE架构 J2EE架构采用分层设计,主要包括以下层次: - **表现层(Presentation Layer)**:用户界面,通常由Web组件(如HTML、...
学习J2EE框架,不仅需要理解其组件模型,还要掌握如何利用设计模式优化应用架构,以及如何通过各种API和工具处理并发、持久化、安全性等问题。对于自学J2EE,结合MLDN的J2EE框架笔记,将有助于深入理解这些概念并...
在Oracle JSP相关资料中,"我的电子日记"可能包含了作者在学习和实践Oracle JSP过程中记录的笔记和经验分享。这些内容可能涵盖了以下几个方面: - **基础概念**:JSP的基本结构、生命周期、页面指令的使用,以及与...
【描述】:“自己以前的j2ee学习资料”表明这份压缩包中包含了作者个人在学习J2EE过程中的积累,可能包括笔记、教程、案例研究、代码示例等。这通常意味着这些资料覆盖了J2EE的基础概念、核心组件、开发工具以及实际...
此外,"Java架构面试专题寒冬(含答案)和学习笔记"这部分可能会涵盖系统架构设计、分布式系统、微服务、负载均衡、容错机制、数据一致性等高级话题,对于提升面试者的技术视野和解决问题的能力大有裨益。...
Java J2EE面试指南 Java J2EE是企业级应用开发的重要框架,广泛应用于构建分布式、...对于"Java-J2SE学习笔记",这可能是一个关于Java标准版的基础学习资料,可以帮助巩固Java基础,为理解和应用J2EE打下坚实的基础。
**IBM WebSphere Application Server 7.0 培训PDF** IBM WebSphere Application Server (WAS) 是IBM推出...学生笔记PDF将为学习者提供一个系统性的学习路径,确保他们能够在短时间内掌握这一强大的企业级应用服务器。
5. **安全机制**:讲解 JBoss 的安全模型,包括用户认证、角色授权、SSL 安全连接以及基于 JAAS(Java Authentication and Authorization Service)的安全配置。 6. **JMS 消息服务**:阐述 JBoss 对 JMS(Java ...
在Java EE企业级应用开发教程中,你将深入学习如何利用这些服务和组件来创建高效、可扩展且具有高度灵活性的应用。以下是一些主要的知识点: 1. **Web组件**:包括Servlet和JavaServer Pages (JSP)。Servlet是Java ...
13. `jaas.jar`:Java Authentication and Authorization Service,用于身份验证和授权,通常在JDK1.4及以上版本中已包含。 在`hibernate.cfg.xml`配置文件中,以下几个属性是至关重要的: 1. `...
在实际学习过程中,学生可能会接触到如何配置开发环境(如使用Eclipse或IntelliJ IDEA集成开发环境)、搭建应用服务器(如Tomcat或GlassFish)、理解MVC(Model-View-Controller)设计模式、数据库交互(通过JDBC或...