一、我的前言

这是看慕课网老师讲的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-前言的更多相关文章

  1. Spring Security构建Rest服务-1300-Spring Security OAuth开发APP认证框架之JWT实现单点登录

    基于JWT实现SSO 在淘宝( https://www.taobao.com )上点击登录,已经跳到了 https://login.taobao.com,这是又一个服务器.只要在淘宝登录了,就能直接访 ...

  2. Spring Security构建Rest服务-1202-Spring Security OAuth开发APP认证框架之重构3种登录方式

    SpringSecurityOAuth核心源码解析 蓝色表示接口,绿色表示类 1,TokenEndpoint 整个入口点,相当于一个controller,不同的授权模式获取token的地址都是 /oa ...

  3. Spring Security构建Rest服务-1001-spring social开发第三方登录之spring social基本原理

    OAuth协议是一个授权协议,目的是让用户在不将服务提供商的用户名密码交给第三方应用的条件下,让第三方应用可以有权限访问用户存在服务提供商上的资源. 接着上一篇说的,在第三方应用获取到用户资源后,如果 ...

  4. Spring Security构建Rest服务-1201-Spring Security OAuth开发APP认证框架之实现服务提供商

    实现服务提供商,就是要实现认证服务器.资源服务器. 现在做的都是app的东西,所以在app项目写代码  认证服务器: 新建 ImoocAuthenticationServerConfig 类,@Ena ...

  5. Spring Security构建Rest服务-1200-SpringSecurity OAuth开发APP认证框架

    基于服务器Session的认证方式: 前边说的用户名密码登录.短信登录.第三方登录,都是普通的登录,是基于服务器Session保存用户信息的登录方式.登录信息都是存在服务器的session(服务器的一 ...

  6. Spring Security构建Rest服务-0900-rememberMe记住我

    Spring security记住我基本原理: 登录的时候,请求发送给过滤器UsernamePasswordAuthenticationFilter,当该过滤器认证成功后,会调用RememberMeS ...

  7. Spring Security构建Rest服务-1401-权限表达式

    Spring Security 的权限表达式 用法,在自定义的BrowserSecurityConfig extends WebSecurityConfigurerAdapter 配置文件里,每一个a ...

  8. Spring Security构建Rest服务-1205-Spring Security OAuth开发APP认证框架之Token处理

    token处理之二使用JWT替换默认的token JWT(Json Web Token) 特点: 1,自包含:jwt token包含有意义的信息 spring security oauth默认生成的t ...

  9. Spring Security构建Rest服务-1204-Spring Security OAuth开发APP认证框架之Token处理

    token处理之一基本参数配置 处理token时间.存储策略,客户端配置等 以前的都是spring security oauth默认的token生成策略,token默认在org.springframe ...

随机推荐

  1. gj7 对象引用、可变性和垃圾回收

    7.1 python变量到底是什么 #python和java中的变量本质不一样,python的变量实质上是一个指针 int str, 便利贴 a = 1 a = "abc" #1. ...

  2. day10(IO流汇总)

    字节流 (Reader,Writer) 输入流  FileReader public class Demo { public static void main(String[] args) throw ...

  3. (最小生成树) Building a Space Station -- POJ -- 2031

    链接: http://poj.org/problem?id=2031 Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 6011 ...

  4. shell 文本处理——使用awk格式化时间戳

    date -d @时间戳 "+%Y-%m-%d %H:%M:%S" 也可以内置函数 awk '{print strftime("%Y-%m-%d %H:%M:%S&quo ...

  5. [翻译Joel On Software]选择一门语言/Choosing a language

    Joel on Software Choosing a language 选择一门语言 by Joel Spolsky Sunday, May 05,2002 Why do developerscho ...

  6. 讲解java异常

    J2EE项目异常处理                        为什么要在J2EE项目中谈异常处理呢?可能许多java初学者都想说:“异常处理不就是try….catch…finally吗?这谁都会 ...

  7. KNN PCA LDA

    http://blog.csdn.net/scyscyao/article/details/5987581 这学期选了门模式识别的课.发现最常见的一种情况就是,书上写的老师ppt上写的都看不懂,然后绕 ...

  8. 今天犯了一个StringBuilder构造函数引起的二逼问题。

    在.Net里,StringBuilder的构造函数有很多,最常用的是无参的构造函数,默认分配16个字符的空间.其次就是填写StringBuilder空间的带一个Int32的构造函数,这个在优化代码的时 ...

  9. navicat远程连接oracle

    本机没有oracle,这个软件太大了. 想要远程连接oracle,本地不安装oracle的话是不行的,我们安装一个oracle instance client,然后配置navicat就ok了. 下载i ...

  10. C#文件监控对象FileSystemWatcher实例,通过监控文件创建、修改、删除、重命名对服务器数据进行实时备份

    先上图,简单的windorm界面:此为最初的版本,后续会增加监听多个源目录的功能.log功能.进度条展示功能等. 1.初始化监听 /// <summary> /// 初始化监听 /// & ...