图书介绍

Java Web高级编程 涵盖WebSockets、Spring Framework、JPA Hibernate和Spring Security2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Java Web高级编程 涵盖WebSockets、Spring Framework、JPA Hibernate和Spring Security
  • (美)威廉斯著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302400950
  • 出版时间:2015
  • 标注页数:797页
  • 文件大小:309MB
  • 文件页数:825页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Java Web高级编程 涵盖WebSockets、Spring Framework、JPA Hibernate和Spring SecurityPDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第Ⅰ部分 创建企业级应用程序3

第1章 介绍Java EE平台3

1.1 Java平台时间线3

1.1.1 起始3

1.1.2 企业级Java的诞生4

1.1.3 Java SE和Java EE共同发展5

1.1.4 了解最新的平台特性7

1.1.5 持续发展11

1.2 了解基本的Web应用程序结构11

1.2.1 Servlet、过滤器、监听器和JSP11

1.2.2 目录结构和WAR文件12

1.2.3 部署描述符13

1.2.4 类加载器架构14

1.2.5 企业级应用程序归档文件14

1.3 小结15

第2章 使用Web容器17

2.1 选择Web容器17

2.1.1 Apache Tomcat18

2.1.2 GlassFish19

2.1.3 JBoss和WildFly19

2.1.4 其他容器和应用服务器20

2.1.5 本书使用Tomcat的原因20

2.2 在个人计算机中安装Tomcat21

2.2.1 将Tomcat安装为Windows服务21

2.2.2 将Tomcat安装为命令行应用程序21

2.2.3 配置自定义的JSP编译器23

2.3 在Tomcat中部署和卸载应用程序24

2.3.1 手动部署和卸载24

2.3.2 使用Tomcat管理器25

2.4 通过IDE调试Tomcat26

2.4.1 使用IntelliJ IDEA27

2.4.2 使用Eclipse30

2.5 小结34

第3章 创建第一个Servlet35

3.1 创建Servlet类36

3.1.1 选择要继承的Servlet类36

3.1.2 使用初始化方法和销毁方法38

3.2 配置可部署的Servlet39

3.2.1 向描述符中添加Servlet39

3.2.2 将Servlet映射到URL40

3.2.3 运行和调试Servlet42

3.3 了解doGet、doPost和其他方法44

3.3.1 在service方法执行的过程中44

3.3.2 使用HttpServletRequest44

3.3.3 使用HttpServletResponse47

3.4 使用参数和接受表单提交49

3.5 使用初始化参数配置应用程序53

3.5.1 使用上下文初始化参数53

3.5.2 使用Servlet初始化参数54

3.6 通过表单上传文件56

3.6.1 介绍客户支持项目56

3.6.2 配置Servlet支持文件上传56

3.6.3 接受文件上传59

3.7 编写多线程安全的应用程序60

3.7.1 理解请求、线程和方法执行60

3.7.2 保护共享资源61

3.8 小结62

第4章 使用JSP显示页面内容63

4.1 使用<br/>替代output.println(“<br/>”)64

4.1.1 使用JSP的原因65

4.1.2 JSP在运行时的处理66

4.2 创建第一个JSP67

4.2.1 了解文件结构67

4.2.2 指令、声明、脚本和表达式69

4.2.3 注释代码70

4.2.4 在JSP中导入类71

4.2.5 使用指令72

4.2.6 使用<jsp>标签75

4.3 在JSP中使用Java(以及不鼓励使用Java的原因)76

4.3.1 使用JSP中隐式的变量76

4.3.2 不应该在JSP中使用Java的原因82

4.4 结合使用Servlet和JSP82

4.4.1 配置部署描述符中的JSP属性82

4.4.2 将Servlet中的请求转发给JSP85

4.5 关于JSP文档(JSPX)的注意事项89

4.6 小结91

第5章 使用会话维持状态93

5.1 需要会话的原因93

5.1.1 维持状态94

5.1.2 记住用户94

5.1.3 启动应用程序工作流94

5.2 使用会话cookie和URL重写95

5.2.1 了解会话cookie96

5.2.2 URL中的会话ID98

5.2.3 会话的漏洞100

5.3 在会话中存储数据102

5.3.1 在部署描述符中配置会话103

