文档章节

基于易水公共组件的资源服务器配置

易水风萧
 易水风萧
发布于 2019/10/30 17:00
字数 676
阅读 11
收藏 0

在使用本组件之前,需要先搭建好认证服务器,其中认证服务器可以根据业务需要进行单机或集群部署。

整个系统的结果如图所示

image

在整个系统中 ,认证服务器的作用是产生token和验证token的有效性,资源服务器是根据认证服务器的响应结果决定如何处理请求资源。

1 引入依赖

完整的pom依赖文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.yishuifengxiao.sso-client</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

        <!--需要引入的组件-->
        <dependency>
            <groupId>com.yishuifengxiao.common</groupId>
            <artifactId>common-spring-boot-starter</artifactId>
            <version>4.1.2</version>
        </dependency>

        <dependency>
            <groupId>com.yishuifengxiao.common</groupId>
            <artifactId>oauth2-resource-starter</artifactId>
            <version>1.1.0</version>
        </dependency>
    <!--需要引入的组件-->
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2 在项目中加入文件

@Configuration
@EnableWebSecurity
public class SecurityConfig extends AbstractSecurityConfig {


    @Override
    protected void configure(HttpSecurity http) throws Exception {
        super.configure(http);
    }
}

3 在配置中加入配置属性

主要加入的配置属性如下:

# 只想认证服务器的token校验地址
yishuifengxiao.security.resourceserver.userInfoUrl=http://192.168.0.172:8000/oauth/check_token
# 表示在出现异常时直接输出json响应
yishuifengxiao.security.handler.exception.returnType=json

4 资源管理

资源管理的用法请参见 易水公共组件设置

5 访问资源

在项目里加入以下代码

@SpringBootApplication
@RestController
public class DemoApplication {

    @GetMapping("/me")
    public Authentication user(Authentication authentication) {

        return authentication;

    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);

    }

}

<br/>

完成上述配置以后,先从认证服务器中获取到access_token,然后再利用access_token访问资源服务器中的资源了。

例如当我们想要访问 /me时,即可通过 http://localhost:8080/me?access_token=认证服务器里获得token获取到资源信息了。

token的用法即可参见 access_token 使用

<br/><br/>

资源链接

易水公共组件官方文档地址:http://doc.yishuifengxiao.com/

易水公共组件源码地址:https://gitee.com/zhiyubujian/common-starter

易水风萧个人博客 http://www.yishuifengxiao.com

相关博客

  1. springboot整合单点登录sso

  2. 搭建基于易水公共组件的资源服务器

© 著作权归作者所有

易水风萧

易水风萧

粉丝 9
博文 9
码字总数 9938
作品 2
深圳
私信 提问
易水公共组件 4.2.0 版本发布,新增重要功能

易水公共组件是基于spring security 和 spring security oauth2 上的二次开发,除了对 spring security 和 oauth2 高度可定制化的功能封装外,还集成了在日常开发过程需要经常使用的 swagge...

易水风萧
2019/12/03
1.7K
0
易水公共组件 4.1.3 版本发布,新增 IDEA 配置提示功能

易水公共组件是基于spring security 和 spring security oauth2 上的二次开发,除了对 spring security 和 oauth2 高度可定制化的功能封装外,还集成了在日常开发过程需要经常使用的 swagge...

易水风萧
2019/11/11
870
2
易水公共组件 4.1.2 版本发布了

易水公共组件是基于 spring security 和 spring security oauth2 上的二次开发,除了对 spring security 和 oauth2 高度可定制化的功能封装外,还集成了在日常开发过程需要经常使用的 swagge...

易水风萧
2019/10/31
2.2K
2
开发常用功能集 - 易水公众组件

在日常开发过程中,发现有一个重要的功能会被经常使用到,但是又没有一个比较好用的功能集合,在开发项目是需要反复配置,造成了大量不必要的重复性简单劳动,因此对日常使用到功能进行了一个...

易水风萧
2019/10/23
1.5K
1
Perl网络编程 (Network Programming with Perl) 中文pdf

这是一本使用Perl编程语言创建基于网络的应用程序的指导书。 全书内容分为四个部分:基础知识,为公共服务开发客户,开发TCP客户/服务器系统和高级主题。本书的目的是教会读者利用最新版Per...

小编辑
2011/04/19
1.7K
0

没有更多内容

加载失败,请刷新页面

加载更多

eclipse创建maven项目

eclipse基础配置 1、修改工作空间默认字符集为UTF-8Eclipse菜单 -> Window -> Preferences -> General ->Workspace2、安装JST Server--默认安装的eclipse Preferences菜单下没有...

丁小屁
21分钟前
27
0
使用Github快速的寻找项目

作为一个3年的码农昨天在学习项目,顺便总结一下 ,在Github找项目的几个常用方式 ,如果对您有帮助,可以点个关注,便于下次光顾! 首先我们来看一下常用命令 1、指定搜索方式 搜索文件中有...

SpiritMark
22分钟前
23
0
检查字符串是否不为空且不为空

如何检查字符串是否不为null也不为空? public void doStuff(String str){ if (str != null && str != "**here I want to check the 'str' is empty or not**") { /* handl......

javail
34分钟前
55
0
No module named 'apscheduler.schedulers'

关于 ModuleNotFoundError: No module named 'apscheduler.schedulers' 和 ModuleNotFoundError: No module named 'apscheduler' 的问题,网上有不少解决。大多数都是因为,文件起名与模块名......

開援带碼
55分钟前
53
0
如何查看Android的系统版本?

有谁知道我怎么能检查系统版本(例如1.0 , 2.2 ,等)编程? #1楼 我无法对答案发表评论,但是Kaushik的答案存在一个严重错误:SDK_INT与系统版本不同,但实际上是指API级别。 if(Build.VER...

技术盛宴
今天
35
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部