
Spring Security
文章平均质量分 57
Spring Security
ywb201314
兵法有言,知己知彼,百战不殆
展开
-
一文搞懂SpringSecurity---[Day05]anyRequest,antMatcher,regexMatchers,mvcMatchers详解
在Spring Security的配置类中配置 .servletPath() 是 mvcMatchers()返回值特有的方法,antMatchers()和 regexMatchers()没有这个方法。无论是 antMatchers() 还是 regexMatchers() 都具有两个参数的方法,其中第一个参数都是HttpMethod,表 示请求方式,当设置了 HttpMethod 后表示只有设定的特定的请求方式才执行对应的权限设置。参数是不定向参数,每一个参数是一个ant表达式,用于匹配URL规则。转载 2023-04-11 14:20:49 · 812 阅读 · 0 评论 -
Spring Security Config : AbstractInterceptUrlConfigurer
创建目标FilterSecurityInterceptor用到的AccessDecisionManager可以由调用者设置,如果不设置,则使用该方法创建一个缺省的AccessDecisionManager,该缺省的AccessDecisionManager实现类使用AffirmativeBased,一票赞成即可通过。抽象方法,要求子类提供实现。抽象方法,要求子类提供实现。// 将新建的安全拦截过滤器 FilterSecurityInterceptor 添加到目标安全构建器 http 的Filter清单,转载 2023-04-06 17:22:32 · 153 阅读 · 0 评论 -
Spring Security Config : HttpSecurity安全配置器 ExpressionUrlAuthorizationConfigurer
这里每组RequestMatcher表示一组调用者想设定成相同权限控制的Http method/URL pattern,这里所设置的权限属性其实是基于SpEL的权限表达式。// 安全配置器指定一个安全表达式处理器 SecurityExpressionHandler,// 添加一组需要共同权限设置的 RequestMatcher,并对这组 RequestMatcher 设置相同的权限控制。转载 2023-04-06 17:23:26 · 1545 阅读 · 0 评论 -
PostProcessor(后置处理器)
前面介绍Spring。以及,还有一个。这些相当于工具,那谁来操作这些工具呢?幕后的操作者就是Spring中后置处理器(PostProcessor)。BeanFactoryPostProcessor(Bean 工厂后置处理器)和BeanPostProcessor(Bean 后置处理器)下面简述一下它们的作用别小看上面三个接口,Spring绝大部分重要技术都是这三个接口的子类来实现,它们也是扩展接口,可以自定义类来实现它们,以增强Spring功能或者是扩展Spring功能,又或是第三方框架。转载 2023-03-27 19:52:18 · 276 阅读 · 0 评论 -
Spring security源码解析系列04-AutowireBeanFactoryObjectPostProcessor分析
这里有一个参数的构造函数 ,属性类型 是 AutowireCapableBeanFactory. 这个 构造 方法就是在Spring 注入的时候调用。//InitializingBean 的afterPropertiesSet 调用, 自定义的方法的反射调用。// 这里调用 initializeBean 方法,主要是对 object 进行 属性完善,// 如果是 SmartInitializingSingleton类型,加入列表。//主要是进行Aware 的各种类型扩展,转载 2023-03-27 19:53:23 · 195 阅读 · 0 评论 -
Spring Security 源码分析九:Java config - 阶段性总结
本文是对 Spring Security Core 4.0.4 Release 进行源码分析的系列文章之一;本博文是有关 Spring Security 的配置相关的内容的阶段性总结;本文为作者的原创作品,转载需注明出处;笔者将千言万语汇集成了上面这张图;从左至右,DelegatingFilterProxy 是六大之一;它的目的就是将不同的访问请求转发到对应的 SecurityFilterChain 上;比如,将/web/**请求转发到上,将/foo/**转发到上;转载 2023-03-22 14:12:01 · 143 阅读 · 0 评论 -
WebSecurity源码分析
WebSecurity是spring-security整个体系里面最为重要的一个安全类,通过之前的文章分析,我们可以得知spring-security是通过一个名称为springSecurityFilterChain的过滤器对所有的请求进行过滤的,同时在WebSecurityConfiguration源码分析中我们可以得知这个过滤器是通过以下方式被WebSecurity构建出来的123456789101112= null&&!if (!});转载 2023-03-22 14:12:38 · 692 阅读 · 0 评论 -
【Spring-Security源码分析】WebSecurity
对用户请求的认证是使用的authenticationManager.authenticate(),关于这部分请参考https://blog.youkuaiyun.com/shenchaohao12321/article/details/87721655,认证成功后会使用accessDecisionManager.decide()方法完成用户访问的授权,下面分析授权流程。使用默认实现,这意味着此后将返回servletPath和pathInfo的原始值,而不是用于安全模式匹配的修改后的值。转载 2023-03-21 16:27:26 · 622 阅读 · 0 评论 -
Spring Security Config : AbstractConfiguredSecurityBuilder
在生命周期基础之上实现并final了基类定义的抽象方法#doBuild,将构建划分为三个主要阶段#init,#configure,#performBuild;对 #init/#configure阶段提供了前置回调#beforeInit/#beforeConfigure空方法供基类扩展;// 构建过程配置方法 : 调用所有 SecurityConfigurer 的 #configure 配置方法。// 构建过程初始化方法 : 调用所有 SecurityConfigurer 的 #init 初始化方法。转载 2023-03-21 16:21:29 · 304 阅读 · 0 评论 -
SpringSecurity------WebSecurityConfiguration配置类
简单的说,这个类的作用就是用来创建FilterChainProxy,FilterChainProxy是一个Servlet Filter,他是一组SecurityFilterChain的代理,用于管理这些SecurityFilterChain。这个方法是接口ImportAware的方法,当前配置类是通过@EnableWebSecurity注解上的@Import注解引入的,实现该接口的方法使得当前配置类可以获取到@EnableWebSecurity的debug属性值。转载 2023-03-15 15:35:50 · 1893 阅读 · 0 评论 -
【方向盘】通俗易懂版讲解JWT和OAuth2,以及他俩的区别和联系(Token鉴权解决方案)(中)
【方向盘】通俗易懂版讲解JWT和OAuth2,以及他俩的区别和联系(Token鉴权解决方案)(中)转载 2022-09-27 15:09:12 · 795 阅读 · 1 评论 -
Spring Boot Security OAuth2 实现支持JWT令牌的授权服务器
在之后的请求中,客户端携带 JWT 请求需要访问的资源,如果资源的访问用到用户的相关信息,那么就直接从JWT中获取到。使用 OAuth2 是向认证服务器申请令牌,客户端拿这令牌访问资源服务服务器,资源服务器校验了令牌无误后,如果资源的访问用到用户的相关信息,那么资源服务器还需要根据令牌关联查询用户的信息。之前的两篇文章,讲述了Spring Security 结合 OAuth2 、JWT 的使用,这一节要求对 OAuth2、JWT 有了解,若不清楚,先移步到下面两篇提前了解下。携带JWT令牌请求资源。转载 2022-09-27 10:14:09 · 783 阅读 · 0 评论 -
Spring Boot 2.x实战85 - Spring Security 9 - OAuth 2.0之Client
使用Chrome访问http://127.0.0.1:8083/forAdminCan1,这是一个受保护的资源,地址会自动打向Authorization Server的登陆页面:http://localhost:8080/login。我们点击Authorize,地址会自动打向刚开始访问的http://127.0.0.1:8083/forAdminCan1地址,当我们在Authorization Server上登陆授权后,我们就可以获得访问Resource Server的服务了。转载 2022-09-19 17:44:00 · 1761 阅读 · 0 评论 -
EUREKA 安全验证 CANNOT EXECUTE REQUEST ON ANY KNOWN SERVER 错误问题
言归正传,首先我们先准备两个服务,一个 eureka 服务端、一个eureka 客户端 方便验证。好久没写博客了,哈哈。搞了三台服务器慢慢玩。然后我们打开eureka 的效果如下。可以看到已经成功注册上去了。pom.xml 引用。pom.xml 引用。...转载 2022-08-29 14:40:49 · 358 阅读 · 0 评论 -
ObjectPostProcessor在WebSecurityConfig中的应用
ObjectPostProcessor介绍笔者在学习Spring Security,调试HeaderWriterFilter源码时,遇到了一个比较困惑的问题,HeaderWriterFilter在往请求头写入信息时,通过shouldWriteHeadersEagerly这个变量来控制,在调用过滤器之前写入还是调用doFilter()之后将信息写入到请求头当中,默认是过滤链执行后写入。笔者以为可以在ResourceServerConfig#configure()方法中,调用HttpSecurity.hea转载 2022-01-13 17:57:04 · 596 阅读 · 0 评论 -
Spring Security ObjectPostProcessor解析
顶层接口org.springframework.security.config.annotation.ObjectPostProcessor 在SecurityBuilder 的抽象实现AbstractConfiguredSecurityBuilder中被引入。 并且通过构造函数入参被设置并且构造函数为protected只能被子类实例化。protected AbstractConfiguredSecurityBuilder( ObjectPostProcessor&l转载 2022-01-11 14:26:49 · 1016 阅读 · 0 评论 -
Spring Security登录 成功后用于信息保存
在上片博客中 记录了登录流程:那登录后信息如果用户信息保存到哪里了呢?看最后源码:在抽象类 AbstractAuthenticationProcessingFilter 拦截并做登录处理后 最后会调用successfulAuthentication(request, response, chain, authResult);1方法 successfulAuthentication 中可以明确看到 信息保存到了SecurityContextHolder.getContext().setAuthen转载 2020-05-26 19:55:26 · 2480 阅读 · 0 评论 -
手把手教你做系统权限设计,看完不要说还不会
权限系统设计前言权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。1.权限模型迄今为止最为普及的权限设计模型是RBAC模型,基于角色的访问控制(Role-Based Access Control)1.1 RBAC-0模型RBAC-0模型RBAC-0模型是权限最基础也是最核心的模型,它包括用户/角色/权限,其中用户和角色是多对多的关系,角色和权限也是多对多的转载 2020-05-19 17:13:59 · 1484 阅读 · 0 评论 -
【全栈修炼】CORS和CSRF修炼宝典
《全栈修炼》系列《【全栈修炼】OAuth2修炼宝典》CORS 和 CSRF 太容易混淆了,看完本文,你就清楚了。一、CORS 和 CSRF 区别先看下图:CORS 和 CSRF 区别两者概念完全不同,另外常常我们也会看到 XSS ,这里一起介绍: CORS : Cross Origin Resourse-Sharing 跨站资源共享 CSRF : Cross-Site Request Forgery 跨站请求伪造 XSS : Cross Site Scri转载 2020-05-15 17:23:29 · 231 阅读 · 0 评论 -
跨站脚本攻击—XSS
XSS 介绍XSS 是跨站脚本攻击(Cross Site Scripting)的简写,但是从首写字母命名的方式来看,应该取名 CSS,但这样就和层叠样式表(Cascading Style Sheets,CSS)重名了,所以取名为 XSS。XSS 攻击,一般是指攻击者通过在网页中注入恶意脚本,当用户浏览网页时,恶意脚本执行,控制用户浏览器行为的一种攻击方式。XSS 危害窃取用户Cookie,获取用户隐私,盗取用户账号。 劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志转载 2020-05-15 17:18:02 · 247 阅读 · 0 评论 -
跨域资源共享 CORS 详解
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。本文详细介绍CORS的内部机制。(图片说明:摄于阿联酋艾因(Al Ain)的绿洲公园)一、简介CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS转载 2020-05-14 18:15:22 · 141 阅读 · 0 评论 -
Spring Security核心概念介绍
Spring Security是一个强大的java应用安全管理库,特别适合用作后台管理系统。这个库涉及的模块和概念有一定的复杂度,而大家平时学习Spring的时候也不会涉及;这里基于官方的参考文档,把Spring Security的基本套路介绍一下。参考的Spring Security文档地址:https://docs.spring.io/spring-security/site/docs/5.0.7.RELEASE/reference/html/preface.htmlSpring Securit转载 2020-05-11 15:10:47 · 471 阅读 · 0 评论 -
springSecurity深度解析第二版
前言由于第一版排版实在太过糟糕,而且很多细节没交代清楚,所以决定写第二版;这一版争取将排版设计得清晰明了一点,以方便读者阅读。security原理分析springSecurity过滤器链springSecurity 采用的是责任链的设计模式,它有一条很长的过滤器链。现在对这条过滤器链的各个进行说明 WebAsyncManagerIntegrationFilter:将Security上下文与Spring Web中用于处理异步请求映射的 WebAsyncManager 进行集成。转载 2020-05-11 15:09:38 · 430 阅读 · 0 评论 -
spring security使用——编写自己的PasswordEncoder
最近接触spring cloud微服务项目,里面有用到spring security,由于security封装的东西比较完善,像我们用户登录时密码的加密验证都已经封装好了,默认也是security推荐使用的就是Bcrypt加密方式,这里对bcrypt不多作介绍了;领导给提了一个需求,要把默认的bcrypt加密方式修改成我们自己熟悉或者用过的加密方式,然后我就一直在debugger跟代码,从...转载 2019-11-18 20:08:22 · 921 阅读 · 0 评论 -
HTTP使用BASIC认证的原理及实现方法
一.BASIC认证概述在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份证的方法,当一个客户端向HTTP服务器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法。客户端在接收到HTTP服务器的身份认证要求后,会提示用户输入用户名及密码,然后将用户名及密码以BA...转载 2019-10-28 16:59:18 · 520 阅读 · 0 评论 -
HTTP Basic 认证
HTTP Basic 认证Basic 认证是 Web 服务器于客户端之间进行认证的一种方式, 最初是在HTTP 1.0 规范(RFC 1945)中定义,后续的有关安全的信息可以在HTTP 1.1规范(RFC 2616)和HTTP认证规范(RFC 2617)中找到。Basic 认证过程当客户端请求了需要进行 Basic 认证的资源,服务器就会返回带有 401 unauthorized 状态码...转载 2019-10-28 17:05:19 · 391 阅读 · 0 评论