5.3.2 存储和获取数据105

5.3.3 删除数据109

5.3.4 在会话中存储更复杂的数据111

5.4 使用会话114

5.4.1 为客户支持应用程序添加登录功能114

5.4.2 使用监听器检测会话的变化118

5.4.3 维护活跃会话列表120

5.5 将使用会话的应用程序群集化124

5.5.1 在群集中使用会话ID124

5.5.2 了解会话复制和故障恢复126

5.6 小结127

第6章 在JSP中使用表达式语言129

6.1 了解表达式语言129

6.1.1 表达式语言的用途130

6.1.2 了解基本语法130

6.1.3 添加EL表达式132

6.2 使用EL语法133

6.2.1 保留关键字133

6.2.2 操作符优先级134

6.2.3 对象属性和方法139

6.2.4 EL函数140

6.2.5 静态字段和方法访问141

6.2.6 枚举142

6.2.7 lambda表达式142

6.2.8 集合143

6.3 在EL表达式中使用作用域变量144

6.3.1 使用隐式的EL作用域145

6.3.2 使用隐式的EL变量148

6.4 使用流API访问集合151

6.4.1 了解中间操作151

6.4.2 使用终结操作153

6.4.3 使用流API154

6.5 使用表达式语言替换Java代码155

6.6 小结157

第7章 使用Java标准标签库159

7.1 JSP标签和JSTL简介159

7.2 使用核心标签库(C命名空间)163

7.2.1 <c:out>163

7.2.2 <c:url>164

7.2.3 <c:if>165

7.2.4 <c:choose>、<c:when>和<c:otherwise>166

7.2.5 <c:forEach>167

7.2.6 <c:forTokens>168

7.2.7 <c:redirect>168

7.2.8 <c:import>169

7.2.9 <c:set>和<c:remove>170

7.2.10 使用核心库标签170

7.3 使用国际化和格式化标签库(FMT命名空间)173

7.3.1 国际化和本地化组件173

7.3.2 <fmt:message>175

7.3.3 <fmt:setLocale>176

7.3.4 <fmt:bundle>和 <fmt:setBundle>176

7.3.5 <fmt:requestEncoding>177

7.3.6 <fmt:timeZone>和<fmt:setTimeZone>177

7.3.7 <fmt:formatDate>和<fmt:parseDate>178

7.3.8 <fmt:formatNumber>和<fmt:parseNumber>179

7.3.9 使用i18n和格式化库标签180

7.4 使用数据库访问标签库(SQL命名空间)182

7.5 使用XML处理标签库(X命名空间)184

7.6 使用JSP标签替换Java代码184

7.7 小结186

第8章 编写自定义标签和函数库189

8.1 了解TLD、标签文件和标签处理器189

8.1.1 读取Java标准标签库TLD190

8.1.2 比较JSP指令和标签文件指令196

8.2 创建标签文件用作HTML模板198

8.3 创建日期格式化标签处理器199

8.4 创建EL函数简写字符串203

8.5 使用自定义JSP标签替换Java代码204

8.6 小结210

第9章 使用过滤器改进应用程序211

9.1 了解过滤器的目的211

9.1.1 日志过滤器212

9.1.2 验证过滤器212

9.1.3 压缩和加密过滤器212

9.1.4 错误处理过滤器212

9.2 创建、声明和映射过滤器213

9.2.1 了解过滤器链213

9.2.2 映射到URL模式和Servlet名称213

9.2.3 映射到不同的请求派发器类型214

9.2.4 使用部署描述符214

9.2.5 使用注解215

9.2.6 使用编程式配置215

9.3 过滤器排序216

9.3.1 URL模式映射和Servlet名称映射217

9.3.2 演示过滤器顺序218

9.3.3 使用过滤器处理异步请求220

9.4 调查过滤器的实际用例224

9.4.1 添加简单的日志过滤器225

9.4.2 使用过滤器压缩响应内容226

9.5 使用过滤器简化认证230

9.6 小结231

第10章 在应用程序中使用WebSocket进行交互233

10.1 演变:从AJAX到WEBSOCKET234

10.1.1 问题:从服务器获得新数据到浏览器234

10.1.2 解决方案1:频繁轮询235

10.1.3 解决方案2:长轮询236

