将访问资源作为OAuth2的资源来管理

复制昨天项目中用户和角色对象,即便是用OAuth2管理资源,也一样需要认证,这两个对象还是需要的。

SysRole.java

public class SysRole implements GrantedAuthority {private Integer id;private String roleName;private String roleDesc;
}

SysUser.java

public class SysUser implements UserDetails {private Integer id;private String username;private String password;private Integer status;private List<SysRole> roles;
}

编写资源管理配置类

@Configuration
@EnableResourceServer
public class OauthSourceConfig extends ResourceServerConfigurerAdapter {// 只要配置了数据库的配置,就会将DataSource放入到IOC容器中@Autowiredprivate DataSource dataSource;/*** 指定token的持久化策略* InMemoryTokenStore表示将token存储在内存* Redis表示将token存储在redis中* JdbcTokenStore存储在数据库中* @return*/@Beanpublic TokenStore jdbcTokenStore(){return new JdbcTokenStore(dataSource);}/*** 指定当前资源的id和存储方案* @param resources* @throws Exception*/@Overridepublic void configure(ResourceServerSecurityConfigurer resources) throws Exception {// 也就是当前资源服务的idresources.resourceId("product_api").tokenStore(jdbcTokenStore());}@Overridepublic void configure(HttpSecurity http) throws Exception{http.authorizeRequests()//指定不同请求方式访问资源所需要的权限,一般查询是read,其余是write。.antMatchers(HttpMethod.GET, "/**").access("#oauth2.hasScope('read')").antMatchers(HttpMethod.POST, "/**").access("#oauth2.hasScope('write')").antMatchers(HttpMethod.PATCH, "/**").access("#oauth2.hasScope('write')").antMatchers(HttpMethod.PUT, "/**").access("#oauth2.hasScope('write')").antMatchers(HttpMethod.DELETE, "/**").access("#oauth2.hasScope('write')").and().headers().addHeaderWriter((request, response) -> {//允许跨域response.addHeader("Access-Control-Allow-Origin", "*");//如果是跨域的预检请求,则原封不动向下传达请求头信息if (request.getMethod().equals("OPTIONS")) {response.setHeader("Access-Control-Allow-Methods", request.getHeader("Access-Control-Request-Method"));response.setHeader("Access-Control-Allow-Headers", request.getHeader("Access-Control-Request-Headers"));}});}
}

SpringSecurity案例之把资源交给OAuth2的资源服务管理相关推荐

  1. SpringSecurity 案例之创建资源服务器准备工作

    创建资源模块 我们需要引入oauth2.0包 <dependency><groupId>org.springframework.cloud</groupId>< ...

  2. SpringSecurity(二十)---OAuth2:实现资源服务器(上)资源服务器搭建以及直接调用授权服务器模式

    一. 前言 本章将讨论如何使用Spring Security实现一个资源服务器,资源服务器是管理用户资源的组件.另外,学习本章有个前提,需要先把前面搭建授权服务器的相关文章先给阅读,否则可能后面出现的 ...

  3. web分页显示功能(“小案例:实现web端对客户资源的增删改查”里面的一个功能)

    分页显示功能("小案例:实现web端对客户资源的增删改查"里面的一个功能) (2016年11月19日18:15:07 上课学习总结) 效果展示: 第n页/共M页   首页  上一页 ...

  4. 使用Oauth2实现微服务的安全保护

    点击蓝色"程序猿DD"关注我哟 来源:SpringForAll社区 序言 安全性是暴露由许多微服务组成的公共访问API时要考虑的最重要的一个方面.Spring有一些有趣的功能和框架 ...

  5. 《深入理解 Spring Cloud 与微服务构建》第十七章 使用 Spring Cloud OAuth2 保护微服务系统

    <深入理解 Spring Cloud 与微服务构建>第十七章 使用 Spring Cloud OAuth2 保护微服务系统 文章目录 <深入理解 Spring Cloud 与微服务构 ...

  6. 十七.SpringCloud+Security+Oauth2实现微服务授权 -非对称加密生成JWT令牌

    仅做学习使用,老鸟飞过,欢迎交流 前言 在之前的微服务授权方案<SpringCloud+Security+Oauth2实现微服务授权 - 授权服务配置>中我们使用的是Oauth+JWT方式 ...

  7. 十一.SpringCloud+Security+Oauth2实现微服务授权 - 授权服务配置

    前言 上一文章我们准备了微服务授权的环境,并对AuthServer实现了简单的认证流程,这里是接上一篇文章继续对AuthServer认证服务做Oauth2配置 1.概述Oauth2授权服务配置 我们只 ...

  8. 中国重汽微服务管理_干货 | 微服务架构下 Spring Cloud OAuth2 通用权限管理系统

    点击蓝色"泥瓦匠BYSocket",关注我哟 加个"星标",不忘文末签到哦 作者:王杰 项目地址 Gitee: https://gitee.com/log4j/ ...

  9. 编写高质量代码改善C#程序的157个建议——建议50:在Dispose模式中应区别对待托管资源和非托管资源...

    建议50:在Dispose模式中应区别对待托管资源和非托管资源 真正资源释放代码的那个虚方法是带一个bool参数的,带这个参数,是因为我们在资源释放时要区别对待托管资源和非托管资源. 提供给调用者调用 ...

最新文章

  1. opencv仿射变换
  2. JavaScript正则表达式test的用法
  3. python要自学多长时间-怎么自学python,大概要多久?
  4. HTML5音乐播放器(四):播放列表与播放方式
  5. 让Nginx支持pathinfo
  6. Latex快速入门系列 -- 在TexStudio中正确插入参考文献的基本操作
  7. 删除mysql临时文件_mysql自动备份数据库与自动删除临时文件
  8. 普通指针到智能指针的转换
  9. 微信小程序保存canvas绘制的图片到本地,拒绝图片授权后继续授权
  10. window.onload()方法和window.onscroll()方法
  11. 给EditText的drawableRight属性的图片设置点击事件
  12. python属于什么专业类别-关于python:1D CNN用于分类
  13. java旅游管理系统(带文档
  14. 数字证书是什么原理,有什么作用?
  15. AiHi+翼次元学院儿童自然感知实践“几米小甜田”+中韧开智“优慧码”| Wit++
  16. 为什么说视频号是下一个短视频风口?
  17. Vivo手机获取文件管理器里的文件路径为空
  18. PHP中?是什么意思,有什么用?
  19. 旅游类App原型制作分享-Triposo
  20. RFID隧道安全管理方案

热门文章

  1. 2014年acm亚洲区域赛·鞍山站
  2. 【CMS】安装CMS
  3. PHP命名空间(Namespace)的使用详解
  4. Nginx+memcached+tomcat配置集群session共享负载均衡
  5. BizTalk Server 2010新功能介绍(六):BizTalk Mapper (下)
  6. 设置Qt应用程序图标
  7. Vb Shell 打开程序 等待运行完毕后再继续
  8. 机器学习之数据预处理
  9. InfluxDB中文文档
  10. margin塌陷问题