- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【2017年整理】Seam 2.1 安全模块框架
Seam 2.1 安全模块框架
15.1. 概述
Seam安全API为你使用Seam开发的应用程序提供了大量与安全认证关的特性,包含了以下几块:
安全验证 - 一个可扩展的、基于JAAS的安全验证层,允许用户to authenticate against any security provider
身份管理 - 用于管理Seam程序中所涉及的用户及角色的接口
权限验证 - 一个应用十分广泛的权限验证框架,支持用户角色、持久化和基于规则的权限设置,能够灵活地实现属于用户自己的安全设置
权限管理 - 一组内置的Seam组件,能让应用程序的安全政策变得容易管理
验证码支持 - 帮助防止通过软件或脚本对你用Seam开发的网站进行攻击等等
这一章将会详细介绍每一个细节。
15.2. 关闭安全控制
某些情况下,可能会想要将安全控制关闭掉,例如执行单元测试的时候。通过调用静态方法 Identity.setSecurityEnabled(false) 来关闭安全认证。这样就能组织以下安全认证:
实体安全 Entity Security
Hibernate安全拦截
Seam安全拦截
页面约束
15.3. 验证
Seam安全中的验证特性是基于JAAS (Java Authentication and Authorization Service)开发的,它提供了用来进行用户身份认证的高度可配置的接口。然而,针对复杂多变的验证需求,Seam提供了一套非常简单的验证方法来隐藏 JAAS的复杂性。
15.3.1. 配置一个验证组件
注意: 如果你使用Seam的身份管理功能(稍后介绍),那么就不用特地建立一个验证组件(意味着你可以跳过这一章)。
这种简单的验证方法由Seam的一个内置的JAAS登录组件提供,叫做SeamLoginModule,它将验证功能转移到你自己编写的一个 Seam组件之中。该登录模块已经作为Seam的默认程序规则设置好了,你不需要额外的配置文件。你可以在一个编写一个你自己的方法来进行验证,稍经修改 也可以用来结合其他第三方程序进行验证。这些简单的配置需要在components.xml中添加一个identity组件:
components xmlns=/products/seam/components
xmlns:core=/products/seam/core
xmlns:security=/products/seam/security
xmlns:xsi=/2001/XMLSchema-instance
xsi:schemaLocation=
/products/seam/components /products/seam/components-2.1.xsd
/products/seam/security /products/seam/security-2.1.xsd
security:identity authenticate-method=#{authenticator.authenticate}/
components
EL表达式#{authenticator.authenticate}绑定到验证组件的验证方法上,该方法被用来对登录的用户进行验证。
15.3.2. 编写验证方法
components.xml 文档中identity的authenticate-method属性指出SeamLoginModule将使用哪个方法来进行用户验证。该方法没有参 数,并且返回值为boolean类型,用于判断登录是否成功。用户名和密码可以分别从Credentials.getUsername()和 Credentials.getPassword()得到。用户所属的角色通过Identity.addRole()来添加。下面就是一个写在POJO组 件中的完整验证方法:
@Name(authenticator)
public class Authenticator {
@In EntityManager entityManager;
@In Credentials credentials;
@In Identity identity;
public boolean authenticate() {
try {
User user = (User) entityManager.createQuery(
from User wh
您可能关注的文档
- 【2017年整理】PAS220_vis90 1.pdf
- 【2017年整理】PCCP管应用全过程质量控制综述.pdf
- 【2017年整理】packettracer5.0全攻略(上).pdf
- 【2017年整理】PCK2000BD北斗GPS双模授时器.pdf
- 【2017年整理】PCR-SSP法检测胎儿、新生儿ABO血型.pdf
- 【2017年整理】pcstrand.pdf
- 【2017年整理】PDC钻头切削齿切削角度对破岩效果影响规律的研究.pdf
- 【2017年整理】PC热管及其原理.doc
- 【2017年整理】PC阻燃技术现状.pdf
- 【2017年整理】PCR 轮胎基础知识(R1)--080114.ppt
文档评论(0)