10.1.4 解决方案3:分块编码237

10.1.5 解决方案4:Applet和Adobe Flash238

10.1.6 WebSocket:一种无人知道但已经存在的解决方案239

10.2 了解WebSocket API242

10.2.1 HTML5(JavaScript)客户端API243

10.2.2 Java WebSocket API245

10.3 使用WebSocket创建多人游戏247

10.3.1 实现基本的三连棋游戏策略247

10.3.2 创建服务器终端248

10.3.3 编写JavaScript游戏控制台252

10.3.4 WebSocket三连棋游戏试玩256

10.4 在群集中使用WebSocket进行通信257

10.4.1 使用两个Servlet实例模拟简单的群集257

10.4.2 发送和接收二进制消息259

10.4.3 测试模拟群集应用程序261

10.5 在客户支持应用程序中添加“支持与客户聊天”功能262

10.5.1 使用编码器和解码器转换消息262

10.5.2 创建聊天服务器终端264

10.5.3 编写JavaScript聊天应用程序267

10.6 小结269

第11章 使用日志监控应用程序271

11.1 了解日志的概念272

11.1.1 记录日志的原因272

11.1.2 在日志中记录的内容273

11.1.3 日志的写入方式274

11.2 使用日志级别和分类276

11.2.1 使用不同日志级别的原因276

11.2.2 定义的日志级别276

11.2.3 日志分类的工作方式277

11.2.4 筛选的工作方式277

11.3 选择日志框架277

11.3.1 API和实现278

11.3.2 性能278

11.3.3 Apache Commons Logging和SLF4J279

11.3.4 Log4j 2简介280

11.4 在应用程序中集成日志283

11.4.1 创建Log4j 2配置文件284

11.4.2 在Web过滤器中使用鱼标签287

11.4.3 在Java代码中编写日志语句288

11.4.4 在JSP中使用日志标签库290

11.4.5 客户支持应用程序中的日志290

11.5 小结291

第Ⅱ部分 添加Spring Framework295

第12章 介绍Spring Framework295

12.1 Spring Framework简介296

12.1.1 反转控制和依赖注入296

12.1.2 面向切面编程297

12.1.3 数据访问和事务管理297

12.1.4 应用程序消息297

12.1.5 Web应用程序的模型-视图-控制器模式298

12.2 使用Spring Framework的原因298

12.2.1 逻辑代码分组298

12.2.2 使用同一代码库的多个用户界面298

12.3 了解应用上下文299

12.4 启动Spring Framework300

12.4.1 使用部署描述符启动Spring301

12.4.2 在初始化器中使用编程的方式启动Spring303

12.5 配置Spring Framework306

12.5.1 创建XML配置308

12.5.2 创建混合配置310

12.5.3 使用@Configuration配置Spring314

12.6 使用bean definition profile318

12.6.1 了解profile的工作原理319

12.6.2 考虑反模式和安全问题321

12.7 小结322

第13章 使用控制器替代Servlet323

13.1 了解@RequestMapping323

13.1.1 使用@RequestMapping特性缩小请求匹配的范围324

13.1.2 指定控制器方法参数328

13.1.3 为控制器方法选择有效的返回类型335

13.2 使用Spring Framework的模型和视图模式337

13.2.1 使用显式的视图和视图名称338

13.2.2 使用含有模型特性的隐式视图340

13.2.3 返回响应实体341

13.3 使用表单对象简化开发346

13.3.1 在模型中添加表单对象347

13.3.2 使用Spring Framework<form>标签347

13.3.3 获得被提交的表单数据349

13.4 更新客户支持应用程序350

13.4.1 启用Multipart支持350

13.4.2 将Servlet转换成Spring MVC控制器351

13.4.3 创建自定义下载视图352

13.5 小结353

第14章 使用服务和仓库支持控制器355

14.1 了解模型-视图-控制器模式与控制器-服务-仓库模式355

14.1.1 识别程序逻辑的不同类型356

14.1.2 使用仓库提供持久化逻辑357

14.1.3 使用服务提供业务逻辑357

14.1.4 使用控制器提供用户界面逻辑358

14.2 使用根应用上下文替代Web应用上下文359

14.2.1 在多用户界面中重用根应用上下文359

