/security-wrapper

对springSecurity进行二次开发,提供OAuth2授权(支持跨域名,多应用授权)、JWT、SSO、文件上传、权限系统无障碍接入、接口防刷、XSS、CSRF、SQL注入、三方登录(绑定,解绑)、加密通信等一系列安全场景的解决方案

Primary LanguageJavaScript

因为本人失误,忘记了github的密码,所以更新不及时,近期会上传:单机双客户端(系统管理、商户管理)集成springSecurity的实际应用已更新

springMVC集成springSecurity的单机版权限管理系统已经开发完毕,9月5号之前会整理上传,其中涉及的知识点非常丰富,会进一步巩固对springSecurity的认知

前情提要

在这首先感谢毅哥的支持,其中包括在架构和关键技术痛点的经验分享和提醒,弥补了我经验不足带来的缺失、以及给予充分自由的发挥空间。

先推荐几个好用的chrome插件

  1. Sourcegraph
  2. Clear Cache:一键清理浏览器缓存
  3. 科学上网
  4. JSONView
  5. AdBlock屏蔽页面广告
  6. The Great Suspender
  7. Octotree

代码规范很重要 阿里代码规范idea插件

编写初心

  1. 为了深入了解安全防护的知识
  2. 为了读源码
  3. 为了解决springSecurity上手难和使用配置繁杂(类似于Lucence和Elasticsearch的关系)
  4. 为了提升安全相关的开发效率,期望能做到使用者傻瓜式开发

功能介绍

该组件完全基于springSecurity进行的二次开发。
提供基于OAuth2的身份认证和访问授权、单点登录、文件上传、权限系统无障碍接入、jwt(增强)、三方登录(绑定、解绑)、接口防刷、特殊接口隐藏、反爬虫、XSS、CSRF、SQL注入、websocket通信安全、日志管理、Mock伪服务创建及管理、基于压力测试的接口优化等一系列安全场景的解决方案

框架结构

app : 移动端
browser : PC web
core : 核心包
demo : 样例,方便使用者更快熟悉该组件

依赖关系

            app -->  
  demo -->              core --> springSecurity  
            browser --> 

引用方式

  1. 开源引用,可直接在demo模块进行开发,也可创建子模块,可修改源代码
  2. maven引用
  3. 可直接运行做成服务,对外提供API

技术栈

  1. 支持前后端分离
  2. springBoot2.0.8、SpringSecurity5.0.11、Spring5.0.12、lombok、junit4.12、logback、swagger

后续更新

TODO: 单点登录组件
TODO: 接口类防护
TODO: 文件上传安全防护
TODO: XSS、CSRF
TODO: websocket安全通信
TODO: 权限管理组件
TODO: 引入docker
这么看来,啥都没做🤣🤣🤣就是一个空壳子

想要完全理解springSecurity的架构及编码思路需要看一下《OAuth2实战》这本书

SpringSecurity简介

   Spring Security is a powerful and highly customizable authentication and access-control framework. 
   It is the de-facto standard for securing Spring-based applications.  

   Spring Security is a framework that focuses on providing both authentication 
   and authorization to Java applications. Like all Spring projects, 
   the real power of Spring Security is found in how easily it can be extended to 
   meet custom requirements

译:Spring Security是一个强大而且可高度自定义的认证和流程控制框架。也是一套保护spring基础应用的安全标准。
Spring Security是一个聚焦于对Java应用程序提供认证和授权的框架,和其他spring项目一样,其强大之处在于能够很简单的进行自定义开发,dei 我们做的就是自定义开发。

统一的登录认证流程

认证流程

表单登录处理流程

默认表单登录处理流程

springSocial三方登录处理流程

springSocial三方登录

记住我-登录成功处理流程

记住我-登录成功处理流程

记住我-自动登录

记住我-自动登录