第十一节 资源服务器api-server集成zuul网关

zuul 集成spring security 作为边缘路由访问时的api权限控制策略

  • api-server作为资源服务器。添加zuul控制 在上一节中,security-server中oauth2作为整个微服务的权限控制中心,主要功能对客户端的 认证和token的发放,与此向对的就是资源服务器,资源服务器依赖于权限服务器。其他客户端想要 调用资源服务器的接口,就必须通过权限服务器的认证。

zuul的基本介绍已在第六节中有过基本介绍,可参考第六节 服务端负载均衡

关于资源服务器的api-server的配置使用如下:

  1. pom 添加依赖
 <dependency>
            <groupId>com.xzg</groupId>
            <artifactId>online-table-reservation-common</artifactId>
            <version>v1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-netflix-hystrix-stream</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-oauth2</artifactId>
        </dependency>
  1. 基本配置,启动类@EnableResourceServer标注该服务为资源服务器
@SpringBootApplication
@EnableEurekaClient
@EnableResourceServer
@Configuration
@ComponentScan({"com.xzg.api.service", "com.xzg.common"})
public class ApiApp {

    private static final Logger LOG = LoggerFactory.getLogger(ApiApp.class);
    static {
        // 本地测试
        LOG.warn("禁用ssl主机名检查,开发截断使用");
        HttpsURLConnection.setDefaultHostnameVerifier((hostname, sslSession) -> true);
    }
    @LoadBalanced
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }

    public static void main(String[] args) {
        LOG.info("Register MDCHystrixConcurrencyStrategy");
        HystrixPlugins.getInstance().registerConcurrencyStrategy(new MDCHystrixConcurrencyStrategy());
        SpringApplication.run(ApiApp.class, args);
    }
}
  1. 配置文件中添加权限认证服务配置
#其他略
security:
  oauth2:
    resource:
      userInfoUri: https://localhost:9001/auth/user
management:
  security:
    enabled: false

具体配置可参考源码

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏世界第一语言是java

微服务架构搭建:Consul+sleuth+zipkin+Feign/Ribbon+SpringConfig+Zuul+Hystrix Dash-Board-Turbine

9365
来自专栏运维

Puppet3.1 Master Client安装测试

Linux master.inno.com 2.6.32-279.22.1.el6.centos.plus.x86_64 #1 SMP Wed Feb 6 05...

1582
来自专栏黑白安全

别动我的shell

[sourcecode language="plain"]root@kali:~# msfvenom -p windows/shell_hidden_bind_...

992
来自专栏Java 源码分析

SpringCloud:Eureka服务注册与发现

Eureka 其实就是一个 服务注册与发现的中心,也就是相当于我们前面做的一些生产者的服务需要注册到我们的注册中心,那么我们的消费者就不用把代码写死,而是可以去...

1883
来自专栏运维

ELK日志分析系统搭建部署

  日志监控和分析在保障业务稳定运行时,起到了很重要的作用,不过一般情况下日志都分散在各个生产服务器,且开发人员无法登陆生产服务器,这时候就需要一个集中式的日志...

1462
来自专栏程序猿DD

Spring Cloud Zuul中使用Swagger汇总API接口文档

之前给大家的回复都只是简单的说了个思路,昨天正好又有人问起,索性就举个例子写成博文供大家参考吧。

1584
来自专栏编程软文

SpringCloud微服务框架搭建

3839
来自专栏别先生

creating server tcp listening socket 127.0.0.1:6379: bind No error

参考链接:https://blog.csdn.net/n_fly/article/details/52692480

1631
来自专栏IT笔记

SpringBoot开发案例之整合日志管理

有一种力量无人能抵挡,它永不言败生来倔强。有一种理想照亮了迷茫,在那写满荣耀的地方。 ? 00.jpg 概述 参考文档:Logging 这里顺便引用以下部分原文...

5078
来自专栏腾讯云数据库(TencentDB)

Spring MVC使用redis共享session

Spring Web MVC是基于Java的轻量级Web框架,使用了MVC架构模式的思想。Spring Web MVC核心架构为:

93025

扫码关注云+社区

领取腾讯云代金券