书籍详情
敏捷ACEGI、CAS:构建安全的Java系统
作者:罗时飞
出版社:电子工业出版社
出版时间:2007-04-01
ISBN:9787121038884
定价:¥59.80
购买这本书可以去
内容简介
本书是关于Acegi、CAS的权威教程,是Java/Java EE安全性开发者的必备参考书。无论是Java EE安全性编程模型的背景和基础知识,还是Acegi、CAS本身,还是有关Acegi、CAS的各种高级使用技巧和最佳实践,本书都详尽、系统地给出了阐述。全书共分为4部分:第1部分介绍Web应用安全,主要围绕Java EE安全性编程模型、从宏观上看待Acegi及其初步使用等方面进行阐述;第2部分介绍Acegi认证支持,主要围绕Acegi支持的各种认证机制、各种认证提供者、各种企业级特性等内容展开论述,还重点介绍了Acegi内置的Captcha集成支持、Java EE容器适配器支持等;第3部分介绍Acegi授权支持,主要围绕Web资源、业务方法、领域对象的授权操作展开论述;第4部分介绍CAS 3认证支持,它主要从CAS 3服务器的使用及其内部架构角度给出论述。全书理论与实践并重,通过大量的实例帮助读者尽快掌握Acegi的使用技巧,从而提高本书的参考、阅读价值。本书适合作为Java/Java EE安全性开发者、系统分析师和架构师的参考书,同时,本书非常适合于高校相关专业的学生,以及对Java/Java EE安全性有兴趣的各类开发者。
作者简介
本书提供作译者介绍罗时飞独立Java EE顾问。西安交通大学硕士。从事JavaEE开发、架构工作7年多,曾担任大型软件公司产品开发经理,实践经验丰富。对Java EE平台、敏捷方法及开源技术有深入研究,出版图书多本。现在,他依托http://www.open-v.com网站专职从事企业级√ava的推广工作。其近期代表作品有:.《精通EJB3.O》(第4版,译)..《精通Spring》(简体版,第1版,编著)《精通Spring2.0》(简体版,第1版,编著)...
目录
第1部分 Web应用安全
第1章 Java EE应用的安全性 3
1.1 企业级安全 3
1.2 用户认证和授权 4
1.2.1 部署并运行contacts
示例应用 11
1.2.2 分析contacts的Java EE
安全性侧面 18
1.2.3 启动contacts的SSL
双向认证 25
1.2.4 有关contactsforchapter1
应用的若干细节 33
1.3 现有Java EE安全的局限性 35
1.4 小结 37
第2章 面向Spring的Acegi 39
2.1 挑战Java EE安全 39
2.1.1 抽象的附加值 40
2.1.2 Acegi概述 41
2.2 Acegi提供的功能 42
2.3 小结 46
第3章 第一个实例 47
3.1 实例介绍 47
3.2 部署及运行acegifirstdemo 52
3.2.1 部署到Tomcat中 52
3.2.2 运行结果 55
3.3 若干注意事项 59
3.3.1 日志管理策略 60
3.3.2 形似的两个不同
LoggerListener 60
3.3.3 同时只专注同一知识点 63
3.4 小结 64
第2部分 Acegi认证支持
第4章 Acegi的认证策略 69
4.1 基于过滤器的设计 69
4.1.1 接管过滤器的生命周期 71
4.1.2 于web.xml中直接
配置过滤器 73
4.2 与认证源解耦 76
4.3 AcegiSecurityException
异常体系 78
4.4 Acegi的下载和安装 79
4.4.1 Acegi官方发布版的
下载和安装 79
4.4.2 Subversion中的Acegi
源码下载和安装 80
4.4.3 有关Acegi的权威去处 81
4.5 小结 82
第5章 支持的认证机制 83
5.1 Acegi内置的若干重要
认证接口 83
5.1.1 Authentication接口 84
5.1.2 AuthenticationEntryPoint
接口 85
5.1.3 UserDetails接口 87
5.2 集成BASIC认证 88
5.2.1 contactsforchapter5basic
示例应用分析 88
5.2.2 深入到BasicProcessing-
Filter中 92
5.2.3 借助Spring远程服务
访问受保护的资源 96
5.2.4 Remember-Me认证服务
在contactsforchapter5basic
中的应用 108
5.2.5 退出contactsforchapter5basic
示例应用 113
5.2.6 匿名认证 116
5.2.7 揭开SecurityContextHolder
的真相 119
5.2.8 针对用户认证的
Acegi标签库 123
5.3 集成X.509认证 125
5.3.1 准备X.509证书 125
5.3.2 contactsforchapter5x509
示例应用分析 130
5.3.3 深入到X509Processing-
Filter中 132
5.3.4 启用SSL传输通道 137
5.3.5 解决各Java EE容器间
端口的差异性 143
5.4 集成表单认证 147
5.4.1 contactsforchapter5form
示例应用分析 147
5.4.2 深入到Authentication-
ProcessingFilter中 149
5.4.3 控制并发HttpSession 156
5.4.4 Remember-Me认证服务
在contactsforchapter5x509
中的应用 160
5.4.5 国际化和本地化支持 161
5.4.6 切换用户 164
5.4.7 兼容getRemoteUser、
getUserPrincipal和
isUserInRole 175
5.4.8 SSL传输通道在
contactsforchapter5form
示例中的应用 178
5.5 集成Digest认证 182
5.5.1 运行contactsforchapter-
5digest示例应用 182
5.5.2 深入到DigestProcessing-
Filter中 184
5.5.3 启用DigestProcessingFilter中
的passwordAlreadyEncoded
属性 187
5.6 Acegi内置的属性编辑器 190
5.7 各过滤器间的位置关系 195
5.8 小结 197
第6章 DAO认证提供者 199
6.1 深入到DaoAuthentication-
Provider中 199
6.1.1 敏感信息的加密处理 201
6.1.2 揭露JdbcDaoImpl 207
6.2 EhCache技术在Acegi
中的应用 211
6.2.1 EhCache综述 211
6.2.2 Spring EhCache集成 216
6.2.3 将Spring EhCache集成
引入到Acegi中 218
6.3 小结 221
第7章 LDAP认证提供者 223
7.1 OpenLDAP介绍 223
7.1.1 JXplorer客户端工具 226
7.1.2 Spring LdapTemplate
子项目 227
7.2 揭露LDAP认证提供者 229
7.2.1 运行并分析contactsforc-
hapter7示例应用 229
7.2.2 认证LDAP用户 232
7.2.3 对LDAP用户实施
授权操作 235
7.2.4 LdapAuthentication-
Provider 238
7.3 小结 239
第8章 JAAS认证提供者 241
8.1 深入到JAAS之中 241
8.1.1 SecurityContextLoginModule
的使用 247
8.1.2 启用Java安全性管理器 249
8.1.3 启用JAAS的用户
授权功能 252
8.2 直击JaasAuthentication-
Provider 254
8.3 小结 261
第9章 Captcha集成支持 263
9.1 Captcha介绍 263
9.2 Captcha集成支持 270
9.2.1 将Captcha集成应用到
信息注册、用户登录、
在线投票等领域 270
9.2.2 将Captcha集成应用到
其他领域 275
9.2.3 CaptchaChannelProcessor-
Template继承链 283
9.3 小结 289
第10章 容器适配器认证 291
10.1 适配Tomcat 291
10.2 适配Resin 301
10.3 适配Jetty 303
10.4 适配JBoss 306
10.5 配置Tomcat支持的Java EE
安全性编程模型 312
10.5.1 Tomcat支持的各种
认证机制 316
10.5.2 RealmBase继承链中各
Realm的使用 318
10.6 小结 320
第3部分 Acegi授权支持
第11章 Acegi的授权策略 323
11.1 基于AOP拦截器的设计 323
11.2 事前评估 327
11.3 事后审查 329
11.4 公平投票 332
11.5 小结 334
第12章 保护Web资源 335
12.1 揭露FilterSecurity-
Interceptor 335
12.1.1 Web资源授权概述 336
12.1.2 重新认证 338
12.1.3 RoleVoter投票器 339
12.2 针对用户授权的Acegi
标签库 341
12.3 从RDBMS中装载Web
资源授权信息 342
12.3.1 分析FilterInvocation-
DefinitionSource的
运行机理 342
12.3.2 实现基于RDBMS的
FilterInvocation-
DefinitionSource 344
12.4 小结 349
第13章 保护业务方法 351
13.1 揭露MethodSecurity-
Interceptor 351
13.1.1 业务方法授权概述 351
13.1.2 Run-As认证服务 355
13.1.3 InterceptorStatusToken类 362
13.2 基于Annotation注释的
业务方法授权 363
13.3 保护AspectJ方法调用 368
13.4 小结 375
第14章 保护领域对象 377
14.1 Acegi眼中的领域对象 377
14.1.1 保护领域对象概述 378
14.1.2 再次温习contacts示例的
业务背景和技术实现 381
14.1.3 ACL权限的定义 385
14.2 实施保护领域对象的
重要步骤 386
14.2.1 RDBMS表的建立 386
14.2.2 准备ACL授权数据 391
14.2.3 初次接触JdbcMutable-
AclService 395
14.3 AclEntryVoter投票器 398
14.4 AfterInvocationProvider
策略接口及其实现者 408
14.4.1 重温contactManager-
Security定义 412
14.4.2 深入到JdbcMutableAcl-
Service中 413
14.5 针对领域对象的Acegi
标签库 415
14.6 文档管理系统(DMS)
案例分析 416
14.7 实施集成测试 423
14.7.1 Acegi内部单元设计策略 423
14.7.2 Acegi为集成设计
提供的有力支持 424
14.8 小结 431
第4部分 CAS 3认证支持
第15章 CAS 3介绍 435
15.1 单点登录概述 435
15.2 使用CAS 3 437
15.2.1 第一次运行CAS 437
15.2.2 AuthenticationHandler
认证处理器 439
15.2.3 Acegi内置的Cas-
AuthenticationHandler 443
15.3 针对Web应用实施
单点登录 445
15.3.1 CAS客户端综述 445
15.3.2 针对单个Web应用
实施SSO 446
15.3.3 分析acegifirstdemo1-
forchapter15涉及的
相关细节 455
15.3.4 针对两个Web应用
实施SSO 459
15.3.5 重温JA-SIG CAS Client for
Java内置的过滤器集合 461
15.4 启用CAS的代理功能 464
15.4.1 TicketValidator继承链 466
15.4.2 针对两个Web应用
启用代理 467
15.4.3 分析新版acegifirstdemo
涉及的相关细节 472
15.4.4 针对3个Web应用
启用代理 475
15.4.5 warn、renew、gateway、
logout 481
15.5 CAS 1.0和2.0协议 485
15.5.1 /login 488
15.5.2 /logout 490
15.5.3 /validate 490
15.5.4 /serviceValidate 490
15.5.5 /proxy 492
15.5.6 /proxyValidate 492
15.6 深入到CAS 3的内核中 493
15.6.1 处在核心的Central-
AuthenticationService 494
15.6.2 Spring Web Flow在
CAS中的应用 498
15.6.3 启用X509Credentials-
AuthenticationHandler 517
15.6.4 CAS 1.0和2.0协议
中各URL的映射 521
15.7 小结 522
第16章 集成CAS 3 525
16.1 Acegi提供的集成支持 525
16.2 集成Yale Java Client 527
16.2.1 Yale Java Client概述 527
16.2.2 针对单个Web应用
实施集成 528
16.2.3 分析运行acegifirstdemo-
forchapter16应用期间
发生的重大事件 537
16.2.4 针对两个Web
应用实施集成 540
16.3 集成JA-SIG CAS Client
for Java 545
16.4 写在最后 548
16.5 小结 549
第1章 Java EE应用的安全性 3
1.1 企业级安全 3
1.2 用户认证和授权 4
1.2.1 部署并运行contacts
示例应用 11
1.2.2 分析contacts的Java EE
安全性侧面 18
1.2.3 启动contacts的SSL
双向认证 25
1.2.4 有关contactsforchapter1
应用的若干细节 33
1.3 现有Java EE安全的局限性 35
1.4 小结 37
第2章 面向Spring的Acegi 39
2.1 挑战Java EE安全 39
2.1.1 抽象的附加值 40
2.1.2 Acegi概述 41
2.2 Acegi提供的功能 42
2.3 小结 46
第3章 第一个实例 47
3.1 实例介绍 47
3.2 部署及运行acegifirstdemo 52
3.2.1 部署到Tomcat中 52
3.2.2 运行结果 55
3.3 若干注意事项 59
3.3.1 日志管理策略 60
3.3.2 形似的两个不同
LoggerListener 60
3.3.3 同时只专注同一知识点 63
3.4 小结 64
第2部分 Acegi认证支持
第4章 Acegi的认证策略 69
4.1 基于过滤器的设计 69
4.1.1 接管过滤器的生命周期 71
4.1.2 于web.xml中直接
配置过滤器 73
4.2 与认证源解耦 76
4.3 AcegiSecurityException
异常体系 78
4.4 Acegi的下载和安装 79
4.4.1 Acegi官方发布版的
下载和安装 79
4.4.2 Subversion中的Acegi
源码下载和安装 80
4.4.3 有关Acegi的权威去处 81
4.5 小结 82
第5章 支持的认证机制 83
5.1 Acegi内置的若干重要
认证接口 83
5.1.1 Authentication接口 84
5.1.2 AuthenticationEntryPoint
接口 85
5.1.3 UserDetails接口 87
5.2 集成BASIC认证 88
5.2.1 contactsforchapter5basic
示例应用分析 88
5.2.2 深入到BasicProcessing-
Filter中 92
5.2.3 借助Spring远程服务
访问受保护的资源 96
5.2.4 Remember-Me认证服务
在contactsforchapter5basic
中的应用 108
5.2.5 退出contactsforchapter5basic
示例应用 113
5.2.6 匿名认证 116
5.2.7 揭开SecurityContextHolder
的真相 119
5.2.8 针对用户认证的
Acegi标签库 123
5.3 集成X.509认证 125
5.3.1 准备X.509证书 125
5.3.2 contactsforchapter5x509
示例应用分析 130
5.3.3 深入到X509Processing-
Filter中 132
5.3.4 启用SSL传输通道 137
5.3.5 解决各Java EE容器间
端口的差异性 143
5.4 集成表单认证 147
5.4.1 contactsforchapter5form
示例应用分析 147
5.4.2 深入到Authentication-
ProcessingFilter中 149
5.4.3 控制并发HttpSession 156
5.4.4 Remember-Me认证服务
在contactsforchapter5x509
中的应用 160
5.4.5 国际化和本地化支持 161
5.4.6 切换用户 164
5.4.7 兼容getRemoteUser、
getUserPrincipal和
isUserInRole 175
5.4.8 SSL传输通道在
contactsforchapter5form
示例中的应用 178
5.5 集成Digest认证 182
5.5.1 运行contactsforchapter-
5digest示例应用 182
5.5.2 深入到DigestProcessing-
Filter中 184
5.5.3 启用DigestProcessingFilter中
的passwordAlreadyEncoded
属性 187
5.6 Acegi内置的属性编辑器 190
5.7 各过滤器间的位置关系 195
5.8 小结 197
第6章 DAO认证提供者 199
6.1 深入到DaoAuthentication-
Provider中 199
6.1.1 敏感信息的加密处理 201
6.1.2 揭露JdbcDaoImpl 207
6.2 EhCache技术在Acegi
中的应用 211
6.2.1 EhCache综述 211
6.2.2 Spring EhCache集成 216
6.2.3 将Spring EhCache集成
引入到Acegi中 218
6.3 小结 221
第7章 LDAP认证提供者 223
7.1 OpenLDAP介绍 223
7.1.1 JXplorer客户端工具 226
7.1.2 Spring LdapTemplate
子项目 227
7.2 揭露LDAP认证提供者 229
7.2.1 运行并分析contactsforc-
hapter7示例应用 229
7.2.2 认证LDAP用户 232
7.2.3 对LDAP用户实施
授权操作 235
7.2.4 LdapAuthentication-
Provider 238
7.3 小结 239
第8章 JAAS认证提供者 241
8.1 深入到JAAS之中 241
8.1.1 SecurityContextLoginModule
的使用 247
8.1.2 启用Java安全性管理器 249
8.1.3 启用JAAS的用户
授权功能 252
8.2 直击JaasAuthentication-
Provider 254
8.3 小结 261
第9章 Captcha集成支持 263
9.1 Captcha介绍 263
9.2 Captcha集成支持 270
9.2.1 将Captcha集成应用到
信息注册、用户登录、
在线投票等领域 270
9.2.2 将Captcha集成应用到
其他领域 275
9.2.3 CaptchaChannelProcessor-
Template继承链 283
9.3 小结 289
第10章 容器适配器认证 291
10.1 适配Tomcat 291
10.2 适配Resin 301
10.3 适配Jetty 303
10.4 适配JBoss 306
10.5 配置Tomcat支持的Java EE
安全性编程模型 312
10.5.1 Tomcat支持的各种
认证机制 316
10.5.2 RealmBase继承链中各
Realm的使用 318
10.6 小结 320
第3部分 Acegi授权支持
第11章 Acegi的授权策略 323
11.1 基于AOP拦截器的设计 323
11.2 事前评估 327
11.3 事后审查 329
11.4 公平投票 332
11.5 小结 334
第12章 保护Web资源 335
12.1 揭露FilterSecurity-
Interceptor 335
12.1.1 Web资源授权概述 336
12.1.2 重新认证 338
12.1.3 RoleVoter投票器 339
12.2 针对用户授权的Acegi
标签库 341
12.3 从RDBMS中装载Web
资源授权信息 342
12.3.1 分析FilterInvocation-
DefinitionSource的
运行机理 342
12.3.2 实现基于RDBMS的
FilterInvocation-
DefinitionSource 344
12.4 小结 349
第13章 保护业务方法 351
13.1 揭露MethodSecurity-
Interceptor 351
13.1.1 业务方法授权概述 351
13.1.2 Run-As认证服务 355
13.1.3 InterceptorStatusToken类 362
13.2 基于Annotation注释的
业务方法授权 363
13.3 保护AspectJ方法调用 368
13.4 小结 375
第14章 保护领域对象 377
14.1 Acegi眼中的领域对象 377
14.1.1 保护领域对象概述 378
14.1.2 再次温习contacts示例的
业务背景和技术实现 381
14.1.3 ACL权限的定义 385
14.2 实施保护领域对象的
重要步骤 386
14.2.1 RDBMS表的建立 386
14.2.2 准备ACL授权数据 391
14.2.3 初次接触JdbcMutable-
AclService 395
14.3 AclEntryVoter投票器 398
14.4 AfterInvocationProvider
策略接口及其实现者 408
14.4.1 重温contactManager-
Security定义 412
14.4.2 深入到JdbcMutableAcl-
Service中 413
14.5 针对领域对象的Acegi
标签库 415
14.6 文档管理系统(DMS)
案例分析 416
14.7 实施集成测试 423
14.7.1 Acegi内部单元设计策略 423
14.7.2 Acegi为集成设计
提供的有力支持 424
14.8 小结 431
第4部分 CAS 3认证支持
第15章 CAS 3介绍 435
15.1 单点登录概述 435
15.2 使用CAS 3 437
15.2.1 第一次运行CAS 437
15.2.2 AuthenticationHandler
认证处理器 439
15.2.3 Acegi内置的Cas-
AuthenticationHandler 443
15.3 针对Web应用实施
单点登录 445
15.3.1 CAS客户端综述 445
15.3.2 针对单个Web应用
实施SSO 446
15.3.3 分析acegifirstdemo1-
forchapter15涉及的
相关细节 455
15.3.4 针对两个Web应用
实施SSO 459
15.3.5 重温JA-SIG CAS Client for
Java内置的过滤器集合 461
15.4 启用CAS的代理功能 464
15.4.1 TicketValidator继承链 466
15.4.2 针对两个Web应用
启用代理 467
15.4.3 分析新版acegifirstdemo
涉及的相关细节 472
15.4.4 针对3个Web应用
启用代理 475
15.4.5 warn、renew、gateway、
logout 481
15.5 CAS 1.0和2.0协议 485
15.5.1 /login 488
15.5.2 /logout 490
15.5.3 /validate 490
15.5.4 /serviceValidate 490
15.5.5 /proxy 492
15.5.6 /proxyValidate 492
15.6 深入到CAS 3的内核中 493
15.6.1 处在核心的Central-
AuthenticationService 494
15.6.2 Spring Web Flow在
CAS中的应用 498
15.6.3 启用X509Credentials-
AuthenticationHandler 517
15.6.4 CAS 1.0和2.0协议
中各URL的映射 521
15.7 小结 522
第16章 集成CAS 3 525
16.1 Acegi提供的集成支持 525
16.2 集成Yale Java Client 527
16.2.1 Yale Java Client概述 527
16.2.2 针对单个Web应用
实施集成 528
16.2.3 分析运行acegifirstdemo-
forchapter16应用期间
发生的重大事件 537
16.2.4 针对两个Web
应用实施集成 540
16.3 集成JA-SIG CAS Client
for Java 545
16.4 写在最后 548
16.5 小结 549
猜您喜欢