14.2.2 将业务逻辑从控制器移动到服务360

14.2.3 使用仓库存储数据364

14.3 使用异步和计划执行改进服务368

14.3.1 了解执行器和调度器369

14.3.2 配置调度器和异步支持369

14.3.3 创建和使用@Async方法371

14.3.4 创建和使用@Scheduled方法372

14.4 使用WebSocket实现逻辑层分离373

14.4.1 在Spring应用上下文中添加由容器管理的对象373

14.4.2 使用Spring WebSocket配置器375

14.4.3 记住:WebSocket只是业务逻辑的另一个界面376

14.5 小结380

第15章 使用Spring Framework i18n国际化应用程序381

15.1 使用Spring Framework i18n的原因381

15.1.1 使国际化变得更容易382

15.1.2 直接本地化错误消息382

15.2 使用基本的国际化和本地化API382

15.2.1 了解资源包和消息格式383

15.2.2 使用消息源进行挽救385

15.2.3 使用消息源国际化JSP386

15.3 在Spring Framework中配置国际化387

15.3.1 创建消息源387

15.3.2 了解区域设置解析器388

15.3.3 使用处理拦截器修改区域设置390

15.3.4 提供一个用户Profile区域设置390

15.3.5 包含时区支持391

15.3.6 了解主题如何改进国际化392

15.4 国际化代码392

15.4.1 使用<spring:message>标签393

15.4.2 以更干净的方式处理应用程序错误395

15.4.3 更新客户支持应用程序398

15.4.4 直接使用消息源399

15.5 小结402

第16章 使用JSR 349、Spring Framework和Hibernate Validator执行Bean验证403

16.1 Bean验证的概念404

16.1.1 使用Hibernate Validator的原因405

16.1.2 了解注解元数据模型406

16.1.3 使用Spring Framework实现Bean验证406

16.2 在Spring Framework容器中配置验证406

16.2.1 配置Spring验证Bean407

16.2.2 创建错误代码本地化409

16.2.3 使用方法验证Bean后处理器410

16.2.4 在Spring MVC中使用相同的验证Bean411

16.3 在Bean中添加约束验证注解411

16.3.1 了解内建的约束注解411

16.3.2 了解常见的约束特性412

16.3.3 使用约束413

16.3.4 使用@Valid实现递归验证415

16.3.5 使用验证组416

16.3.6 在编译时检查约束合法性417

16.4 为方法验证配置Spring Bean418

16.4.1 标注接口,而非实现418

16.4.2 在方法参数上使用限制和递归验证419

16.4.3 验证方法返回值420

16.4.4 表示一个类是否适用于方法验证420

16.4.5 在Spring MVC控制器中使用参数验证421

16.4.6 为用户显示验证错误423

16.5 编写自己的验证约束425

16.5.1 在自定义限制中继承其他限制425

16.5.2 创建限制验证器426

16.5.3 了解限制验证器的生命周期428

16.6 在客户支持应用程序中集成验证429

16.7 小结431

第17章 创建RESTful和SOAP Web服务433

17.1 了解Web服务433

17.1.1 最初的SOAP434

17.1.2 RESTful Web服务提供了一种更简单的方式435

17.2 在Spring MVC中配置RESTful Web服务442

17.2.1 使用原型注解分离控制器442

17.2.2 创建单独的Web和REST应用上下文443

17.2.3 处理RESTful Web服务中的错误条件446

17.2.4 将RESTful请求映射到控制器方法449

17.2.5 使用索引终端改进发现机制453

17.3 测试Web服务终端454

17.3.1 选择测试工具454

17.3.2 请求Web服务455

17.4 使用Spring Web Service创建SOAP Web服务457

17.4.1 编写契约优先的XSD和WSDL458

17.4.2 添加SOAP派发器Servlet配置460

17.4.3 创建SOAP终端462

17.5 小结465

第18章 使用消息传送和群集实现灵活性和可靠性467

18.1 识别需要消息传送和群集的时机467

18.1.1 应用程序消息传送的定义468

18.1.2 群集的定义470

18.1.3 消息传送和群集的协作方式474

18.2 为应用程序添加消息传送支持477

18.2.1 创建应用程序事件477

18.2.2 订阅应用程序事件478

