Spring Security
文章平均质量分 70
markix
什么问题,什么结果,预期结果?
展开
-
【Spring Security 系列】(一)理论篇,应用安全框架的核心问题
我们知道Spring Security是一个应用安全框架,能提供认证、授权能力。追本溯源,想要知道SpringSecurity各种设计和实现,最好是从源头出发,也就是了解`应用安全框架`需要做什么。谈到应用安全框架就离不开两个核心功能:认证(Authentication)、授权(Authorization)。.........原创 2022-08-08 10:00:00 · 214 阅读 · 0 评论 -
Spring Security 前后端分离(前端篇)
一个最基本的前后端分离并且有登录认证的项目。后续可以开发像用户管理、角色管理、菜单管理等后端功能,前端可以基于角色,将用户的菜单渲染出来等等。原创 2022-11-14 18:00:38 · 1330 阅读 · 0 评论 -
Spring Security 前后端分离
前后端分离指的就是前后端分离部署,前端 调用后端API,后端 返回 JSON格式数据,页面是由前端渲染并展示到浏览器中。Spring Security 涉及到的扩展点:登录成功处理:AuthenticationSuccessHandler登录失败处理:AuthenticationFailureHandler登出成功处理:LogoutSuccessHandler未登录处理:AuthenticationEntryPoint鉴权失败处理:AccessDeniedHandler原创 2022-11-14 16:57:43 · 3411 阅读 · 2 评论 -
Spring Security 自定义登录认证
Spring Security 自定义登录认证(扩展多种方式)原创 2022-10-28 10:23:46 · 1106 阅读 · 0 评论 -
Spring 对 OAuth 的实现及前世今生
Spring 对 OAuth 的实现,从最初的 Spring Security OAuth,到如今的 Spring Security 和 Spring Authorization Server原创 2022-08-16 09:30:00 · 687 阅读 · 1 评论 -
【Spring Security 系列】(六)入门案例中各组件的实现类
了解功能组件的默认实现,以及它们是如何通过配置作用到整个流程的。通过了解组件的配置,可以让我们知道如何自定义整个流程中的各个环节。原创 2022-08-15 09:30:00 · 320 阅读 · 0 评论 -
【Spring Security 系列】(五)完整的认证&鉴权流程
完整的认证&鉴权流程认证的入口就是登录,即 UsernamePasswordAuthenticationFilter ,其逻辑链路如下,体现了和底层抽象的关联...鉴权的拦截器为 FilterSecurityInterceptor,其逻辑链路如下...原创 2022-08-09 09:45:00 · 1403 阅读 · 0 评论 -
【Spring Security 系列】(四)高层级组件
供更高层次的抽象。使得框架更易于使用且可以灵活扩展。原创 2022-08-09 09:30:00 · 141 阅读 · 0 评论 -
【Spring Security 系列】(三)剖析基础组件之授权功能
通常"授权"也被称为"权限控制"(Access Control),为了便于理解,经常又称之为**鉴权。**鉴权需要在真正逻辑之前处理,整个流程就涉及:**权限信息的获取、判断是否有权限、权限不足的处理、匿名访问的处理。**注意,匿名访问不同于权限不足,**匿名访问**指的是没有经过认证就访问接口,**权限不足**指的是用户通过认证了,但是没有访问该接口的权限。...原创 2022-08-07 17:24:42 · 321 阅读 · 0 评论 -
【Spring Security 系列】(二)剖析基础组件之认证功能
谈到应用安全框架就离不开两个核心功能:认证(Authentication)、授权(Authorization)。常用的认证方式就是通过用户名和密码进行登录。整个流程下来,就需要不同的功能组件配合,包括:登录接口、用户信息查询、密码验证、认证成功处理、认证失败处理、登出接口、登出失败处理。...原创 2022-08-07 17:15:48 · 291 阅读 · 0 评论 -
【Spring Security 系列】(一)入门篇,快速搭建一个安全Web服务
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。 它是保护基于 Spring 的应用程序的事实标准。Spring Security 是一个专注于为 Java 应用程序提供身份验证和授权的框架。像所有 Spring 项目一样,Spring Security 的真正强大之处在于它可以轻松扩展以满足自定义需求。...原创 2022-08-07 16:54:21 · 1250 阅读 · 1 评论 -
【Spring Authorization Server 系列】(一)入门篇,快速搭建一个授权服务器
Spring Authorization Server是一个框架,提供了OAuth2.1和OpenIDConnect1.0规范以及其他相关规范的实现。它建立在SpringSecurity之上,为构建OpenIDConnect1.0IdentityProviders和OAuth2AuthorizationServer产品提供安全、轻量级和可定制的基础。旧版的框架是,该框架已停止维护。SpringSecurityOAuth2认证/授权服务器的前世今生。...............原创 2022-08-01 00:50:55 · 10528 阅读 · 16 评论 -
Swagger添加额外接口
通过 ApiListingScannerPlugin 机制实现。示例由于 Spring Security 的登录、登出接口是通过Filter实现,导致 Swagger 无法获取其信息。这里手动将登录、登出接口注册到Swagger中,在Swagger-UI才能展示,方便调用。/** * 由于 Spring Security 的登录、登出接口是通过Filter实现,导致 Swagger 无法获取其信息。 * 这里手动将登录、登出接口注册到Swagger中,在Swagger-UI才能展示,方便调用。原创 2021-08-17 23:38:52 · 2832 阅读 · 10 评论 -
Spring Security OAuth2认证/授权服务器的前世今生
原有的授权服务器(Authorization Server)由 Spring Security OAuth 提供,通过 @EnableAuthorizationServer 接口开启授权服务。maven依赖如下:<dependency> <groupId>org.springframework.security.oauth.boot</groupId> <artifactId>spring-security-oauth2-autoconfig原创 2021-08-10 23:33:40 · 1236 阅读 · 1 评论 -
spring security 多级认证/远程认证/多provider
需求场景实现其他系统的用户能够登录到系统B之前系统A与系统B并无关联,简单说就是分别有一套用户体系,各自有各自的登录功能。现在需要让系统A的用户使用账号密码也能登录到系统B。实现要点:如何区分当前的登录用户是系统A的还是系统B的?因为不同的用户需要到对应的系统做验证。可以通过用户名的特殊标识、配置(不太现实)、加载本地所有账号、前端传用户类型等等方式来判断当前的登录用户是系统A...原创 2020-05-02 20:41:37 · 1611 阅读 · 0 评论 -
spring security 代码登录,仿单点登录
项目需要实现仿单点登录,即用户在系统A登录后,当切换到系统B时,会携带一个token。系统B需要去验证token的有效性,当token有效,则相当于用户在系统B已登录,session各自系统管理。实现的前提:由于两个系统的数据库不同,那么需要系统A的用户和系统B的用户需要有一定的关联,比如使用用户名来关联,用户名一样则表示同个用户。这样,当用户在系统A登录后,跳转到系统B,系统B才知道要登录哪...原创 2020-04-30 00:13:24 · 564 阅读 · 0 评论 -
新线程中获取Spring Security认证信息
在做一些耗时的操作逻辑时,经常会通过开启新线程进行处理。但是,直接通过new Thread()/new Runnable() 方式创建的线程中没有用户的认证信息(即SecurityContextHolder.getContext().getAuthentication() 返回的是 null)。这是由于 认证信息 是在请求到达后台,经由 Security 的一系列过滤器后将 认证信息写入到 线程本地变量中。所以,新开的线程并没有执行过滤器的逻辑,自然没有认证信息。既然不会自动设置认证信息,那我们只有手动原创 2020-05-24 16:59:50 · 1477 阅读 · 1 评论