SpringSecurity案例之把资源交给OAuth2的资源服务管理
将访问资源作为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的资源服务管理相关推荐
- SpringSecurity 案例之创建资源服务器准备工作
创建资源模块 我们需要引入oauth2.0包 <dependency><groupId>org.springframework.cloud</groupId>< ...
- SpringSecurity(二十)---OAuth2:实现资源服务器(上)资源服务器搭建以及直接调用授权服务器模式
一. 前言 本章将讨论如何使用Spring Security实现一个资源服务器,资源服务器是管理用户资源的组件.另外,学习本章有个前提,需要先把前面搭建授权服务器的相关文章先给阅读,否则可能后面出现的 ...
- web分页显示功能(“小案例:实现web端对客户资源的增删改查”里面的一个功能)
分页显示功能("小案例:实现web端对客户资源的增删改查"里面的一个功能) (2016年11月19日18:15:07 上课学习总结) 效果展示: 第n页/共M页 首页 上一页 ...
- 使用Oauth2实现微服务的安全保护
点击蓝色"程序猿DD"关注我哟 来源:SpringForAll社区 序言 安全性是暴露由许多微服务组成的公共访问API时要考虑的最重要的一个方面.Spring有一些有趣的功能和框架 ...
- 《深入理解 Spring Cloud 与微服务构建》第十七章 使用 Spring Cloud OAuth2 保护微服务系统
<深入理解 Spring Cloud 与微服务构建>第十七章 使用 Spring Cloud OAuth2 保护微服务系统 文章目录 <深入理解 Spring Cloud 与微服务构 ...
- 十七.SpringCloud+Security+Oauth2实现微服务授权 -非对称加密生成JWT令牌
仅做学习使用,老鸟飞过,欢迎交流 前言 在之前的微服务授权方案<SpringCloud+Security+Oauth2实现微服务授权 - 授权服务配置>中我们使用的是Oauth+JWT方式 ...
- 十一.SpringCloud+Security+Oauth2实现微服务授权 - 授权服务配置
前言 上一文章我们准备了微服务授权的环境,并对AuthServer实现了简单的认证流程,这里是接上一篇文章继续对AuthServer认证服务做Oauth2配置 1.概述Oauth2授权服务配置 我们只 ...
- 中国重汽微服务管理_干货 | 微服务架构下 Spring Cloud OAuth2 通用权限管理系统
点击蓝色"泥瓦匠BYSocket",关注我哟 加个"星标",不忘文末签到哦 作者:王杰 项目地址 Gitee: https://gitee.com/log4j/ ...
- 编写高质量代码改善C#程序的157个建议——建议50:在Dispose模式中应区别对待托管资源和非托管资源...
建议50:在Dispose模式中应区别对待托管资源和非托管资源 真正资源释放代码的那个虚方法是带一个bool参数的,带这个参数,是因为我们在资源释放时要区别对待托管资源和非托管资源. 提供给调用者调用 ...
最新文章
- opencv仿射变换
- JavaScript正则表达式test的用法
- python要自学多长时间-怎么自学python,大概要多久?
- HTML5音乐播放器(四):播放列表与播放方式
- 让Nginx支持pathinfo
- Latex快速入门系列 -- 在TexStudio中正确插入参考文献的基本操作
- 删除mysql临时文件_mysql自动备份数据库与自动删除临时文件
- 普通指针到智能指针的转换
- 微信小程序保存canvas绘制的图片到本地,拒绝图片授权后继续授权
- window.onload()方法和window.onscroll()方法
- 给EditText的drawableRight属性的图片设置点击事件
- python属于什么专业类别-关于python:1D CNN用于分类
- java旅游管理系统(带文档
- 数字证书是什么原理,有什么作用?
- AiHi+翼次元学院儿童自然感知实践“几米小甜田”+中韧开智“优慧码”| Wit++
- 为什么说视频号是下一个短视频风口?
- Vivo手机获取文件管理器里的文件路径为空
- PHP中?是什么意思,有什么用?
- 旅游类App原型制作分享-Triposo
- RFID隧道安全管理方案