《敏捷Acegi、CAS:构建安全的Java系统》目录

1/5/2008来源:Java教程人气:7093

第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