互联网项目众多,随之而来的网络攻击手段也是防不胜防,数据安全是每个公司必须考虑的问题。
说到安全,你可能会想到加解密算法、HTTPS 协议等常见的技术体系,但系统安全是一个综合性的主题,并非简单采用一些技术体系就能构建有效的解决方案。
就以一个分布式环境下的应用场景为例。假设你要开发一个工单系统,而生成工单所依赖的用户订单信息维护在第三方订单系统中。为了生成工单,就必须让工单系统读取订单系统中的用户订单信息。
那么问题来了,工单系统如何获得用户的授权呢?
一般我们用的方法如下图所示:
订单系统用户认证和授权交互示意图
上述方案看起来没有什么问题,但如果你仔细分析一下,就会发现这个流程在安全性上存在一些漏洞。
比如,一旦用户修改了订单管理平台的密码,工单系统就无法正常访问了。为此,我们需要引入诸如 OAuth2 协议完成分布式环境下的认证和授权。
但是想要实现 OAuth2 协议并没有那么简单。OAuth2 协议涉及的技术体系非常复杂,需要综合考虑用户认证、密码加解密和存储、Token 生成和校验、分布式 Session 和公私钥管理,以及完成各个客户端的权限管理。
这时就需要引入专门的安全性开发框架 —— Spring Security
Spring Security 是 Spring 家族中一款历史比较悠久的开发框架,针对 Web 应用程序提供了一系列强大的安全性功能体系。
它不仅具有“认证”、“授权”两大核心功能,还具有 CSRF 攻击拦截、SESSION 会话管理、OAuth2 第三方认证等诸多强大实用功能,减少了为企业系统安全控制编写大量重复代码的工作,是企业项目安全运转的强大后盾。
对于开发人员而言,需要熟练使用 Spring Security 框架来应对业务发展的需求。例如,全面掌握 Spring Security 框架提供的认证、授权、OAuth2、JWT 等核心功能。
而对于架构师而言,需要基于框架提供的功能并结合具体的业务场景,对框架进行扩展和定制化开发。这就要他们对 Spring Security 中的用户认证和访问授权等核心功能的设计原理有充分的了解。
可以说,安全性技术是构建个人技术体系不可缺少的一个环节,对于提升你的职业门槛也是一个重要的加分项。
我的认知中 Spring Security 很实用也不难,网上零碎的资料也有很多,但大部分都只是讲框架的使用,没有深度剖析源码知识。
我有一位朋友叫鉴湘,具有 10 年以上大型 Java EE 和分布式系统构建和优化的经验,他总结了一套由浅入深的学习路径,不仅可以带你掌握 Spring Security 框架的全局,还从实战角度出发,帮助你高效掌握基于 Spring Security 框架的系统安全性设计方法和开发技巧。
在拉勾教育推出了一门专栏「Spring Security 详解与实操」,而且补贴期间只要 1 元(原价98元),就可永久解锁。觉得需要就跟着学,觉得现在不需要就先囤着,因为这门课周日就恢复原价了)

这个专栏会讲些什么?

这个课程按照基础功能篇、高级主题篇、OAuth2 与微服务篇、框架扩展篇的主线来展开内容,由浅入深的学习 Spring Security。
基础功能篇:介绍了 Spring Security 的一些基础性功能,包括认证、授权和加密。通过这一模块的学习,你可以在日常开发过程中完成对用户身份的认证、访问的授权以及集成加密机制,从而为 Web 应用程序添加基础的安全性功能。
高级主题篇:这一模块,一方面,针对 Web 应用程序,你可以使用过滤器来定制化各种安全性策略,并集成跨站请求伪造保护和跨域访问等功能。另一方面,针对非 Web 类应用程序,也可以使用 Spring Security 来完成方法级别的安全控制。
OAuth2 与微服务篇:这个模块对 OAuth2 协议和 JWT 进行了全面的展开,并使用这些技术体系构建了安全的微服务系统,以及单点登录系统。通过这一模块的学习,你可以掌握如何为目前主流的微服务架构中添加安全性,并使用 OAuth2 协议和 JWT 来实现对服务级别的授权访问。
框架扩展篇:这个模块是对 Spring Security 框架在应用上的一些扩展,包括在 Spring Security 中引入全新的响应式编程技术,以及如何对应用程序安全性进行测试的系统方法。通过这一模块的学习,你将掌握如何对 Spring Security 框架所提供的各项功能进行测试的系统方法,并对响应式安全这一安全性领域的全新技术体系有一定的了解。

这是课程目录,也是一份知识图谱,相信对你会有帮助

⚠️⚠️⚠️ 最后再次提醒
周日之前这个原价98元的专栏, 
仅需1元,就可永久解锁 
(这样良心的专栏,不囤我都替你感到亏)
继续阅读
阅读原文