![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring security
文章平均质量分 78
码农小胖哥
资深架构师,Spring Authorization Server Contributor
展开
-
Spring Authorization Server 0.3.0 发布,官方文档正式上线
基于OAuth2.1的授权服务器Spring Authorization Server 0.3.0今天正式发布,在本次更新中有几大亮点。文档正式上线Spring Authorization Server 的文档随着本次更新正式发布了,目前已经可以在Spring官网访问。地址是:https://spring.io/projects/spring-authorization-server该文档目前包含了以下几个重要的模块:项目概述:简介和功能列表。获得帮助:示例、常见问题和issues。入门原创 2022-05-26 10:39:49 · 3043 阅读 · 0 评论 -
The request was rejected because the URL contained a potentially malicious String “;“问题的正确解决姿势
问题的复盘首先这个问题出现的时机是,当用户访问特定的连接(如http://localhost/index)时没有权限,被重定向到登录页面http://localhost/login。为了登录成功后再跳转到目标访问的页面http://localhost/index,Spring Security会在Cookie中存一个信息,标记一为一个jsessionid。重定向时Servlet容器,也就是tomcat之类的会把jsessionid编码到重定向url,也就是http://localhost/login;js原创 2022-05-12 12:09:57 · 20735 阅读 · 4 评论 -
32-Spring Authorization Server 0.2.3 的变化
很快啊Spring Authorization Server又发新版本了,现在的版本是0.2.3。本次都有什么改动呢?我们来了解一下。0.2.3版本特性本次更新的新特性不少。为公开客户端提供默认的设置根据RFC6479,包含授权码(authorization_code)授权并且客户端认证方式ClientAuthenticationMethod只有一种,为none的客户端都是公开(Public)客户端,反之就是机密(Confidential)客户端。在0.2.3中,为公开的客户端提供了客户端默认配置原创 2022-03-25 18:30:40 · 2399 阅读 · 4 评论 -
Spring Security 实战干货:分布式对象SharedObject
1. 前言在上一篇我们对AuthenticationManager的初始化的细节进行了分析,其中里面有一段代码引起了不少同学的注意:ApplicationContextcontex...原创 2021-01-28 09:26:52 · 1477 阅读 · 0 评论 -
Spring Security 实战干货: 401和403状态
1. 前言最近几篇我对Spring Security中用户认证流程进行了分析,同时在分析的基础上我们实现了一个验证码登录认证的实战功能。当认证失败后交给了AuthenticationFa...原创 2020-07-27 07:50:00 · 5611 阅读 · 0 评论 -
请不要再使用判断进行参数校验了
1. 前言因为网络传输的不可靠性,以及前端数据控制的可篡改性,后端的参数校验是必须的,应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。2. 数据校验的痛点为了保证数据语...原创 2020-07-25 18:52:13 · 2218 阅读 · 0 评论 -
Spring Security 实战干货:用户是如何进行登录认证的
1. 前言我们上一篇介绍了UsernamePasswordAuthenticationFilter的工作流程,留下了一个小小的伏笔,作为一个Servlet Filter应该存在一个doF...原创 2020-07-21 07:57:00 · 1722 阅读 · 0 评论 -
Spring Security 实战干货:图解Spring Security的过滤器体系
欢迎加入[微信圈子]程序员交流圈交流编程经验。1. 前言我在Spring Security 实战干货:内置 Filter 全解析对Spring Security的内置过滤器进行罗列...原创 2020-07-02 07:50:00 · 3702 阅读 · 2 评论 -
Spring Security 实战干货:动态权限控制(上)思路
1. 前言欢迎阅读 Spring Security 实战干货系列[1]文章 。截止目前已经对 基于配置 和 基于注解 的角色访问控制进行了讲解。对于一些小项目来说基本是够用的。然而如果希望运营管理人员能够动态的配置和分配权限,以上两种方式显然是满足不了需求的。接下来我们来一起探讨一下思路。2. 动态权限同样依赖 RBAC我们依然应该在 RBAC 及其变种的基础上构建动...原创 2019-11-28 07:00:00 · 1666 阅读 · 4 评论 -
Spring Security 实战干货:SecurityContext相关的知识
1. 前言欢迎阅读 Spring Security 实战干货[1] 系列文章 。在前两篇我们讲解了 基于配置[2] 和 基于注解[3] 来配置访问控制。今天我们来讲一下如何在接口访问中检索当前认证用户信息。我们先讲一下具体的场景。通常我们在认证后访问需要认证的资源时需要获取当前认证用户的信息。比如 “查询我的个人信息”。如果你直接在接口访问时显式的传入你的 UserID 肯定是不合适的...原创 2019-11-22 23:00:42 · 2984 阅读 · 0 评论 -
Spring Security 实战干货:基于注解的接口角色访问控制
1. 前言欢迎阅读 Spring Security 实战干货[1] 系列文章 。在上一篇 基于配置的接口角色访问控制[2] 我们讲解了如何通过 javaConfig 的方式配置接口的角色访问控制。其实还有一种更加灵活的配置方式 基于注解 。今天我们就来探讨一下。DEMO 获取方式在文末。2. Spring Security 方法安全Spring Security 基于注解的安全...原创 2019-11-19 06:40:00 · 3435 阅读 · 2 评论 -
Spring Security 实战干货:基于配置的接口角色访问控制
1. 前言欢迎阅读 Spring Security 实战干货 系列文章 。对于受限的访问资源,并不是对所有认证通过的用户开放的。比如 A 用户的角色是会计,那么他就可以访问财务相关的资源。B 用户是人事,那么他只能访问人事相关的资源。我们在 一文中也对基于角色的访问控制的相关概念进行了探讨。在实际开发中我们如何对资源进行角色粒度的管控呢?今天我来告诉你 Spring Security 是如何来...原创 2019-11-14 09:34:38 · 4207 阅读 · 1 评论 -
Spring Security 实战干货: RBAC权限控制概念的理解
1. 前言欢迎阅读 Spring Security 实战干货系列文章 。截止到上一篇我们已经能够简单做到用户主体认证到接口的访问控制了,但是依然满足不了实际生产的需要。 如果我们需要一个完整的权限管理系统就必须了解一下 RBAC (Role-Based Access Control 基于角色的访问控制) 的权限控制模型。2. 为什么需要 RBAC?在正式讨论 RBAC 模型之前,我们要思考...原创 2019-11-11 17:13:54 · 3977 阅读 · 0 评论 -
Spring Security 实战干货:使用 JWT 认证访问接口
1. 前言欢迎阅读Spring Security 实战干货系列。之前我讲解了如何编写一个自己的 Jwt 生成器以及如何在用户认证通过后返回 Json Web Token 。今天我们来看看如何在请求中使用 Jwt 访问鉴权。DEMO 获取方法在文末。2. 常用的 Http 认证方式我们要在 Http 请求中使用 Jwt 我们就必须了解 常见的 Http 认证方式。2.1 HTTP Basi...原创 2019-11-08 02:05:26 · 3189 阅读 · 5 评论 -
Spring Security 实战干货:自定义异常处理
1. 前言最近实在比较忙,很难抽出时间来继续更 Spring Security 实战干货系列。今天正好项目中 Spring Security 需要对认证授权异常的处理,就分享出来吧 。2. Spring Security 中的异常Spring Security 中的异常主要分为两大类:一类是认证异常,另一类是授权相关的异常。2.1 AuthenticationExceptionAuth...原创 2019-11-07 00:08:38 · 2640 阅读 · 1 评论 -
Spring Security 实战干货: 登录成功后返回 JWT Token
1. 前言欢迎阅读 Spring Security 实战干货 系列文章,上一文 我们实现了 JWT 工具。本篇我们将一起探讨如何将 JWT 与 Spring Security 结合起来,在认证成功后不再跳转到指定页面而是直接返回 JWT Token 。 本文的DEMO 可通过文末的方式获取2. 流程JWT 适用于前后端分离。我们在登录成功后不在跳转到首页,将会直接返回 JWT Token ...原创 2019-10-29 12:40:15 · 5295 阅读 · 4 评论 -
手把手教你实现JWT Token
1. 前言Json Web Token(JWT) 近几年是前后端分离常用的Token技术,是目前最流行的跨域身份验证解决方案。你可以通过文章JWT。今天我们来手写一个通用的JWT服务。DEMO获取方式在文末,实现在jwt相关包下2. spring-security-jwtspring-security-jwt是Spring Security Crypto提供...原创 2019-10-26 09:31:08 · 3354 阅读 · 6 评论 -
Spring Security 实战干货:实现自定义退出登录
1. 前言上一篇对 Spring Security 所有内置的 Filter 进行了介绍。今天我们来实战如何安全退出应用程序。2. 我们使用 Spring Security 登录后都做了什么这个问题我们必须搞清楚!一般登录后,服务端会给用户发一个凭证。常见有以下的两种:基于 Session 客户端会存 cookie 来保存一个 sessionId ,服务端存一个 Session 。...原创 2019-10-23 18:19:44 · 5012 阅读 · 0 评论 -
Spring Security 实战干货:必须掌握的一些内置 Filter
1. 前言上一文我们使用 Spring Security 实现了各种登录聚合的场面。其中我们是通过在 UsernamePasswordAuthenticationFilter 之前一个自定义的过滤器实现的。我怎么知道自定义过滤器要加在 UsernamePasswordAuthenticationFilter 之前。我在这个系列开篇说了 Spring Security 权限控制的一个核心关键就...原创 2019-10-22 20:55:52 · 9786 阅读 · 1 评论 -
Spring Boot 2 实战:根据条件来自动配置不同逻辑的Bean
1. 前言我们经常会有根据条件来加载不同的接口。比如你查询目录下文件列表, Windows 下你会用 CMD 的 dir 命令,而 Linux 下你会使用 ls 命令。 熟悉 Spring Boot 自动配置的也知道 Spring Boot 能根据不同的实际情况启用不同的配置。这就是@Conditional注解在发挥作用。该注解指定了在什么条件下创建 Bean 进行配置。2. @Condi...原创 2019-10-21 10:58:49 · 1962 阅读 · 0 评论 -
Spring Security 实战干货:玩转自定义登录
1. 前言前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证的第一步就是登录。今天我们要通过对 Spring Security 的自定义,来设计一个可扩展,可伸缩的 form 登录功能。2. form 登录的流程下面是 fo...原创 2019-10-18 00:17:01 · 2532 阅读 · 5 评论 -
Spring Security 实战干货:自定义配置类入口WebSecurityConfigurerAdapter
1. 前言今天我们要进一步的的学习如何自定义配置 Spring Security 我们已经多次提到了 WebSecurityConfigurerAdapter ,而且我们知道 Spring Boot 中的自动配置实际上是通过自动配置包下的 SecurityAutoConfiguration 总配置类上导入的 Spring Boot Web 安全配置类 SpringBootWebSecurity...原创 2019-10-16 13:42:20 · 8886 阅读 · 3 评论 -
Spring Security 实战干货:路径Uri中的 Ant 风格
1. 前言我们经常在读到一些文章会遇到uri 支持 Ant 风格 ,而且这个东西在 Spring MVC 和 Spring Security 中经常被提及。这到底是什么呢?今天我们来学习了解一下。这对我们学习 Spring MVC 和 Spring Security 十分必要。2. Ant 风格说白了 Ant 风格就是一种路径匹配表达式。主要用来对uri的匹配。其实跟正则表达式作用是一样的...原创 2019-10-15 13:12:13 · 2140 阅读 · 0 评论 -
Spring Security 实战干货:Spring Boot 中的 Spring Security 自动配置初探
1. 前言我们在前几篇对 Spring Security 的用户信息管理机制,密码机制进行了探讨。我们发现 Spring Security Starter相关的 Servlet 自动配置都在spring-boot-autoconfigure-2.1.9.RELEASE(当前 Spring Boot 版本为2.1.9.RELEASE) 模块的路径org.springframework.boot....原创 2019-10-14 17:36:12 · 2439 阅读 · 0 评论 -
Spring Security 实战干货:如何保护用户密码
1. 前言上一文(https://www.felord.cn)我们对Spring Security中的重要用户信息主体UserDetails进行了探讨。中间例子我们使用了明文密码,规则是通过对密码明文添加{noop}前缀。那么本节将对 Spring Security 中的密码编码进行一些探讨。2. 不推荐使用md5首先md5 不是加密算法,是哈希摘要。以前通常使用其作为密码哈希来保护密码。...原创 2019-10-11 16:45:48 · 2028 阅读 · 0 评论 -
Spring Security 实战干货:用户信息UserDetails相关入门
1. 前言前一篇介绍了 Spring Security 入门的基础准备。从今天开始我们来一步步窥探它是如何工作的。我们又该如何驾驭它。请多多关注公众号: Felordcn 。本篇将通过 Spring Boot 2.x 来讲解 Spring Security 中的用户主体UserDetails。以及从中找点乐子。2. Spring Boot 集成 Spring Security...原创 2019-10-09 16:27:43 · 5519 阅读 · 2 评论