SpringSecurity
kevin_sakura
0->1
展开
-
SpringSecurity学习之路2-处理创建请求,数据校验
SpringSecurity学习之路1在本篇中将会介绍到的内容有:@RequestBody注解、日期类型参数的处理、@Valid注解和BindingResult。先看@RequestBody注解的使用。场景:前后端分离,后端使用Restful风格进行开发。例子,创建用户请求,并期望返回用户ID信息。下面是Controller代码:测试代码如下:PS:如果这段测试代码你看不...原创 2019-05-01 20:41:07 · 234 阅读 · 0 评论 -
SpringSecurity学习之路11-实现记住我的功能
目的:用户勾选记住我之后,一段时间内免登陆。{都是接着之前的代码,一点点加、重构代码的,不会在这里详细叙述之前提到的东西,以后的篇幅也是这样}下图是关于SpringSecurity的原理介绍:当登录成功之后,RememberService会将Token存储进浏览器Cookie,再将它写入进数据库里。当再次进行登录操作时,便会拿着浏览器中的token去数据库中查找,查找成功之后便会调...原创 2019-06-10 18:07:03 · 213 阅读 · 0 评论 -
SpringSecurity学习之路10-图片验证码与手机验证码的重构
为了达到可重用、可配置的目的,使用到了自定义properties类,可以读取在application.properties中的配置信息。这些配置的优先级是:请求参数配置 > application.properties配置 > 自定义properties类配置。自定义properties的方法如下:省略get/set方法注意:以prefix的imooc.securit...原创 2019-06-10 11:51:48 · 283 阅读 · 0 评论 -
SpringSecurity学习之路9-实现验证码功能
步骤:定义一个封装验证码信息的类,ImageCode。写一个生成验证码的接口,利用随机数生成验证码,并将生成的验证码信息存储进session。springsecurity是由一系列filter接口来实现的,自定义一个filter继承OncePerRequestFilter,实现校验验证码的逻辑功能。将这个自定义的filter添加进入springsecurity链中。Ima...原创 2019-06-10 10:17:54 · 198 阅读 · 0 评论 -
SpringSecurity学习之路8-重构用户登录
目的:在没有提供自定义登录页面的情况下,系统提供默认的登录页面。①:application.properties 里写明 默认的登录页面在以下路径中新建三个类:先看SecurityProperties类,代码如下:它是一个properties的配置类,后面主要是通过它来调用值。prefix的值是根据application.properties里定义的名字来的,是一个前...原创 2019-05-30 18:02:43 · 448 阅读 · 2 评论 -
SpringSecurity学习之路5-使用WireMock伪造服务接口
在前后端分离下,在上一节中我们使用了Swagger来生成html文档。这些文档中包含了关于控制器、属性的介绍,以及对应的URL路径,前端只需要根据URL路径来进行访问。如果后端的开发还未完成,而前端需要调用接口,就可以使用WireMock来伪造服务。使用方法:首先下载jar包,步骤如下:执行第三步之后,运行第四步命令执行jar包。在命令末尾添加 --port 9999可以自定义Wi...原创 2019-05-13 10:38:27 · 237 阅读 · 0 评论 -
SpringSecurity学习之路4-利用多线程提高Restful服务性能
知识点一:使用Runnerable异步处理Restful服务知识点二:使用DeferredRestful异步处理Restful服务同步处理逻辑如下:假如要处理创建订单的请求,如上图所示,采用同步方式时,吞吐率无疑很低。异步处理逻辑如下:通过主线程调用副(子)线程的方式,能够提高系统的吞吐率。这种方式很直观,也很简单。实现代码如下:执行后控制台输出结果通过控...原创 2019-05-11 17:34:31 · 571 阅读 · 0 评论 -
BCryptPasswordEncoder加密、验证策略
通过查看源码,了解PasswordEncoder加密以及验证密码(数据库存储的加密密码与用户输入的密码比较)的流程、方式。加密:BCryptPasswordEncoder类有三个构造方法,影响了盐的生成,如果在生成BCryptPasswordEncoder对象的时候没有指定任何参数(或只指定了一个参数),BCrypt会提供默认值,最终都会调用BCrypt.gensalt(streng...原创 2019-05-15 14:50:01 · 35439 阅读 · 2 评论 -
SpringSecurity学习之路6-基本原理{基于表单的验证}
在之前的所有程序中,只要知道了访问地址就可以对其进行访问。接下来使用SpringSecurity来为程序添加保护。主要学习到的有:身份认证(你是谁)、授权(你能做什么)和攻击保护(防止伪造身份)。先看看SpringSecurity的基本原理:通过Filter过滤器链来实现安全验证,执行逻辑如下图:首先会判断请求体中是否包含用户名、密码信息,如果有那就会被第一个绿色Filter处理。否则...原创 2019-05-20 10:36:50 · 146 阅读 · 0 评论 -
SpringSecurity学习之路1
项目结构:自上而下分别为:①父模块,主要负责项目管理、版本控制;②后期为springSecurity加入手机验证登录等功能时使用;③面向浏览器所做的配置,如集群中session的处理;④security核心文件都在这里存放;⑤具体业务。引入了③的配置,刚开始学,先从面向浏览器③开始。在引入了相关依赖和插件之后,在⑤中写一个hello spring security...原创 2019-04-30 17:29:37 · 719 阅读 · 0 评论 -
SpringSecurity学习之路3-异常处理,APP与浏览器端的不同
SpringSecurity学习之路1SpringSecurity学习之路2-处理创建请求,数据校验本篇将会介绍到的有:SpringBoot关于异常处理的介绍,其中包括SpringBoot异常处理原理(浏览器与APP的不同)、自定义异常处理方式。看以下代码,我直接抛出了一个运行时异常:启动之后,通过浏览器访问时会显示以下错误信息:通过APP访问该地址时(Restlet...原创 2019-05-02 17:28:13 · 727 阅读 · 0 评论 -
SpringSecurity学习之路12-完成短信验证码的开发
目的:在验证码的重构完成之后,已经实现了发送验证码的功能,接下来要做的就是将短信验证码登录的逻辑添加就如程序里。使用户可以以账号、密码或手机号加验证码的方式登录。下图是短信验证码的实现逻辑:当用户以用户名+密码的形式登录时,经过UsernamepasswordAuthenticationFilter,将用户信息封装为一个token。然后AuthenticationManager是会根据...原创 2019-06-16 15:02:04 · 615 阅读 · 0 评论