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 (资源服务器配置)相关推荐

  1. Spring Security OAuth2 JWT资源服务器配置

    1.POM相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId> ...

  2. Spring Security Oauth2 在资源服务器如何获取jwt中的额外信息

    在上一篇Spring Security Oauth2 中实现TokenEnhancer向jwt中添加额外信息中,笔者向大家介绍了如何向jwt中存额外信息(extraInfo) 接下来这篇blog,笔者 ...

  3. 【Spring】Spring Security OAuth2 JWT 认证

    1.概述 Spring Security OAuth2 JWT 认证服务器配置 Spring Security OAuth2 JWT 资源服务器配置 Spring Security OAuth2 Re ...

  4. 从零开始超详细的Spring Security OAuth2.0实现分布式系统授权(注册中心+网关+认证授权服务(JWT令牌验证)+资源调用服务)

    文章目录 一.OAuth2.0 1.介绍 2.例子 3.执行流程 二.Spring Cloud Security OAuth2 1.环境介绍 2.认证流程 三.整合分布式项目 1.技术方案 2.项目结 ...

  5. 还不了解Oauth2协议?这篇文章从入门到入土让你了解Oauth2以及Spring Security OAuth2 的使用

    SpringSecurityOAuth2学习和实战 1.OAuth2概述 1.1 什么是OAuth2 OAuth(Open Authorization)是一个关于授权(authorization)的开 ...

  6. Spring Security OAuth2.0认证授权知识概括

    Spring Security OAuth2.0认证授权知识概括 安全框架基本概念 基于Session的认证方式 Spring Security简介 SpringSecurity详解 分布式系统认证方 ...

  7. 芋道 Spring Security OAuth2 入门

    芋道 Spring Security OAuth2 入门 总阅读量:28123次 <Dubbo 实现原理与源码解析 -- 精品合集> <Netty 实现原理与源码解析 -- 精品合集 ...

  8. spring security oauth2 常用授权方式配置详细教程(一)

    1 spring security oauth2 简单配置说明(一) 配套源码:https://download.csdn.net/download/tiancxz/12902941 1.1 工程说明 ...

  9. 004-云E办_学习Oathu2和Spring Security Oauth2

    这里写目录标题 一.Oauth2简介 1.简介 2.分析Oauth2认证的例子,网站使用微信认证的过程: 3.Oauth2.0认证流程如下: 1.角色: 2.常用术语: 3.令牌类型 4.特点 二.授 ...

最新文章

  1. javascript通过json数据按格式生成一个按字母分类排序的分类信息表
  2. Bzoj1123 Blockade
  3. 基于 HTML5 WebGL 的 3D 棉花加工监控系统
  4. 机器学习之数学基础(四)~Lasso Regression回归, L1、L2 Regularization正则化, 回归问题中的损失函数
  5. 【Linux】26.VScode安装、插件、快捷键等基本用法
  6. 区块链BaaS云服务(14)华大BGI区块链“Baas接口“
  7. getbean方法找不到bean_和平精英:一直找不到敌人?5个方法,让你彻底摆脱“瞎子”...
  8. 通过反射获取无参无返回值成员方法并使用
  9. CSS转义字符对照表
  10. html text align属性,HTML canvas
  11. harbor重置mysql密码_Harbor密码重置 密码修改 admin密码重置
  12. 内存对齐还是需要重视的——XMMATRIX 为例
  13. python中concat的用法_python pandas concat用法及代码示例
  14. html中treegrid不显示根节点,treegrid如何让子节点默认不展开
  15. HTML 合并单元格(学生成绩管理表格)
  16. 闭着眼学基础python 保姆教程:组合数据类型(2)映射与集合类型
  17. sincerit 小乐乐切割方块(规律+思考)
  18. 什么是防抖和节流?区别是什么?
  19. 武汉大学计算机软件与理论博士,武汉大学博士学术屌爆,人大的不服不行
  20. oracle 乱码 utf8,oracle中文乱码的解决方法

热门文章

  1. QGradient(渐变填充)
  2. python快速排序法实现
  3. SpringCloud(十二)SpringCloudAlibaba Sentinel 分布式系统的流量防卫兵
  4. 用Python求两条线段的交点,包括延长线的交点
  5. JavaScript switch语句和循环
  6. 面试题,上海有多少个理发店?
  7. JAVA SortedMap接口
  8. 从 dpkg deb 包开始分析 deb 包的内容及 dpkg 安装包的过程
  9. Resnet-50网络结构详解
  10. 算法设计与分析(电子科技大学)(上)算法基础和贪心算法