18.2.3 发布应用程序事件479

18.3 在群集中分布消息传送481

18.3.1 更新事件以支持分布482

18.3.2 创建并配置一个自定义事件多播器483

18.3.3 使用WebSocket发送和接收事件485

18.3.4 通过多播数据包发现节点487

18.3.5 部署多个应用程序模拟群集489

18.4 使用AMQP分布事件490

18.4.1 配置AMQP代理491

18.4.2 创建AMQP多播器492

18.4.3 运行使用了AMQP的应用程序494

18.5 小结495

第Ⅲ部分 使用JPA和Hibernate ORM持久化数据第19章 介绍Java Persistence API和Hibernate ORM499

19.1 数据持久化的定义499

19.1.1 平面文件实体存储500

19.1.2 结构化文件存储500

19.1.3 关系数据库系统501

19.1.4 面向对象数据库501

19.1.5 无模式数据库系统502

19.2 对象-关系映射的定义502

19.2.1 了解持久化实体的问题503

19.2.2 O/RM使实体持久化更简单504

19.2.3 JPA提供了一种标准O/RM API505

19.3 使用Hibernate ORM的原因507

19.4 Hibernate ORM简介507

19.4.1 使用Hibernate映射文件507

19.4.2 了解会话API509

19.4.3 从SessionFactory中获得会话511

19.4.4 使用Spring Framework创建SessionFactory512

19.5 准备关系数据库513

19.5.1 安装MySQL和MySQL Workbench513

19.5.2 安装MySQL JDBC驱动515

19.5.3 在Tomcat中创建连接资源516

19.5.4 注意Maven依赖517

19.6 小结517

第20章 使用JPA注解将实体映射到表519

20.1 使用简单实体520

20.1.1 创建实体并将它映射到表521

20.1.2 指示JPA使用实体字段的方式523

20.1.3 映射代理键523

20.1.4 使用基本数据类型529

20.1.5 指定列名和其他细节532

20.2 创建和使用持久化单元534

20.2.1 设计数据库表534

20.2.2 了解持久化单元作用域536

20.2.3 创建持久化配置536

20.2.4 使用持久化API539

20.3 映射复杂数据类型543

20.3.1 使用枚举作为实体属性543

20.3.2 了解JPA如何处理日期和时间544

20.3.3 将大属性映射为CLOB和BLOB546

20.4 小结548

第21章 在Spring Framework仓库中使用JPA549

21.1 使用Spring仓库和事务550

21.1.1 了解事务范围550

21.1.2 为事务和实体管理器使用线程551

21.1.3 使用异常转换552

21.2 在Spring Framework中配置持久化553

21.2.1 查找数据源553

21.2.2 在代码中创建持久化单元554

21.2.3 创建事务管理557

21.3 创建和使用JPA仓库560

21.3.1 注入持久化单元560

21.3.2 实现标准CRUD操作561

21.3.3 为所有的实体创建一个基础仓库563

21.3.4 在服务中标记事务范围568

21.3.5 使用事务服务方法572

21.4 在DTO和实体之间转换数据573

21.4.1 为客户支持应用程序创建实体574

21.4.2 使用BCrypt保护用户密码578

21.4.3 在服务中将数据传输到实体中579

21.5 小结581

第22章 使用Spring Data JPA消除公式化的仓库583

22.1 了解Spring Data的统一数据访问584

22.1.1 避免代码重复584

22.1.2 使用Stock仓库接口587

22.1.3 为搜索实体创建查询方法588

22.1.4 提供自定义方法实现591

22.2 配置和创建Spring Data JPA仓库594

22.2.1 启用仓库自动生成595

22.2.2 编写和使用Spring Data JPA接口601

22.3 重构客户支持应用程序603

22.3.1 转换现有仓库603

22.3.2 在支持票据中添加评论605

22.4 小结609

第23章 使用JPA和Hibernate Search搜索数据611

23.1 搜索介绍612

23.1.1 了解索引的重要性612

23.1.2 采取三种不同的方式613

23.2 使用高级条件定位对象614

23.2.1 创建复杂条件查询614

23.2.2 在查询中使用OR621

23.2.3 创建有用的索引改进性能622

23.3 使用JPA的全文索引623

23.3.1 在MySQL表中创建全文索引624

