
SpringSecurity
文章平均质量分 92
SpringSecurity
简明编程
优快云简明编程,掘金白嫖圣手fly,其他地方均不是本人,若发现他人盗用本人原创文章请联系我,各种资料均免费,需要请私信
展开
-
SpringSecurity系列——安全Http响应头day8-2(源于官网5.7.2版本)
}如果您不想添加默认值并希望明确控制应该使用的内容,则可以禁用默认值以下配置指定 Spring Security 不应再指示浏览器阻止内容} }当然我们也可以自定义一些Header,前后端分离里你需要与前后端约定好,这样以下配置将标头添加到响应中} }...原创 2022-08-12 22:00:11 · 1631 阅读 · 0 评论 -
SpringSecurity系列——会话管理,CSRFday8-1(源于官网5.7.2版本)
CSRF攻击的根源在于浏览器默认的身份验证机制(自动携带当前网站的Cookie信息),这种机制虽然可以保证请求是来自用户的某个浏览器,但是无法确保这请求是用户授权发送。当前端请求到达后,将请求携带的CSRF令牌信息和服务端中保存的令牌进行对比,如果两者不相等,则拒绝掉该HTTP请求。将CSRF放入到cookie中,在清求时获取cookie中的CSRF令牌一并提交即可,其实最直接的实现方式是设置到header中即可,这样是否方便,反正每次令牌都会变化即使你的请求被获取也不会有这样的问题。......原创 2022-07-30 10:52:35 · 730 阅读 · 3 评论 -
SpringSecurity系列——RememberMe实战day7-3(源于官网5.7.2版本)
在前后端分离的生态下,前端后端并非一个系统,所以相应来说并没有传统Web那么简单,而且也不需要我们配置rememberMe,而是采用令牌和前端的共同设置,但实际上实现的思想是和。,这种实现形式更加安全,在重新获取认证或系统自动重新认证时会更新存储的在Cookie中的remember-me,且解码出来不包含用户名,达到更高的安全性。显然是一种基于内存的实现,如果重启程序我们就会再次进行重新认证,实际上常用的方式是基于数据库的实现。如果你没有选择记住我的勾选1分钟后(默认30分钟)就会让你重新认证。...原创 2022-07-29 23:51:16 · 1035 阅读 · 5 评论 -
SpringSecurity系列——用户认证后的数据获取,跨域解决方案day7-2(源于官网5.7.2版本)
CORS(Cross-OriginResourceSharing)是由W3C制定的一种跨域资源共享技术标准,其目的就是为了解决前端的跨域请求。在JavaEE开发中,最常见的前端跨域请求解决方案是早期的JSONP,但是JSONP只支持GET请求,这是一个很大的缺陷,而CORS则支特多种HTTTP请求方法,也是目前主流的跨域解决方案。CORS中新增了一组HTTP请求头字段,通过这些字段,服务器告诉浏览器,那些网站通过浏览器有权限访问哪些资源。http8081。...原创 2022-07-29 05:42:53 · 508 阅读 · 0 评论 -
SpringSecurity系列——密码存储加密策略day7-1(源于官网5.7.2版本)
Spring Security 的 PasswordEncoder 接口用于执行密码的单向转换,以允许安全地存储密码。 鉴于 PasswordEncoder 是一种单向转换,当密码转换需要双向转换时(即存储用于向数据库进行身份验证的凭据),则不打算这样做。 通常 PasswordEncoder 用于存储需要在身份验证时与用户提供的密码进行比较的密码多年来,存储密码的标准机制不断发展。 一开始,密码以纯文本形式存储。 密码被认为是安全的,因为数据存储密码保存在访问它所需的凭据中。 但是,恶意用户能够原创 2022-07-28 04:54:24 · 823 阅读 · 0 评论 -
SpringSecurity系列——访问控制之基于方法的控制day6-3(源于官网5.7.2版本)
SpringSecurity的@PreAuthorize、@PostAuthorize、@PreFilter和@PostFilter提供了丰富的基于表达式的支持。如果您需要自定义处理表达式的方式,您可以公开一个自定义MethodSecurityExpressionHandler,就像这样}}方法授权是方法前授权和方法后授权的组合。方法前授权是在调用方法之前执行的。}}}...原创 2022-07-27 22:03:06 · 804 阅读 · 0 评论 -
SpringSecurity系列——其他的权限控制,基于access表达式的权限控制day6-2(源于官网5.7.2版本)
当然我们也可以自定义access表达式来完成自定义的权限控制}}原创 2022-07-27 06:27:41 · 495 阅读 · 0 评论 -
SpringSecurity系列——访问权限判断(权限,角色,IP),权限不足(403)处理day6-1(源于官网5.7.2版本)
为了你对本文的内容不产生疑惑请先看下方说明当我们无权限时,SpringSecurity会给我们返回403的空白页面,实际上对用户是不友好的,用户不关心处理结果,只关心自己能否访问,所以自定义权限不足的时候的处理显得十分重要,在前后端分离的今天,其实我们只需要返回给前端json数据即可data.put("msg","用户权限不足!");}}...原创 2022-07-26 04:52:26 · 1172 阅读 · 0 评论 -
SpringSecurity系列——自定义登录退出成功处理day5-3(源于官网5.7.2版本)
根据上方官方文档的解释我们在前后端分离的项目中,并不需要用户退出后让后端进行重定向,而是要让后端提供给前端一个json数据以确定退出成功而且我们只要对LogoutSuccessHandler接口进行实现即可data.put("msg","退出登录成功");}}......原创 2022-07-26 03:10:38 · 1419 阅读 · 0 评论 -
SpringSecurity系列——身份验证事件:自定义成功、失败day5-2(源于官网5.7.2版本)
技术版本jdk175.7.2SpringBoot2.7.2需要注册为组件(@Component)使用注解实现事件监听}}}原创 2022-07-25 18:29:19 · 1478 阅读 · 0 评论 -
SpringSecurity系列——登录流程修改day5-1(源于官网5.7.2版本)
技术版本jdk175.7.2SpringBoot2.7.2}原创 2022-07-24 10:20:32 · 829 阅读 · 0 评论 -
SpringSecurity系列——简单配置上手day4-3(源于官网5.7.2版本)
本片开启SpringSecurity入门上手实例,基于官方5.7.2的最新稳定版,springboot2.7.2版,jdk17,我对官方实例进行了一定程度上的修改,增加了其他一些实例代码。原创 2022-07-23 11:30:44 · 1111 阅读 · 0 评论 -
SpringSecurity系列——授权Http请求day4-2(源于官网5.7.2版本)
源于官方最新5.7.2文档,若你觉得官方文档阅读起来很枯燥,内容复杂,我提供了解析概括在每个部分的结尾,我对官方文档的内容做了一些改变,实例代码我会在后续进行更新,请查看如SpringSecurity系列——认证架构实例代码的文章但是如果你有能力,还是推荐直接阅读官方文档。...原创 2022-07-22 22:01:50 · 1566 阅读 · 0 评论 -
SpringSecurity系列——授权架构day4-1(源于官网5.7.2版本)
源于官方最新5.7.2文档,若你觉得官方文档阅读起来很枯燥,内容复杂,我提供了解析概括在每个部分的结尾,我对官方文档的内容做了一些改变,实例代码我会在后续进行更新,请查看如SpringSecurity系列——认证架构实例代码的文章但是如果你有能力,还是推荐直接阅读官方文档显然,您还可以实现自定义AuthorizationManager,并且您可以在其中放入几乎任何您想要的访问控制逻辑。它可能特定于您的应用程序(与业务逻辑相关),或者它可能实现一些安全管理逻辑。...原创 2022-07-22 21:37:57 · 1302 阅读 · 0 评论 -
SpringSecurity系列——记住我(remember me)day3-3(源于官网5.7.2版本)
源于官方最新5.7.2文档,若你觉得官方文档阅读起来很枯燥,内容复杂,我提供了解析概括在每个部分的结尾,我对官方文档的内容做了一些改变,实例代码我会在后续进行更新,请查看如SpringSecurity系列——认证架构实例代码的文章但是如果你有能力,还是推荐直接阅读官方文档。...原创 2022-07-20 23:33:14 · 339 阅读 · 0 评论 -
SpringSecurity系列——持久认证(Persisting Authentication),会话管理day3-2(源于官网5.7.2版本)
源于官方最新5.7.2文档,若你觉得官方文档阅读起来很枯燥,内容复杂,我提供了解析概括在每个部分的结尾,我对官方文档的内容做了一些改变,实例代码我会在后续进行更新,请查看如SpringSecurity系列——认证架构实例代码的文章但是如果你有能力,还是推荐直接阅读官方文档。......原创 2022-07-20 22:36:22 · 1126 阅读 · 0 评论 -
SpringSecurity系列——用户名密码登录day3-1(源于官网5.7.2版本)
源于官方最新5.7.2文档,若你觉得官方文档阅读起来很枯燥,内容复杂,我提供了解析概括在每个部分的结尾,我对官方文档的内容做了一些改变,实例代码我会在后续进行更新,请查看如SpringSecurity系列——认证架构实例代码的文章但是如果你有能力,还是推荐直接阅读官方文档//...}...原创 2022-07-20 15:54:42 · 1145 阅读 · 0 评论 -
SpringSecurity系列——认证(Authentication)架构day2-3(源于官网5.7.2版本)
源于官方最新5.7.2文档,若你觉得官方文档阅读起来很枯燥,内容复杂,我提供了解析概括在每个部分的结尾,我对官方文档的内容做了一些改变,实例代码我会在后续进行更新,请查看如SpringSecurity系列——认证架构实例代码的文章但是如果你有能力,还是推荐直接阅读官方文档AbstractAuthenticationProcessingFilter用作验证用户凭据的基本过滤器。从HttpServletRequest创建一个身份验证以进行身份验证。创建的Authentication类型取决于。...原创 2022-07-20 06:35:42 · 937 阅读 · 0 评论 -
SpringSecurity系列——授权与认证概述,安全架构day2-2(源于官网5.7.2版本)
简单来说就是授予用户某一个权限让用户能够通过这个权限使用某个对应的服务验证访问系统的用户身份。原创 2022-07-20 04:40:26 · 1790 阅读 · 0 评论 -
SpringSecurity系列——基于SpringBoot2.7的登录接口(内有惊喜)day2-1
这个JWT工具类是我自己写的,具体怎么使用都在README.md中了高度封装使用简单git@gitee.com:giteeforsyf/jjwtutil.gitSpringBoot版本:2.7SpringSecurity版本:5.4+注:SpringSecurityConfigurationAdapter已过时在准备工作中我们需要准备数据库、实体类、配置、工具类等数据库设计如图:实体类UserUserMapperLoginServiceResultUtil统一封装返回LoginP原创 2022-06-19 16:22:30 · 5257 阅读 · 13 评论 -
SpringSecurity系列——简单自定义登录流程问题解析day1-4
真实项目中密码不使用明文,而是经过加密的而默认规定使用PasswordEncoder要求数据库中的密码格式为:,会通过id来判断密码的加密方式,然而我们一般不会采用这种方式,所以我们会对PasswordEncoder进行替换为SpringSecurity中提供的我看了很多文章,个人认为要么看官网的解释,要么大家看这篇文章:Spring Security系列教程22–Spring Security中的密码加密——from 一一哥Sun我们开发时进行密码加密,可用的加密手段有很多,比如对称加密、非对称加密、信原创 2022-06-19 11:43:10 · 575 阅读 · 0 评论 -
SpringSecurity系列——简单自定义登录流程day1-3
SpringSecurity的原理其实是个过滤器链,其内部包含了各式各样功能各异的过滤器,通过这些过滤器,对消息进行拦截、放行、处理操作这里你可以看到filters中的共计16个过滤器了2.编写yaml3.编写entity,mapperUserUserMapper4.自定义登录表单对象实现UserDetails接口5.自定义UserDetailsServiceImpl实现UserDetailsService6.修改数据库密码添加{noop}表示明文存储访问使用数据库中的用户原创 2022-06-19 09:53:16 · 1194 阅读 · 0 评论 -
SpringSecurity系列——JWT(jjwt)day1-2
jwt(JSON Web Tokens)JSON Web Token (JWT) 是一个开放标准 (RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息作为 JSON 对象。 此信息可以验证和信任,因为它是数字签名的。 JWT 可以使用密钥(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。https://jwt.io/从这张图我们可以看出来jjwt是在Java中支持最好的,所以我们直接学这个http协议本身是一种无状态的协议,而这就意味着如原创 2022-06-17 21:03:43 · 1461 阅读 · 0 评论 -
SpringSecurity系列——概述day1-1
总的来说,SpringSecurity是Spring全家桶中的安全框架,有丰富的功能,十分强大,中大型项目都会选用,我们常用来进行认证和授权相关功能简单来说就是授予用户某一个权限让用户能够通过这个权限使用某个对应的服务验证访问系统的用户身份2.Controller测试3.访问localhost8080/demo若你看到这个默认界面说明成功引入如下我们可以在控制台看到密码,而用户名就是user输入用户名密码后就能成功访问只要访问logout就能直接退出登录(http://localhost:80原创 2022-06-16 12:55:42 · 552 阅读 · 0 评论