SpringCloud如何配置Eureka授權

weixin_33816946發表於2018-05-18
  1. 現在已經成功的實現了一個Eureeka的服務啟動以及微服務的註冊配置操作,但是現在的程式有一個問題,你自己公司的Eureka服務應該可以註冊的服務只能夠是滿足於認證要求的微服務,所有這樣來在之前所進行的Eureka裡面配置缺少了關鍵性的一步:安全認證,所以應該為Eureka配置上安全認證處理。

    【microcloud-eureka-7001】修改pom.xml配置檔案,引入SpringSecurity依賴包。

    <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 http://maven.apache.org/xsd/maven-4.0.0.xsd">

        <parent>

            <artifactId>microcloud</artifactId>

            <groupId>com.gwolf</groupId>

            <version>1.0</version>

        </parent>

        

        <modelVersion>4.0.0</modelVersion>

        <groupId>com.gwolf</groupId>

        <artifactId>microcloud-eureka-7001</artifactId>

        <packaging>jar </packaging>

        <name>microcloud-eureka-7001</name>

        <url>http://maven.apache.org</url>

        <properties>

            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        </properties>

        <dependencies>

            <dependency>

                <groupId>ch.qos.logback</groupId>

                <artifactId>logback-core</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-starter-jetty</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-test</artifactId>

                <scope>test</scope>

            </dependency>

            <dependency>

                <groupId>org.springframework</groupId>

                <artifactId>springloaded</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-devtools</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-starter-eureka-server</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-starter-config</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-starter-config</artifactId>

            </dependency>

        

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-starter-security</artifactId>

            </dependency>

        </dependencies>

    </project>

    SpringCloud如何配置Eureka安全訪問?
  2. 【microcloud-eureka-7001】一旦我們的專案之中匯入了Security開發包,則每一次啟動微服務的時候都會自動生成一個密碼,而這個密碼由於會改變,所以一般都不使用,所以要修改application.yml配置檔案,追加密碼的配置項。

    server:

      port: 7001

    eureka:

      instance: #eureka例項定義

        hostname: eureka-7001.com #設定清理的間隔時間,預設這個時間使用的毫秒單單位(預設是60秒)

      client: #客戶端進行Eureka註冊的配置

          service-url: 

            defaultZone: http://eureka-7001.com:7001/eureka

          register-with-eureka: false #當前的微服務不註冊到eureka之中

          fetch-registry: false

      server:

        enable-self-preservation: false #是否要設定成保護模式

        eviction-interval-timer-in-ms: 60000  #不通過eureka獲取註冊資訊

    spring:

      application:

        name: microcloud-eureka-7001

    security:

      user:

        name: eureka

        password: eureka

    SpringCloud如何配置Eureka安全訪問?
  3. 此時訪問Eureka的服務地址為:http://eureka:eureka@eureka-7001.com:7001/,要求輸入使用者名稱和密碼。

    SpringCloud如何配置Eureka安全訪問?
  4. 【microcloud-eureka-7001】所有註冊到Eureka服務的地方都要加上使用者名稱和密碼。

    server:

      port: 7001

    eureka:

      instance: #eureka例項定義

        hostname: eureka-7001.com #設定清理的間隔時間,預設這個時間使用的毫秒單單位(預設是60秒)

      client: #客戶端進行Eureka註冊的配置

          service-url: 

            defaultZone: http://eureka:eureka@eureka-7001.com:7001/eureka

          register-with-eureka: false #當前的微服務不註冊到eureka之中

          fetch-registry: false

      server:

        enable-self-preservation: false #是否要設定成保護模式

        eviction-interval-timer-in-ms: 60000  #不通過eureka獲取註冊資訊

    spring:

      application:

        name: microcloud-eureka-7001

    security:

      user:

        name: eureka

        password: eureka

    SpringCloud如何配置Eureka安全訪問?
  5. 【microcloud-provider-dept-8001】修改application.yml配置檔案,進行授權配置。

    server:

      port: 8001

    mybatis:

      config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置檔案所在路徑

      type-aliases-package: com.gwolf.vo       # 定義所有操作類的別名所在包

      mapper-locations:                                     # 所有的mapper對映檔案

      - classpath:mybatis/mapper/**/*.xml

    spring:

      datasource:

        type: com.alibaba.druid.pool.DruidDataSource    # 配置當前要使用的資料來源的操作型別

        driver-class-name: com.mysql.cj.jdbc.Driver      # 配置MySQL的驅動程式類

        url: jdbc:mysql://localhost:3306/mldn_1?serverTimezone=UTC   # 資料庫連線地址

        username: root                                  # 資料庫使用者名稱

        password: root                            # 資料庫連線密碼

        dbcp2:                                          # 進行資料庫連線池的配置

          min-idle: 5                                   # 資料庫連線池的最小維持連線數

          initial-size: 5                               # 初始化提供的連線數

          max-total: 5                                  # 最大的連線數

          max-wait-millis: 200                          # 等待連線獲取的最大超時時間

      application:

        name: microcloud-provider-dept

    eureka:

      client: #客戶端進行Eureka註冊的配置

        service-url: 

          defaultZone: http://eureka:eureka@eureka-7001.com:7001/eureka

      instance:

        instance-id: dept-8001.com  #在資訊列表中顯示主機名稱

        prefer-ip-address: true   #訪問的路徑變為IP地址

        lease-renewal-interval-in-seconds: 2  #設定心跳的時間間隔(預設是30秒)

        lease-expiration-duration-in-seconds: 5 #如果現在超過了5秒的間隔(預設90秒)

    info:

      app.name: gwolf-microcloud

      company.name: www.gwolf.com

      build.artifactId: $project.artifactId$

      build.version:  $project.version$

    SpringCloud如何配置Eureka安全訪問?
  6. 啟動eureka註冊服務和部門微服務,檢視安全認證之後微服務是否註冊成功了。

    SpringCloud如何配置Eureka安全訪問?

相關文章