Spring Security构建Rest服务-0100-前言
一、我的前言
这是看慕课网老师讲的SpringSecurity的学习笔记,老师讲的很好,开篇就说到了我的心里,老师说道:
有一定经验的程序员如何提升自己?
1,每天都很忙,但是感觉水平没有提升
2,不知道学什么,遇到复杂的业务场景时,又感觉技术储备不够
3,工作中写过很多代码,面试时候几句话就说完了。(说道了我心坎里!)
这背后的原因就是,知识点的深入程度不够。
自己不是很聪明,慢慢来,一步步学习一下!
这是一门讲应用安全方面的课程,安全涉及很多东西,最基础也是最重要的就是认证和授权。java业界比较流行的认证授权框架,一个是apache-shiro,是一个轻量级的安全框架,另一个就是Spring Security了,当下SpringBoot比较流行,而SpringBoot默认就是使用SpringSecurity框架的,所以有必要学一下!
说起认证和授权,表现形式就是登录,就像当初刚工作的想法,登录就是一个form表单,输入用户名密码,去数据库查有无用户信息,实际上,认证授权要复杂的多,当初的想法真是太幼稚了!
在此,我想通过学习这个课,一步步完善一个通用的认证授权框架。现在前端技术层出不穷,VUE、Angular,,,,,前后端分离模式下,现在都流行使用token做认证。就我现在工作的公司而言,及时前端vue是基于浏览器的,可以使用cookie-session做用户认证,但用户信息也存在了redis。这样有利于做集群啊,相当于用redis做session共享嘛。
通过学习这个框架,一可以熟悉下Springboot,二可以把工作中用到的一些东西集成进去,看慢慢能不能做成一个脚手架工程?用到的时候拿来即用
1-2企业级认证特性
实际上,企业级的认证和授权是很复杂的:
1,同时支持多种认证方式:
除了用户名密码,还要支持手机短信、微信、qq等第三方登录。
2,同时支持多种前端渠道:
如浏览器登录(有cookie)、app登录(没有cookie)是不一样的。
3,其他的:
支持集群环境:集群里一台机器登录其他的怎么办
跨应用工作:单点登录SSO
Session控制:控制session的数量
控制用户权限:
防护与身份认证相关攻击
这些都是编写企业级认证模块需要考虑的问题和要实现的特性。本课程就是要实现一个可重用的企业级的认证和授权模块。
1-3企业级的认证和授权

涉及到三个spring项目:
1、Spring Security(核心):
提供认证和授权底层机制的实现,开发用户名+密码、手机号+短信
2、 Spring Social:
社交项目,将应用连接到社交网站,实现第三方认证如qq登录、微信登录
3、Spring Security OAuth:
上边三种认证方式都是基于服务器Session的,登录成功后用户信息放在服务器Session里的,APP跟服务器通讯是没有Session的,采用token方式存储认证用户的信息,Spring Security OAuth就是创建、管理、分发token用的,最终的效果就是让用户名+密码,手机号+短信、第三方登录这三种认证方式可以同时支持浏览器里基于服务器Session的认证,也可以在手机APP里基于token方式认证
1-4:课程目标

