spring security
文章平均质量分 88
小兔爷
记录一点自己的经历和过程
展开
-
Spring security的基础用法(普通的用户认证和授权)
1.背景Spring Security是一套成熟的安全框架,充分利用了依赖注入和AOP的实现安全功能。安全框架包含两大部分,一个是认证,一个是授权。2.原理其实Spring Security的功能实现主要是依靠DelegatingFilterProxy这一个多个过滤器来实现的。我们需要把这个过滤器注册到web容器上。3.内容1.如何配置自己需要的信息?肯定是需要一个配置类,...原创 2018-07-16 22:50:01 · 3198 阅读 · 0 评论 -
spring security oauth2 自动刷新续签token (refresh token)
1.引言前提:了解spring security oauth2的大致流程(对过滤器的内容有一定的了解) 主要思路:首先用过期token访问受拦截资源 认证失败返回401的时候调用异常处理器 通过异常处理器结合refresh_token进行token的刷新 刷新成功则通过请求转发(request.getRequestDispatcher)的方式再次访问受拦截资源2.源码分析核心过滤器...原创 2018-10-20 14:56:38 · 61015 阅读 · 24 评论 -
spring security oauth2 授权服务器负载均衡解决方案
1.引言本文所讲的内容是以spring security oauth2 与 spring cloud 为基础的,在微服务的构建中,将授权服务器注册在eureka上面。当客户端访问资源服务器的时候必须携带token进行认证和授权。如果我们在资源服务器上直接硬编码授权服务器地址,那么我们是不能够搭载高负载的授权服务器的,所以我们需要一个可以负载均衡的RestTemplate进行负载调用授权服务器。...原创 2018-10-19 20:06:44 · 4453 阅读 · 4 评论 -
Spring Security OAUTH2 获取用户信息
1.user-info-uri 与 token-info-uri作用:二者皆是为了check token,并且顺带返回了用户信息。配置信息位置在资源服务器上。解释:下面代码列举的都是token-info-uri,user-info-uri不解释。user-info-uri原理是在授权服务器认证后将认证信息Principal通过形参绑定的方法通过URL的方式获取用户信息。当然它也有配套的Us...原创 2018-08-19 01:15:48 · 78891 阅读 · 23 评论 -
Spring Security 访问控制处理器 -(五)
要想实现 Spring Security 在碰到登录失败或者异常等等的时候需要返回 JSON 格式串,只需重写以下几个处理器(JavaConfig)http.exceptionHandling().accessDeniedHandler() http.exceptionHandling().authenticationEntryPoint() http.formLogin().succes...转载 2018-07-22 16:57:41 · 683 阅读 · 0 评论 -
Spring Security动手实现一个IP_Login-(四)
在开始这篇文章之前,我们似乎应该思考下为什么需要搞清楚Spring Security的内部工作原理?按照第二篇文章中的配置,一个简单的表单认证不就达成了吗?更有甚者,为什么我们不自己写一个表单认证,用过滤器即可完成,大费周章引入Spring Security,看起来也并没有方便多少。对的,在引入Spring Security之前,我们得首先想到,是什么需求让我们引入了Spring Security...转载 2018-07-21 23:22:26 · 855 阅读 · 0 评论 -
Spring Security核心过滤器源码分析-(三)
前面的部分,我们关注了Spring Security是如何完成认证工作的,但是另外一部分核心的内容:过滤器,一直没有提到,我们已经知道Spring Security使用了springSecurityFillterChian作为了安全过滤的入口,这一节主要分析一下这个过滤器链都包含了哪些关键的过滤器,并且各自的使命是什么。4 过滤器详解4.1 核心过滤器概述由于过滤器链路中的过滤较多,即...转载 2018-07-21 17:14:30 · 1790 阅读 · 0 评论 -
Spring Security核心配置解读-(二)
3 核心配置解读3.1 功能介绍这是Spring Security入门指南中的配置项:@Configuration@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSe...转载 2018-07-21 10:27:18 · 797 阅读 · 0 评论 -
Spring Security 源码解析-核心组件(一)
1 核心组件这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。1.1 SecurityContextHolderSecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保...转载 2018-07-20 23:47:50 · 623 阅读 · 1 评论 -
Spring Security 与 OAuth2(完整案例)
Demo 流程:使用 OAuth2 密码授权方式提供令牌 资源服务器1(也为客户端)提供登录接口,资源所有者(用户)通过将个人账号密码提供给 资源服务器1,资源服务器1 通过该信息向授权服务器获取令牌 资源服务器1(也为客户端)通过令牌(其中包含了客户端、用户等信息)访问自身受保护的资源(需要权限才能查看的资源) 资源服务器2(也可资源服务器)不包含登录接口,但其提供了某些受保护的资源(...转载 2018-07-23 22:25:02 · 1112 阅读 · 0 评论 -
Spring Security 与 OAuth2(资源服务器)
resource-server(资源服务器)资源服务器要访问资源服务器受保护的资源需要携带令牌(从授权服务器获得) 客户端往往同时也是一个资源服务器,各个服务之间的通信(访问需要权限的资源)时需携带访问令牌 资源服务器通过 @EnableResourceServer 注解来开启一个 OAuth2AuthenticationProcessingFilter 类型的过滤器 通过继承 Re...转载 2018-07-23 21:00:10 · 4248 阅读 · 0 评论 -
Spring Security 与 OAuth2(授权服务器)
authrization-server(授权服务器)授权服务配置 配置一个授权服务,需要考虑 授权类型(GrantType)、不同授权类型为客户端(Client)提供了不同的获取令牌(Token)方式,每一个客户端(Client)都能够通过明确的配置以及权限来实现不同的授权访问机制,也就是说如果你提供了一个 “client_credentials” 授权方式,并不意味着其它客户端就要采用...转载 2018-07-23 17:01:52 · 14447 阅读 · 1 评论 -
Spring Security Oauth2 授权源码解析(二)
上一篇文章中我们介绍了获取token的流程,这一篇重点分析一下,携带token访问受限资源时,内部的工作流程。@EnableResourceServer与@EnableAuthorizationServer还记得我们在第一节中就介绍过了OAuth2的两个核心概念,资源服务器与身份认证服务器。我们对两个注解进行配置的同时,到底触发了内部的什么相关配置呢?上一篇文章重点介绍的其实是与身份认...转载 2018-07-23 11:51:24 · 3236 阅读 · 0 评论 -
Spring Security Oauth2 源码解析(一)
更新注意:-----------------------------------------------------------------------------springboot 2.0使用spring-security-oauth2的迁移指南有朋友使用了 springboot2.0 之后发现原来的demo不能用了,我调试了下,发现springboot2.0和spring5的改动...转载 2018-07-23 11:09:29 · 5030 阅读 · 2 评论 -
spring-security 与 jwt
1.前提已经了解了jwt的内容 已经了解了oauth2的内容 已经了解了spring-security基础知识 有部分http协议的基础知识2.为什么用jwt用jwt主要解决前后端分离导致的2个问题跨域csrf问题前提:前后端不分离时候解决跨域问题可以用token解决或者corf解决,前后端分离后由于访问后台本身就是跨域(ajax)所以解决方案失效解决:jwt本身就是一个...转载 2018-10-20 14:57:59 · 6284 阅读 · 1 评论