Spring Security Oauth2 ResourceServerConfigurerAdapter (资源服务器配置)
ResourceServerConfigurerAdapter (资源服务器配置)
内部关联了ResourceServerSecurityConfigurer 和 HttpSecurity。前者与资源安全配置相关,后者与http安全配置相关
/*** ResourceServerSecurityConfigurer主要配置以下几方面:* tokenServices:ResourceServerTokenServices 类的实例,用来实现令牌访问服务,如果资源服务和授权服务不在一块,就需要通过RemoteTokenServices来访问令牌* tokenStore:TokenStore类的实例,定义令牌的访问方式* resourceId:这个资源服务的ID* 其他的拓展属性例如 tokenExtractor 令牌提取器用来提取请求中的令牌。*/@Overridepublic void configure(ResourceServerSecurityConfigurer resources) {//resourceId 用于分配给可授予的clientId// stateless 标记以指示在这些资源上仅允许基于令牌的身份验证// tokenStore token的存储方式(上一章节提到)resources.resourceId(RESOURCE_ID).stateless(true).tokenStore(tokenStore)//authenticationEntryPoint 认证异常流程处理返回// tokenExtractor token获取方式,默认BearerTokenExtractor// 从header获取token为空则从request.getParameter("access_token").authenticationEntryPoint(authenticationEntryPoint).tokenExtractor(unicomTokenExtractor);}
其他属性:
accessDeniedHandler 权失败且主叫方已要求特定的内容类型响应
resourceTokenServices 加载 OAuth2Authentication 和 OAuth2AccessToken 的接口
eventPublisher 事件发布-订阅 根据异常的clazz触发不同event
@Configuration@EnableResourceServerprotected class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {/*** HttpSecurity配置这个与Spring Security类似:* 请求匹配器,用来设置需要进行保护的资源路径,默认的情况下是保护资源服务的全部路径。*/@Overridepublic void configure(HttpSecurity http) throws Exception {AuthenticationManager oauthAuthenticationManager = oauthAuthenticationManager(http);//OAuth2核心过滤器resourcesServerFilter = new OAuth2AuthenticationProcessingFilter();resourcesServerFilter.setAuthenticationEntryPoint(authenticationEntryPoint);//OAuth2AuthenticationManager,只有被OAuth2AuthenticationProcessingFilter拦截到的oauth2相关请求才被特殊的身份认证器处理。resourcesServerFilter.setAuthenticationManager(oauthAuthenticationManager);if (eventPublisher != null) {//同上resourcesServerFilter.setAuthenticationEventPublisher(eventPublisher);}if (tokenExtractor != null) {//同上resourcesServerFilter.setTokenExtractor(tokenExtractor);}resourcesServerFilter = postProcess(resourcesServerFilter);resourcesServerFilter.setStateless(stateless);if (!Boolean.TRUE.toString().equals(apolloCouponConfig.getOauthEnable())) {// 不需要令牌,直接访问资源http.authorizeRequests().anyRequest().permitAll();} else {http//.anonymous().disable() //匿名访问.antMatcher("/**") //匹配需要资源认证路径.authorizeRequests().antMatchers("/swagger-ui.html", "/swagger-resources/**","/v2/api-docs/**", "/validatorUrl","/valid").permitAll() //匹配不需要资源认证路径.anyRequest().authenticated().and().addFilterBefore(resourcesServerFilter, AbstractPreAuthenticatedProcessingFilter.class).exceptionHandling() //添加filter.exceptionHandling().accessDeniedHandler(accessDeniedHandler) //异常处理.authenticationEntryPoint(authenticationEntryPoint); //认证异常流程 }}}
accessDeniedHandler 异常 : 令牌不能访问该资源 (403)异常等
authenticationEntryPoint 异常 : 不传令牌,令牌错误(失效)等
Spring Security Oauth2 ResourceServerConfigurerAdapter (资源服务器配置)相关推荐
- Spring Security OAuth2 JWT资源服务器配置
1.POM相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId> ...
- Spring Security Oauth2 在资源服务器如何获取jwt中的额外信息
在上一篇Spring Security Oauth2 中实现TokenEnhancer向jwt中添加额外信息中,笔者向大家介绍了如何向jwt中存额外信息(extraInfo) 接下来这篇blog,笔者 ...
- 【Spring】Spring Security OAuth2 JWT 认证
1.概述 Spring Security OAuth2 JWT 认证服务器配置 Spring Security OAuth2 JWT 资源服务器配置 Spring Security OAuth2 Re ...
- 从零开始超详细的Spring Security OAuth2.0实现分布式系统授权(注册中心+网关+认证授权服务(JWT令牌验证)+资源调用服务)
文章目录 一.OAuth2.0 1.介绍 2.例子 3.执行流程 二.Spring Cloud Security OAuth2 1.环境介绍 2.认证流程 三.整合分布式项目 1.技术方案 2.项目结 ...
- 还不了解Oauth2协议?这篇文章从入门到入土让你了解Oauth2以及Spring Security OAuth2 的使用
SpringSecurityOAuth2学习和实战 1.OAuth2概述 1.1 什么是OAuth2 OAuth(Open Authorization)是一个关于授权(authorization)的开 ...
- Spring Security OAuth2.0认证授权知识概括
Spring Security OAuth2.0认证授权知识概括 安全框架基本概念 基于Session的认证方式 Spring Security简介 SpringSecurity详解 分布式系统认证方 ...
- 芋道 Spring Security OAuth2 入门
芋道 Spring Security OAuth2 入门 总阅读量:28123次 <Dubbo 实现原理与源码解析 -- 精品合集> <Netty 实现原理与源码解析 -- 精品合集 ...
- spring security oauth2 常用授权方式配置详细教程(一)
1 spring security oauth2 简单配置说明(一) 配套源码:https://download.csdn.net/download/tiancxz/12902941 1.1 工程说明 ...
- 004-云E办_学习Oathu2和Spring Security Oauth2
这里写目录标题 一.Oauth2简介 1.简介 2.分析Oauth2认证的例子,网站使用微信认证的过程: 3.Oauth2.0认证流程如下: 1.角色: 2.常用术语: 3.令牌类型 4.特点 二.授 ...
最新文章
- javascript通过json数据按格式生成一个按字母分类排序的分类信息表
- Bzoj1123 Blockade
- 基于 HTML5 WebGL 的 3D 棉花加工监控系统
- 机器学习之数学基础(四)~Lasso Regression回归, L1、L2 Regularization正则化, 回归问题中的损失函数
- 【Linux】26.VScode安装、插件、快捷键等基本用法
- 区块链BaaS云服务(14)华大BGI区块链“Baas接口“
- getbean方法找不到bean_和平精英:一直找不到敌人?5个方法,让你彻底摆脱“瞎子”...
- 通过反射获取无参无返回值成员方法并使用
- CSS转义字符对照表
- html text align属性,HTML canvas
- harbor重置mysql密码_Harbor密码重置 密码修改 admin密码重置
- 内存对齐还是需要重视的——XMMATRIX 为例
- python中concat的用法_python pandas concat用法及代码示例
- html中treegrid不显示根节点,treegrid如何让子节点默认不展开
- HTML 合并单元格(学生成绩管理表格)
- 闭着眼学基础python 保姆教程:组合数据类型(2)映射与集合类型
- sincerit 小乐乐切割方块(规律+思考)
- 什么是防抖和节流?区别是什么?
- 武汉大学计算机软件与理论博士,武汉大学博士学术屌爆,人大的不服不行
- oracle 乱码 utf8,oracle中文乱码的解决方法