接下来进入第二章
http://www.cnblogs.com/lihaoyang/p/8466647.html
Spring Security构建Rest服务-0100-前言的更多相关文章
- Spring Security构建Rest服务-1300-Spring Security OAuth开发APP认证框架之JWT实现单点登录
基于JWT实现SSO 在淘宝( https://www.taobao.com )上点击登录,已经跳到了 https://login.taobao.com,这是又一个服务器.只要在淘宝登录了,就能直接访 ...
- Spring Security构建Rest服务-1202-Spring Security OAuth开发APP认证框架之重构3种登录方式
SpringSecurityOAuth核心源码解析 蓝色表示接口,绿色表示类 1,TokenEndpoint 整个入口点,相当于一个controller,不同的授权模式获取token的地址都是 /oa ...
- Spring Security构建Rest服务-1001-spring social开发第三方登录之spring social基本原理
OAuth协议是一个授权协议,目的是让用户在不将服务提供商的用户名密码交给第三方应用的条件下,让第三方应用可以有权限访问用户存在服务提供商上的资源. 接着上一篇说的,在第三方应用获取到用户资源后,如果 ...
- Spring Security构建Rest服务-1201-Spring Security OAuth开发APP认证框架之实现服务提供商
实现服务提供商,就是要实现认证服务器.资源服务器. 现在做的都是app的东西,所以在app项目写代码 认证服务器: 新建 ImoocAuthenticationServerConfig 类,@Ena ...
- Spring Security构建Rest服务-1200-SpringSecurity OAuth开发APP认证框架
基于服务器Session的认证方式: 前边说的用户名密码登录.短信登录.第三方登录,都是普通的登录,是基于服务器Session保存用户信息的登录方式.登录信息都是存在服务器的session(服务器的一 ...
- Spring Security构建Rest服务-0900-rememberMe记住我
Spring security记住我基本原理: 登录的时候,请求发送给过滤器UsernamePasswordAuthenticationFilter,当该过滤器认证成功后,会调用RememberMeS ...
- Spring Security构建Rest服务-1401-权限表达式
Spring Security 的权限表达式 用法,在自定义的BrowserSecurityConfig extends WebSecurityConfigurerAdapter 配置文件里,每一个a ...
- Spring Security构建Rest服务-1205-Spring Security OAuth开发APP认证框架之Token处理
token处理之二使用JWT替换默认的token JWT(Json Web Token) 特点: 1,自包含:jwt token包含有意义的信息 spring security oauth默认生成的t ...
- Spring Security构建Rest服务-1204-Spring Security OAuth开发APP认证框架之Token处理
token处理之一基本参数配置 处理token时间.存储策略,客户端配置等 以前的都是spring security oauth默认的token生成策略,token默认在org.springframe ...
随机推荐
- gj5 自定义序列类
5.1 序列类型的分类 容器序列 list.tuple.deque扁平序列[同一种数据类型] str.bytes.bytearray.array.array可变序列 list, deque,by ...
- Error setting expression 'XXX‘'[Ljava.lang.with value '[Ljava.lang.String;@10101fb'
ognl报的警告,说明你的格式错误,一般是日期格式错误,格式转换器的应用,id设置的类型不对String 类型,输入了Int类型所以方法一是改变这个类中的id的属性 然后get和set也跟着改变 另一 ...
- UVa 11464 Even Parity (二进制法枚举)
题意:给你一个n*n的01矩阵,让你把最少的0变成1,使得每个元素的上,下,左,右的元素(如果有的话)之和均为偶数. 析:最好想的的办法就是暴力,就是枚举每个数字是变还是不变,但是...时间复杂度也太 ...
- PS各个工具的字母快捷键和英文全名
选框-Marquee(M) 移动-move(V) 套索-Lasso(L) 魔棒-Wand(W) 喷枪-injection lance (J) 画笔-Brush (B) 铅笔-pencil(N) 橡皮图 ...
- iPhone 物理尺寸与分辨率
// iPhone 物理尺寸(pt:Point) 分辨率(px) // 4S 320*480(3.5英寸) 640*960 // 5,5c,5S 32 ...
- The Real Meaning of Peace
The Real Meaning of Peace There once was a king who offered a prize to the artist who would paint th ...
- 集合(一)ArrayList
前言 这个分类中,将会写写Java中的集合.集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是该数据是如何存储的,集合的作用就是以一定的方式组织.存储数据.这里写的集合,一部分是比较常 ...
- 提高Android和iOS调试编译速度
http://www.cnblogs.com/findumars/p/7841252.html 提高Android和iOS调试编译速度 如果您使用Delphi开发App,就会遇到:Android和 ...
- CSharp如何自定义鼠标样式
一.如何设置鼠标样式? 在CSharp的WinForm开发中,可以通过下面的API设置鼠标样式: //把鼠标样式设置为十字(系统自带的一种鼠标样式) this.Cursor = Cursors.Cro ...
- 哎呀,我艹,使用tfs时候,离职人员锁定了代码.
哎呀,我艹,使用tfs时候,离职人员锁定了代码. 而且离职人员电脑已经回收,被格式化了,怎么破? 不管别人是有意,还是无意,总之就是需要搞定了. 1.第一步 首先,找到被锁住的工作区一般在报错信息中可 ...