![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringSecurity
文章平均质量分 89
springboot葵花宝典
这个作者很懒,什么都没留下…
展开
-
SpringBoot-零基础搭建前后端分离--后端搭建
SpringBoot-零基础搭建前后端分离--后端搭建1.创建父项目verse 点击Create New Project选择 Maven ,选择本地安装的JDK, 点击 Next输入GroupID: com.verse 、ArtiactID:verse 点击 Finish创建完成后,删除src在pom.xml中添加依赖管理<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.ap原创 2022-04-28 10:23:22 · 936 阅读 · 1 评论 -
Java Lambda表达式详细介绍
Java Lambda表达式详细介绍Lambda简介 Lambda 可定义为一种简洁、可传递的匿名函数,它是推动Java 8发布的最重要新特性Lambda 本质上是一个函数,虽然它不属于某个特定的类,但具备参数列表、函数主体、返回类型,甚至能够抛出异常Lambda 是匿名的,它没有具体的函数名称Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)Lambda 可以使代码变的更加简洁Lambda基本语法 基本语法: (parameters) -> expression 或 (param原创 2022-04-22 09:52:06 · 360 阅读 · 0 评论 -
项目脚手架VueCLI2&3
项目脚手架VueCLI2&3VueCLI简介 VueCLI官方文档地址:https://cli.vuejs.org/zh/VueCLI(Vue Command-Line Interface )致力于快速构建基于webpack的vue初始化项目。Vue CLI具有以下核心功能Vue CLI封装了了完整的静态资源模块化打包方案Vue CLI提供了本地的热加载调试服务Vue CLI还提供了预处理,文件转译,自动化测试和静态检测等功能Vue CLI提供了快速开始零配置的原型开发VueCLI与webpack之原创 2022-04-19 16:20:45 · 356 阅读 · 0 评论 -
Webpack 入门教程
Webpack 入门教程 webpack的简介和安装 为什么使用webpack模块化打包:webpack可以帮我们把CommonJS和ES6语法模块化,转化为浏览器可以解释执行的语法。,我们既可以使用到模块化方案带飞我们的好处:避免代码变量命名等冲突,结构清晰,方便复用与管理,也可以通过webpack来满足浏览器的兼容!webpack可以帮我们解析模块间的依赖关系,并正确打包!兼容更多的前端技术:前端技术和新的规范层出不穷上面这是实际还是js和css,但是加入了一些增强语法,他们都可以提高前端开发效率和开发原创 2022-04-19 16:16:26 · 984 阅读 · 0 评论 -
VUE深度解析
VUE深度解析ES6语法-var-const-let用法详解 javascript作用域javascript只有函数作用域,没有块级作用域。即在dunction里面定义的变量是有作用域的,if、for等代码块定义的变量是没有作用域的。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta&nbs原创 2022-04-19 16:15:31 · 297 阅读 · 0 评论 -
Vue-快速入门
Vue-快速入门 MVVM响应式编程模型,避免直接操作DOM , 降低DOM操作的复杂性。imgMVVM:页面输入改变数据,数据改变影响页面数据展示与渲染M(model):普通的javascript数据对象V(view):前端展示页面VM(ViewModel):用于双向绑定数据与页面,对于我们的课程来说,就是vue的实例VUE核心功能 基础功能:页面渲染、表单处理提交、帮我们管理DOM(虚拟DOM)节点组件化开发:增强代码的复用能力,复杂系统代码维护更简单img前端路由:更流畅的的用户体验、灵活的在页面切换原创 2022-04-19 16:12:12 · 156 阅读 · 0 评论 -
前端VueRouter解析
前端VueRouter解析VueClI2项目构建过程中安装VueRouter 我们学习了使用vue init webpack [project-name]命令快速构建Vue项目脚手架。如果需要在项目中加入VueRouter,在项目配置填写的阶段Install vue-touter?填写Y(Yes)。使用VueRouter开发第一个demo 第一个示例很简单,创建一个单页面应用。这个单页面应用有两个路由及两个组件:当点击‘/home’路由的标签元素展示用户主页面(组件Home),当点击'/about'展示"关原创 2022-04-19 10:59:53 · 223 阅读 · 0 评论 -
SpringSecurity-OAuth2万文详解
SpringSecurity-OAuth2万文详解Oauth2.0是目前流行的授权机制,用于授权第三方应用,获取数据。Oauth协议为用户资源的授权提供一个安全、开放并且简易的规范标准。和以往授权不同的是Oauth不会使第三方触及到用户的账号信息(用户和密码),也就是说第三方不需要使用用户的用户名和密码就可以获取到该用户的用户资源权限。OAuth2设计的角色 资源所有者(Resource Owner):通常是用户(User),如昵称、头像这些资源的拥有者(用户只是将这些资源放到服务提供商的资源服务器中)。第原创 2022-04-11 07:30:00 · 2766 阅读 · 2 评论 -
SpringSecurity-15-解决跨域访问
SpringSecurity-15-解决跨域访问什么是跨域 跨域是一种浏览器同源安全策略,是一种约定,是浏览器单方面限制脚本跨域访问,它会限制同一个域的JavaScript脚本和另一个域的内容进行交互,同源指的是两个页面具有相同的协议(protocol)、主机(host)和端口号(port)。同源政策的目的是为了保护用户信息的安全,防止恶意网站窃取数据一些人认为资源跨域时无法请求访问,实际是请求可以正常发起(部分浏览器存在特例),后端服务也正常处理了,但是在返回的时候被浏览器进行了拦截,导致响应内容不可使用原创 2022-04-04 12:24:58 · 1221 阅读 · 0 评论 -
SpringSecurity-14-SpringSecurity结合JWT实现前后端分离的后端授权
SpringSecurity-14-SpringSecurity结合JWT实现前后端分离的后端授权什么是JWT JWT是JSON WEB TOKEN的缩写,它是基于RFC 7519标准定义的一种可以安全传输的JSON对象,因为使用了数字签名,所以可以信任。JWT的组成JWT token的格式:header.payload.signatureheader中用于存放签名的生成算法{"alg": "HS512"}payload用于存放用户名、token的生成时间和过期时间{"sub":"admin",原创 2022-04-03 20:32:14 · 1236 阅读 · 1 评论 -
SpringSecurity-12-PasswordEncoder密码加密简介
SpringSecurity-12-PasswordEncoder密码加密简介为什么密码加密? 国内的每一个开发社区在2011年发生过被黑客攻击,盗取用户信息,600多万的明文密码信息被盗取,大量用户面临着数据隐私泄露和数据安全的威胁。这警告了我们,一旦被黑客攻击用户账号信息被盗,我们该如何减少用户的损失,在我们开发者角度来看就是如何使得用户的账号密码变得安全。怎么让用户的密码变得安全呢?那就是要对用户的密码存储进行加密。MD5加密 MD5信息摘要算法,是一种密码散列函数,可以生成一个128(16字节)的散原创 2022-04-01 07:30:00 · 1999 阅读 · 1 评论 -
SpringSecurity-12-Redis实现基于session共享登录方案
SpringSecurity-12-Redis实现基于session共享登录方案简述 如果我们使用单机版本的Session存储身份信息的时候,如果服务器挂掉,那么服务就无法使用了。如果我们将项目部署到CD两台服务器上,Session就无法保持一致。如果用户user第一次访问C服务器,然后再次请求的时候访问D服务器,但是B没有存储user的session,这样用户就需要重新登录。所以为了解决这种情况,我们可以将session放到redis中,以后用户请求都可以从redis中获取session,从而保持登录二点原创 2022-03-31 07:52:30 · 516 阅读 · 0 评论 -
SpringSecurity-11-只允许一个用户登录
SpringSecurity-11-只允许一个用户登录本次给你介绍只允许用户在一个地方登录,也就是说每个用户只允许有一个Session。他有两种场景如果同一个用户在第二个地方登录,则将第一个登录下线如果同一个用户在第二个地方登录,则不允许二次的登录同一个用户在第二个地方登录,则将第一个登录退出 具体步骤如下:重构com.security.learn.config.LearnSrpingSecurity的configure(HttpSecurity http)方法  原创 2022-03-30 20:25:29 · 3689 阅读 · 0 评论 -
SpringSecurity-10-Session会话管理
SpringSecurity-10-Session会话管理理解Session Http协议是一种无状态协议所以当服务端需要记录用户的状态时,需要某种机制用于识别用户,这个机制就是Session。服务器通过和用户约定每一个请求携带一个id信息,用于统一用户的请求有了管理,并且区分不同用户。基于session方案,为让用户请求都携带同一个id,并且不妨碍用户体验的情况下,选择cookie作为载体是一个不错的选择,用户第一次访问服务器的时候,没有携带id,服务器端会生成sessionid:session键值对,并原创 2022-03-29 07:30:00 · 1899 阅读 · 0 评论 -
SpringSecurity-9-实现通过手机短信进行认证功能
SpringSecurity-9-实现通过手机短信进行认证功能手机短信流程分析 手机号登录的时候是不需要密码登录的,而是通过短信验证码实现免密登录。具体步骤如下 :向手机发送验证码,第三方短信发送平台,如阿里云短信手机获取验证码后,在表单中输入验证码使用自定义过滤器SmsCodeValidateFilter短信校验通过后,使用自定义手机认证过滤器SmsCodeAuthenticationFilter校验手机号码是否存在自定义SmsCodeAuthenticationToken提供给SmsCodeAuthen原创 2022-03-28 07:30:00 · 846 阅读 · 0 评论 -
SpringSecurity-8-自动登录和注销功能实现
SpringSecurity-8-自动登录和注销功能实现自动登录的实现 当我们在登录某一个网站的时候,我们会使用账号密码进行登录,但是我们不想每一次关闭浏览器,我们不想每一次重新输入账号和密码,贴合用户的登录体验,给用户带来方便,我们使用自动登录功能,将登录信息保存在浏览器的cookie中,这样用户在下次访问的时候,自动实现校验并新建登录状态。但是这样也会给用户带来信息泄露的危险。自动登录流程 用户选择记住我登录成功后,会在服务端生成一个Cookie返回到浏览器,Cookie名字默认是remember-me原创 2022-03-27 13:59:34 · 1328 阅读 · 0 评论 -
SpringSecurity-7-自定义AuthenticationProvider实现图形验证码
SpringSecurity-7-自定义AuthenticationProvider实现图形验证码上一章节我们介绍了如何使用过滤器(Filter)实现图形验证,这是属于Servlet层面,比较简单容易理解。那么这次我们介绍SpringSecurity提供的另一种比较高端的实现图形化验证码,这就是AuthenticationProvider自定义认证。认证流程 Filter实现图形化验证码我们在SpringSecurity认证流程源码解析中介绍了SpringSecurity的认证流程其中介绍了系统的用户信息,原创 2022-03-26 20:24:17 · 1518 阅读 · 0 评论 -
SpringSecurity-6-基于Filter实现图形验证码
SpringSecurity-6-基于Filter实现图形验证码SpringSecurity中有多种方式实现图像验证码,使用自定义过滤器去处理验证码逻辑是最简单的方式,只要将过滤器添加到合适的位置,当登录的时候,对验证码进行校验,成功就放行,失败则抛出异常。图形验证流程 流程图如下使用kaptcha生成图形验证码 kaptcha是谷歌提供的一款开源验证码jar包,只需简单配置就可以生成图片,源码地址:https://github.com/penggle/kaptcha添加kaptcha依赖在项目的pom.x原创 2022-03-25 07:30:00 · 808 阅读 · 0 评论 -
SpringSecurity-5-自定义登录验证
SpringSecurity-5-自定义登录验证默认登录成功失败跳转页为什么自定义登录验证结果处理场景自定义登录成功的结果处理自定义登录失败的结果处理自定义权限访问异常结果处理默认登录成功失败跳转页 如果我们 登录成功,由接口AuthenticationSuccessHandler进行登录结果处理,默认会使用SimpleUrlAuthenticationSuccessHandler,是AuthenticationSuccessHandler的实现类,SimpleUrlAuthenticationSucces原创 2022-03-24 07:30:00 · 865 阅读 · 0 评论 -
SpringSecurity-4-认证流程源码解析
SpringSecurity-4-认证流程源码解析登录认证基本原理 Spring Security的登录验证核心过滤链如图所示请求阶段SpringSecurity过滤器链始终贯穿一个上下文SecurityContext和一个Authentication对象(登录认证主体)。只有请求主体通过某一个过滤器认证,Authentication对象就会被填充,如果验证通过isAuthenticated=true如果请求通过了所有的过滤器,但是没有被认证,那么在最后有一个FilterSecurityIntercepto原创 2022-03-23 07:30:00 · 360 阅读 · 0 评论 -
Sping Security-3-动态认证用户信息
Sping Security-3-动态认证用户信息概述项目准备添加依赖添加数据库配置创建user和权限表实体类实现两个实体类的Mapper添加@MapperScan注解UserDetailsService的实现重构configure(AuthenticationManagerBuilder auth)方法测试概述 我们前两节介绍的Spring Security的身份认证的用户和密码在启动服务器后自动生成、代码写死或者存储到内存中,但是在实际项目中需要从动态的数据库中获取用户信息进行身份认证。Spring S原创 2022-03-22 08:39:48 · 341 阅读 · 0 评论 -
Spring Security-2-表单认证
Spring Security-2-表单认证我们在地址小节介绍了Spring Security的HttpBasic基础认证模式,这个模式方法比较简单,不需要制作登录页面,使用范围较小。如果我们在一个完整的系统里面,登录页面也许我们自己设计,并且提供多种登录方式。这就需要使用Spring Security为我们提供的表单登录进行登录认证。项目代码准备 Controller层代码@Controllerpublic class TestController { &nb原创 2022-03-21 07:30:00 · 275 阅读 · 0 评论 -
Spring Security基础-1-HttpBasic基本认证登录
Spring Security基础-1-HttpBasic基本认证登录Spring Security简介 Spring Security的前身是AcegiSecurity,收入到Spring子项目以后改名为Spring Security。Spring Security的核心功能有两个认证和授权Authentication:**就是身份认证(简称认证)**,用来告诉系统你是谁的Authorization:**就是访问授权(简称授权)**,当系统指定你是谁以后,就会根据权限管理获取你应有的权限,告诉你可以干什么原创 2022-03-20 10:26:29 · 7192 阅读 · 0 评论