23.3.2 创建和使用可搜索的仓库625

23.3.3 使全文搜索可迁移630

23.4 使用Apache Lucene和Hibernate Search索引任意数据630

23.4.1 了解Lucene全文索引631

23.4.2 使用索引元数据标注实体632

23.4.3 结合使用Hibernate Search和JPA634

23.5 小结637

第24章 创建高级映射和自定义数据类型639

24.1 JPA的相关内容639

24.2 转换非标准数据类型640

24.2.1 了解特性转换器641

24.2.2 了解转换注解642

24.2.3 创建和使用特性转换器643

24.3 在实体中内嵌POJO645

24.3.1 表示嵌套的类型645

24.3.2 使属性成为可嵌入属性645

24.3.3 覆盖可内嵌列列名647

24.4 定义实体间的关系648

24.4.1 了解一对一关系648

24.4.2 使用一对多和多对一关系650

24.4.3 创建多对多关系653

24.5 处理其他常见的情况654

24.5.1 使用修订和时间戳版本化实体654

24.5.2 定义公共属性的抽象实体655

24.5.3 映射基本的和内嵌的集合656

24.5.4 持久化含有键值对的Map659

24.5.5 在多个表中存储实体660

24.6 创建编程式触发器661

24.6.1 在CRUD操作之前或之后执行661

24.6.2 使用实体监听器663

24.7 简化客户支持应用程序664

24.7.1 映射附件的集合664

24.7.2 使用加载时织入延迟加载简单属性666

24.8 小结669

第Ⅳ部分 使用Spring Security保护应用程序673

第25章 介绍Spring Security673

25.1 认证的概念673

25.1.1 集成认证674

25.1.2 了解授权682

25.2 选择Spring Security的原因685

25.2.1 了解Spring Security基础686

25.2.2 使用Spring Security的授权服务686

25.2.3 配置Spring Security687

25.3 小结687

第26章 使用Spring Security验证用户689

26.1 选择并配置认证提供者690

26.1.1 配置用户细节提供者690

26.1.2 使用LDAP和活动目录提供者700

26.1.3 使用OpenID进行认证703

26.1.4 remember-me认证705

26.1.5 学习其他认证提供者706

26.2 编写自己的认证提供者707

26.2.1 以正确的顺序启动707

26.2.2 创建和配置提供者710

26.2.3 缓解跨站请求伪装攻击715

26.3 小结718

第27章 使用授权标签和注解719

27.1 通过声明进行授权719

27.1.1 在方法代码中检查权限720

27.1.2 采用URL安全722

27.1.3 使用注解声明权限725

27.1.4 定义方法切点规则732

27.2 了解授权决策733

27.2.1 使用访问决策投票者733

27.2.2 使用访问决策管理器734

27.3 为对象安全创建访问控制列表736

27.3.1 了解Spring Security的ACL736

27.3.2 配置访问控制列表738

27.3.3 为实体填充ACL740

27.4 在客户支持应用程序中添加授权741

27.4.1 切换到自定义用户细节742

27.4.2 保护服务方法746

27.4.3 使用Spring Security的标签库750

27.5 小结751

第28章 使用OAuth保护RESTful Web服务753

28.1 了解Web服务安全754

28.1.1 比较Web GUI和Web服务安全754

28.1.2 选择认证机制754

28.2 介绍OAuth756

28.2.1 了解关键参与者756

28.2.2 起始:OAuth 1.0757

28.2.3 标准:OAuth 1.0a757

28.2.4 演化:OAuth 2.0762

28.3 使用Spring Security OAuth769

28.3.1 创建OAuth 2.0提供者769

28.3.2 创建OAuth 2.0客户端773

28.4 完成客户端支持应用程序775

28.4.1 生成请求随机数和签名776

28.4.2 实现客户端服务777

28.4.3 实现随机数服务780

28.4.4 实现令牌服务782

28.4.5 自定义资源服务器过滤器785

28.4.6 重新配置Spring Security787

28.5 创建OAuth客户端应用程序791

28.5.1 自定义REST模板792

28.5.2 配置Spring Security OAuth客户端793

28.5.3 使用REST模板795

28.5.4 同时测试提供者和客户端796

28.6 小结797

热门推荐