欢迎来到天天文库
浏览记录
ID:41008711
大小:134.50 KB
页数:13页
时间:2019-08-13
《J2EE应用程序安全实现机制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、J2EE应用程序安全实现机制J2EE平台提供了与具体应用程序安全实现机制无关的编程模型,这种无关性提高了应用程序的可移植性,使应用程序可以部署在不同的安全环境中。本章假定读者已经了解了基本的安全概念,如果读者还需要学习这些概念,我们强烈建议读者学习TheJavaTutorial一书的Security部分(内容:纵览安全角色声明和连接角色引用映射角色到J2EE用户和组Web层安全保护Web资源控制Web资源访问验证Web资源用户使用编程安全机制不受保护的Web资源EJB层安全声明方法许可使用编程安全机制不受保护的EJB层资源应用程序客户端层安全确定应用程序客户端的回调处理机
2、制EIS(EnterpriseInformationSystem)层安全配置契约容器管理的契约组件管理的契约配置资源适配器安全传递安全身份配置组件使用的传递安全身份配置客户端验证机制J2EE用户、域和组管理J2EE用户和组安装服务器证书一.纵览J2EE平台定义了应用程序组件的开发与装配者和运行环境中的应用程序配置者之间的声明性约定(TheJ2EEplatformdefinesdeclarativecontractsbetweenthosewhodevelopandassembleapplicationcomponentsandthosewhoconfigureapplic
3、ationsinoperationalenvironments.)在应用程序的安全上下文中,应用程序提供者要提供在能完全满足应用程序配置要求的声明机制。在应用程序中声明性安全机制都被表示成部署描述符中的声明语法。应用程序部署者使用各种J2EE服务器的不同工具将部署描述符描述的应用程序安全需求映射到J2EE容器实现的安全机制。J2EESDK用deploytool工具实现这个功能。编程安全机制是指用安全敏感的程序来实现安全控制。当声明性安全无法满足应用程序的安全模型的表达时,编程安全就很有用。例如,应用程序可能需要实现基于当天某个时间、方法调用参数、企业Bean或者Web组件
4、的内部状态等的安全授权机制,或者根据数据库中的用户信息约束访问权限等就需要用编程安全机制。J2EE应用程序都是由可以部署在不同容器中的各种组件组成的。这些组件通常用来创建多层企业级应用程序。J2EE安全体系的目的是在实现各层安全的基础上实现各层相关联的应用程序整体安全。每一层都有受保护资源和非保护资源。通常你要确认受保护资源只有授权用户可以访问,授权机制提供受保护资源的访问控制。授权机制基于识别和验证,它通常作为允许访问系统资源的先决条件。识别是能够“认出”系统实体的过程。验证是校验计算机系统的用户、设备或者其他实体的身份的过程。访问非保护资源不需要授权机制。因此访问非保
5、护资源也不需要验证。访问系统资源而不需要授权被称作未验证或匿名访问。二.安全角色当你设计一个企业Bean或者Web组件的时候,你总是会考虑什么样的用户可以访问这个组件。例如,一个Account企业Bean可以被客户、银行出纳员和分行经理访问。这些用户类型中的每一种都被称作安全角色——一个由应用程序组装者定义的抽象逻辑用户组。当应用程序部署时,部署者将把这些角色映射到运行环境的安全实体。一个J2EE用户组也代表一个用户分类,但是它和角色有不同的范围。J2EE用户组被指定到整个J2EE服务器,而角色只覆盖一个特定的应用程序。你可以为应用程序中的JAR或者WAR文件声明角色来创
6、建一个角色。下面是一个用deploytool部署工具创建角色的步骤的示例:1.选中企业Bean的JAR文件或者Web组件的WAR文件2.在Roles页签里,点击Add按钮3.在表格中输入Name和Description列的值声明和连接角色引用一个安全角色引用允许一个企业Bean或者Web组件引用一个已经存在的安全角色。一个安全角色是一个应用程序相关的逻辑用户组,他们按照如消费水平或者职务等共同特性被分类。当应用程序被部署时,角色被映射到运行环境中的principals(作为验证结果赋予用户的安全身份的集合)或者用户组这样的安全实体。(Whenanapplicationis
7、deployed,rolesaremappedtosecurityidentities,suchasprincipals(identitiesassignedtousersasaresultofauthentication)orgroups,intheoperationalenvironment.)基于它,一个有特定角色的用户就有了相应的J2EE应用程序访问权。连接指明被引用安全角色的实际名称(Thelinkistheactualnameofthesecurityrolethatisbeingreferenced.)。在应用程
此文档下载收益归作者所有