Spring Security构建Rest服务-1401-权限表达式
摘要:Spring Security 的权限表达式 用法,在自定义的BrowserSecurityConfig extends WebSecurityConfigurerAdapter 配置文件里,每一个antMatchers匹配器后,使用权限表达式。(注意hasRole在UserDetailsServi
阅读全文
Spring Security构建Rest服务-1400-授权
摘要:安全分为 认证和授权,前边讲的都是认证,现在说授权。 前端业务系统的权限简单些,一般只区分是否登录,复杂点的还会区分 VIP用户等简单的角色,权限规则基本不变。 后台系统比较复杂,角色众多,权限随着业务不断变化。 1,用代码控制简单的权限 直接在配置类 BrowserSecurityConfig e
阅读全文
Spring Security构建Rest服务-1300-Spring Security OAuth开发APP认证框架之JWT实现单点登录
摘要:基于JWT实现SSO 在淘宝( https://www.taobao.com )上点击登录,已经跳到了 https://login.taobao.com,这是又一个服务器。只要在淘宝登录了,就能直接访问天猫(https://www.tmall.com)了,这就是单点登录了。 淘宝、天猫都是一家的公司
阅读全文
Spring Security构建Rest服务-1205-Spring Security OAuth开发APP认证框架之Token处理
摘要:token处理之二使用JWT替换默认的token JWT(Json Web Token) 特点: 1,自包含:jwt token包含有意义的信息 spring security oauth默认生成的token是uuid,是无意义的,本身并不包含任何信息。这个token所包含的信息,如果用redis存
阅读全文
Spring Security构建Rest服务-1204-Spring Security OAuth开发APP认证框架之Token处理
摘要:token处理之一基本参数配置 处理token时间、存储策略,客户端配置等 以前的都是spring security oauth默认的token生成策略,token默认在org.springframework.security.oauth2.provider.token.DefaultTokenSe
阅读全文
Spring Security构建Rest服务-1203-Spring Security OAuth开发APP认证框架之短信验证码登录
摘要:浏览器模式下验证码存储策略 浏览器模式下,生成的短信验证码或者图形验证码是存在session里的,用户接收到验证码后携带过来做校验。 APP模式下验证码存储策略 在app场景下里是没有cookie信息的,请求里也就没有JSESSIONID,所以即使生成了验证码存在session里,你也接收到了验证码
阅读全文
Spring Security构建Rest服务-1202-Spring Security OAuth开发APP认证框架之重构3种登录方式
摘要:SpringSecurityOAuth核心源码解析 蓝色表示接口,绿色表示类 1,TokenEndpoint 整个入口点,相当于一个controller,不同的授权模式获取token的地址都是 /oauth/token ,通过grant_type 参数标识不同的授权类型,这个类就是判断授权类型 gr
阅读全文
Spring Security构建Rest服务-1201-Spring Security OAuth开发APP认证框架之实现服务提供商
摘要:实现服务提供商,就是要实现认证服务器、资源服务器。 现在做的都是app的东西,所以在app项目写代码 认证服务器: 新建 ImoocAuthenticationServerConfig 类,@EnableAuthorizationServer 注解就说明该项目是一个 认证服务器: @Configur
阅读全文
Spring Security构建Rest服务-1200-SpringSecurity OAuth开发APP认证框架
摘要:基于服务器Session的认证方式: 前边说的用户名密码登录、短信登录、第三方登录,都是普通的登录,是基于服务器Session保存用户信息的登录方式。登录信息都是存在服务器的session(服务器的一块内存)里 ,用户通过浏览器访问服务的时候,每一次服务器都会检查浏览器的cookie里有没有JESS
阅读全文
Spring Security构建Rest服务-1100-单机Session管理
摘要:Session失效时间: springboot配置session失效时间,只需要在application.properties里配置 #session超时时间,低于60秒按60秒server.session.timeout = 60 如果想自己定义session失效的提示信息,需要配置: @Conf
阅读全文
Spring Security构建Rest服务-0702-短信验证码登录
摘要:先来看下 Spring Security密码登录大概流程,模拟这个流程,开发短信登录流程 1,密码登录请求发送给过滤器 UsernamePasswordAuthenticationFilter 2,过滤器拿出用户名密码组装成 UsernamePasswordAuthenticationToken 对
阅读全文
Spring Security构建Rest服务-0801-短信验证码发送
摘要:实现短信验证码登录 开发短信验证码接口 校验短信验证码并登录 短信验证码和图片验证码开发思路类似: 1,我们访问一个controller 2,在controller里调用短信验证码生成接口生成验证码 3,验证码存进session 4,从请求里获取手机号,调用短信发送服务商的接口,给手机号发送短信 主
阅读全文
Spring Security构建Rest服务-0102-Spring Social开发第三方登录之qq登录
摘要:图一 基于SpringSocial实现qq登录,要走一个OAuth流程,拿到服务提供商qq返回的用户信息。 由上篇介绍的可知,用户信息被封装在了Connection里,所以最终要拿到Connection 1,Connection < ConnectionFactory:拿到一个Connection,
阅读全文
Spring Security构建Rest服务-1001-spring social开发第三方登录之spring social基本原理
摘要:OAuth协议是一个授权协议,目的是让用户在不将服务提供商的用户名密码交给第三方应用的条件下,让第三方应用可以有权限访问用户存在服务提供商上的资源。 接着上一篇说的,在第三方应用获取到用户资源后,如果过去的不是用户的自拍数据,而是用户的昵称头像等基本信息,根据这些基本信息,构建经过认证的Authen
阅读全文
Spring Security构建Rest服务-1000-使用SpringSocial开发第三方登录之大白话OAuth协议
摘要:OAuth协议简介 OAuth协议要解决的问题 OAuth协议中的各种角色 OAuth协议运行流程 OAuth协议,在网上也看了一些资料,意思就是给你颁发一个临时的通行证,你拿着这个通行证可以访问我的某些资源,不包括密码等关键信息,最常见的就是第三方登录,如qq登录,微信登录,第三方应用可以访问我们
阅读全文
Spring Security构建Rest服务-0900-rememberMe记住我
摘要:Spring security记住我基本原理: 登录的时候,请求发送给过滤器UsernamePasswordAuthenticationFilter,当该过滤器认证成功后,会调用RememberMeService,会生成一个token,将token写入到浏览器cookie,同时RememberMeS
阅读全文
Spring Security构建Rest服务-0500-异步处理rest服务
摘要:异步处理REST服务: 1,使用Runnable异步处理Rest服务 2,使用DeferredResult异步处理Rest服务 3,异步处理配置 异步处理能提高服务器的吞吐量。 一、使用Runnable异步处理Rest服务 模拟下单: package com.imooc.web.asyn; impo
阅读全文
Spring Security构建Rest服务-0800-Spring Security图片验证码
摘要:验证码逻辑 以前在项目中也做过验证码,生成验证码的代码网上有很多,也有一些第三方的jar包也可以生成漂亮的验证码。验证码逻辑很简单,就是在登录页放一个image标签,src指向一个controller,这个Controller返回把生成的图片以输出流返回给页面,生成图片的同时把图片上的文本放在ses
阅读全文
Spring Security构建Rest服务-0702-个性化用户认证流程2
摘要:登录成功后的处理AuthenticationSuccessHandler: 认证成功后,默认情况下spring security会继续访问之前访问的url,如果想自定义处理逻辑,用默认的就不行了。此时需要自定义登录成功后的处理,springsecurity提供了一个接口,Authentication
阅读全文
Spring Security构建Rest服务-0701-个性化用户认证流程
摘要:上一篇说了用户认证的基本流程,但是上一篇当访问一个受保护的服务后,如果未认证会调到默认的登录页面,这样是不行的,而且认证成功后,就直接访问了那个服务,如果想要做认证成功后做一些操作,还需要自定义。 个性化用户认证流程: 1)自定义登录页面 2)自定义登录成功处理(如给用户发积分或者签到) 3)自定义
阅读全文