![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring-security
alfsan
比较好玩的一个人
展开
-
SPRING SECURITY构建REST服务-0200-搭建项目
SPRING SECURITY构建REST服务-0200-搭建项目一、代码结构: 二、使用Springmvc开发restful API传统url和rest区别:三、写代码1,编写RestfulAPI的测试用例:使用MockMvc伪造mvcpackage com.imooc.web.controller;import java.time.LocalDateTime;import java.ti...转载 2018-04-04 13:35:54 · 139 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1201-SPRING SECURITY OAUTH开发APP认证框架之实现服务提供商
实现服务提供商,就是要实现认证服务器、资源服务器。现在做的都是app的东西,所以在app项目写代码 认证服务器:新建 ImoocAuthenticationServerConfig 类,@EnableAuthorizationServer 注解就说明该项目是一个 认证服务器:@Configuration@EnableAuthorizationServer //这个注解就是实现了一个认证服务器p...转载 2018-04-05 12:40:57 · 176 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1202-SPRING SECURITY OAUTH开发APP认证框架之重构3种登录方式
SpringSecurityOAuth核心源码解析蓝色表示接口,绿色表示类1,TokenEndpoint 整个入口点,相当于一个controller,不同的授权模式获取token的地址都是 /oauth/token ,通过grant_type 参数标识不同的授权类型,这个类就是判断授权类型 grant_type的。2,TokenEndpoint收到请求后先调用 ClientDetailsServ...转载 2018-04-05 12:41:56 · 506 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1203-SPRING SECURITY OAUTH开发APP认证框架之短信验证码登录
浏览器模式下验证码存储策略浏览器模式下,生成的短信验证码或者图形验证码是存在session里的,用户接收到验证码后携带过来做校验。APP模式下验证码存储策略在app场景下里是没有cookie信息的,请求里也就没有JSESSIONID,所以即使生成了验证码存在session里,你也接收到了验证码,但是没有JSEESIONID,校验你带过来的验证码时,会找不到对应的session,所以不能用sessi...转载 2018-04-05 12:43:04 · 383 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1204-SPRING SECURITY OAUTH开发APP认证框架之TOKEN处理
token处理之一基本参数配置处理token时间、存储策略,客户端配置等 以前的都是spring security oauth默认的token生成策略,token默认在org.springframework.security.oauth2.provider.token.DefaultTokenServices 类里生成的,感兴趣可以看看/** * 认证服务器 * ClassName: Imo...转载 2018-04-05 12:44:04 · 207 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1205-SPRING SECURITY OAUTH开发APP认证框架之TOKEN处理
token处理之二使用JWT替换默认的tokenJWT(Json Web Token) 特点: 1,自包含:jwt token包含有意义的信息 spring security oauth默认生成的token是uuid,是无意义的,本身并不包含任何信息。这个token所包含的信息,如果用redis存储token ,会在redis里存储这些信息(数据库也一样): 这样当用这个token去...转载 2018-04-05 12:45:07 · 254 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1300-SPRING SECURITY OAUTH开发APP认证框架之JWT实现单点登录
基于JWT实现SSO 在淘宝( https://www.taobao.com )上点击登录,已经跳到了 https://login.taobao.com,这是又一个服务器。只要在淘宝登录了,就能直接访问天猫(https://www.tmall.com)了,这就是单点登录了。淘宝、天猫都是一家的公司,所以呢希望用户在访问淘宝时如果在淘宝上做了登录,当在访问或者从淘宝跳转到天猫时,直接就处于登录状态而...转载 2018-04-05 12:46:54 · 330 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1400-授权
安全分为 认证和授权,前边讲的都是认证,现在说授权。前端业务系统的权限简单些,一般只区分是否登录,复杂点的还会区分 VIP用户等简单的角色,权限规则基本不变。后台系统比较复杂,角色众多,权限随着业务不断变化。 1,用代码控制简单的权限直接在配置类 BrowserSecurityConfig extends WebSecurityConfigurerAdapter 的configure方法里...转载 2018-04-05 12:47:55 · 307 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1201-SPRING SECURITY OAUTH开发APP认证框架之实现服务
实现服务提供商,就是要实现认证服务器、资源服务器。现在做的都是app的东西,所以在app项目写代码 认证服务器:新建 ImoocAuthenticationServerConfig 类,@EnableAuthorizationServer 注解就说明该项目是一个 认证服务器:@Configuration@EnableAuthorizationServer //这个注解就是实现了一个认证服务器p...转载 2018-04-05 12:38:56 · 184 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1200-SPRINGSECURITY OAUTH开发APP认证框架
基于服务器Session的认证方式:前边说的用户名密码登录、短信登录、第三方登录,都是普通的登录,是基于服务器Session保存用户信息的登录方式。登录信息都是存在服务器的session(服务器的一块内存)里 ,用户通过浏览器访问服务的时候,每一次服务器都会检查浏览器的cookie里有没有JESSIONID,如果不存在JESSIONID服务器会新建一个session,将新建的session的id写...转载 2018-04-05 12:37:26 · 243 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-0300-RESTFUL API异常处理
SpringBoot默认的错误处理机制:一、测试需要的部分代码(完整代码放在了github https://github.com/lhy1234/spring-security):UserController:只对新增用户做测试,省略其他代码@RestController@RequestMapping("/user")public class UserController { ...转载 2018-04-04 13:37:52 · 581 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-0400-使用切片拦截REST服务
Restful API的拦截: 1,过滤器(Filter) 2,拦截器(Interceptor) 3,切片(Aspect)1,过滤器和传统javaweb一鸟样,例,记录controller执行时间过滤器,会过滤所有url:/** * 记录执行时间过滤器 * ClassName: TimeFilter * @Description: TODO * @author lihaoyang...转载 2018-04-04 13:40:13 · 186 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-0500-异步处理REST服务
异步处理REST服务: 1,使用Runnable异步处理Rest服务 2,使用DeferredResult异步处理Rest服务 3,异步处理配置 异步处理能提高服务器的吞吐量。一、使用Runnable异步处理Rest服务模拟下单:package com.imooc.web.asyn;import java.util.concurrent.Callable;import org.slf...转载 2018-04-04 13:41:59 · 117 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-0600-SPRINGSECURITY基本原理
异步处理REST服务: 1,使用Runnable异步处理Rest服务 2,使用DeferredResult异步处理Rest服务 3,异步处理配置 异步处理能提高服务器的吞吐量。一、使用Runnable异步处理Rest服务模拟下单:package com.imooc.web.asyn;import java.util.concurrent.Callable;import org.slf...转载 2018-04-04 13:43:47 · 214 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-0700-SPRINGSECURITY开发基于表单的认证
自定义用户认证逻辑: 1,处理用户信息获取,2,用户校验,3密码的加密解密新建:MyUserDetailService类,实现UserDetailsService接口。UserDetailsService接口代码:只有一个方法,通过用户名获取用户信息,返回UserDetailpublic interface UserDetailsService { UserDetails load...转载 2018-04-04 13:45:20 · 141 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-0800-SPRING SECURITY图片验证码
验证码逻辑以前在项目中也做过验证码,生成验证码的代码网上有很多,也有一些第三方的jar包也可以生成漂亮的验证码。验证码逻辑很简单,就是在登录页放一个image标签,src指向一个controller,这个Controller返回把生成的图片以输出流返回给页面,生成图片的同时把图片上的文本放在session,登录的时候带过来输入的验证码,从session中取出,两者对比。这位老师讲的用Spring ...转载 2018-04-04 14:03:44 · 203 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-0900-REMEMBERME记住我
Spring security记住我基本原理:登录的时候,请求发送给过滤器UsernamePasswordAuthenticationFilter,当该过滤器认证成功后,会调用RememberMeService,会生成一个token,将token写入到浏览器cookie,同时RememberMeService里边还有个TokenRepository,将token和用户信息写入到数据库中。这样当用户...转载 2018-04-04 14:05:14 · 154 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1100-单机SESSION管理
Session失效时间:springboot配置session失效时间,只需要在application.properties里配置#session超时时间,低于60秒按60秒server.session.timeout = 60如果想自己定义session失效的提示信息,需要配置:@Configuration //这是一个配置public class BrowserSecurityConfig ...转载 2018-04-05 12:36:05 · 437 阅读 · 0 评论 -
SPRING SECURITY构建REST服务-1401-权限表达式
Spring Security 的权限表达式用法,在自定义的BrowserSecurityConfig extends WebSecurityConfigurerAdapter 配置文件里,每一个antMatchers匹配器后,使用权限表达式。(注意hasRole在UserDetailsService类里loadUserByUsername方法返回user的权限集合,需要加上前缀 ROLE_ 角...转载 2018-04-06 08:51:34 · 259 阅读 · 0 评论