《敏捷Acegi、CAS:构建安全的Java系统》目录
2008-01-05 20:21:51 来源:WEB开发网核心提示:第1部分 Web应用安全第1章 java EE应用的安全性 31.1 企业级安全 31.2 用户认证和授权 41.2.1 部署并运行contacts示例应用 11
第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-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-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
更多精彩
赞助商链接