国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Spring Boot Admin】使用(整合Spring Security服務(wù),添加鑒權(quán))

這篇具有很好參考價值的文章主要介紹了【Spring Boot Admin】使用(整合Spring Security服務(wù),添加鑒權(quán))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

Spring Boot Admin 監(jiān)控平臺

背景:Spring Boot Admin 監(jiān)控平臺不添加鑒權(quán)就直接訪問的話,是非常不安全的。所以在生產(chǎn)環(huán)境中使用時,需要添加鑒權(quán),只有通過鑒權(quán)后才能監(jiān)控客戶端服務(wù)。本文整合Spring Security進(jìn)行實(shí)現(xiàn)。
pom依賴

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
            <version>2.6.11</version>
        </dependency>
        <!--alibaba-nacos-discovery(阿里注冊中心discovery)-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    </dependencies>
    
    <dependencyManagement>
        <dependencies>
            <!--Spring Boot 相關(guān)依賴-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>2.5.3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--Spring Cloud 相關(guān)依賴-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2020.0.5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--Spring Cloud Alibaba 相關(guān)依賴-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

yml配置

server:
  port: 18000

spring:
  application:
    name: admin-server
  security:
    user:
      name: admin
      password: admin
  cloud:
    nacos:
      discovery:
        enabled: true
        server-addr: 127.0.0.1:8848
        group: admin  #指定group
        namespace: public
        service: ${spring.application.name}

啟動類@EnableAdminServer

package com.admin;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient
@EnableAdminServer
@SpringBootApplication
public class AdminServerApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(AdminServerApplication.class,args);
    }
}

安全配置類:SecuritySecureConfig.java

package com.admin.config;

import de.codecentric.boot.admin.server.config.AdminServerProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;

@Configuration(proxyBeanMethods = false)
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {

    private final String adminContextPath;

    public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
        this.adminContextPath = adminServerProperties.getContextPath();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
        successHandler.setTargetUrlParameter( "redirectTo" );

        http.authorizeRequests()
                .antMatchers( adminContextPath + "/assets/**" ).permitAll()
                .antMatchers( adminContextPath + "/login" ).permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin().loginPage( adminContextPath + "/login" ).successHandler( successHandler ).and()
                .logout().logoutUrl( adminContextPath + "/logout" ).and()
                .httpBasic().and()
                .csrf().disable();
    }
}

服務(wù)啟動成功后,訪問鏈接:http://127.0.0.1:18000。需要先進(jìn)行登錄(admin-admin),才能進(jìn)入控制臺頁面。
【Spring Boot Admin】使用(整合Spring Security服務(wù),添加鑒權(quán)),Spring Boot Admin,Spring Cloud,spring boot,spring,java,springcloud

客戶端服務(wù)

背景:客戶端服務(wù)的檢查接口(/actuator/**)默認(rèn)可以直接通過接口調(diào)用,是非常不安全的。所以在生產(chǎn)環(huán)境中使用時,可添加鑒權(quán)功能提升安全性。
pom依賴

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.6.11</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.14</version>
            <scope>provided</scope>
        </dependency>
        <!-- alibaba-nacos-discovery(阿里注冊中心discovery)-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    </dependencies>
    
    <dependencyManagement>
        <dependencies>
            <!--Spring Boot 相關(guān)依賴-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>2.5.3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--Spring Cloud 相關(guān)依賴-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2020.0.5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--Spring Cloud Alibaba 相關(guān)依賴-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

yml配置(通過Url注冊)

spring:
  security:
    user:
      name: user
      password: user
  application:
    name: admin-order
  # spring boot admin
  boot:
    admin:
      client:
        url: http://127.0.0.1:18000
        username: admin
        password: admin
        instance:
          prefer-ip: true
          name: admin-order
          # 這個name與password用于在注冊到管理端時,使管理端有權(quán)限獲取客戶端端點(diǎn)數(shù)據(jù)
          metadata: 
            user.name: ${spring.security.user.name}
            user.password: ${spring.security.user.password}
server:
  port: 18001
  servlet:
    context-path: /order

#  endpoints config
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always

logging:
  # 只有配置了日志文件,才能被監(jiān)控收集
  file:
    name: logs/${spring.application.name}/${spring.application.name}.log

yml配置(通過注冊中心注冊)

spring:
  security:
    user:
      name: user
      password: user
  application:
    name: admin-order
  cloud:
    nacos:
      discovery:
        metadata:
          # 為服務(wù)實(shí)例添加一個名為“user.name”的元數(shù)據(jù)項(xiàng),并將其值設(shè)置為指定的服務(wù)用戶名。這個用戶名通常用于進(jìn)行鑒權(quán),以確保只有授權(quán)的用戶才能訪問該服務(wù)。
          user.name: ${spring.security.user.name}
          user.password: ${spring.security.user.password}
          management:
            # 表示Actuator端點(diǎn)的上下文路徑。具體地說,這個屬性的作用是將Actuator端點(diǎn)的上下文路徑設(shè)置為${server.servlet.context-path}/actuator
            context-path: ${server.servlet.context-path}/actuator
        enabled: true
        server-addr: 127.0.0.1:8848
        group: admin  #指定group
        namespace: public
        service: ${spring.application.name}

server:
  port: 18001
  servlet:
    context-path: /order

#  endpoints config
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always

logging:
  # 只有配置了日志文件,才能被監(jiān)控收集
  file:
    name: logs/${spring.application.name}/${spring.application.name}.log

啟動類

package com.admin;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@Slf4j
@EnableDiscoveryClient
@SpringBootApplication
public class AdminOrderApp {
    public static void main(String[] args) {
        SpringApplication.run(AdminOrderApp.class, args);
    }
}

服務(wù)啟動成功后,訪問監(jiān)控平臺,就能監(jiān)控admin-order服務(wù)了。

注意:如果監(jiān)控平臺上沒有看見客戶端服務(wù),則需要重啟Spring Boot Admin 監(jiān)控服務(wù)文章來源地址http://www.zghlxwxcb.cn/news/detail-603001.html

到了這里,關(guān)于【Spring Boot Admin】使用(整合Spring Security服務(wù),添加鑒權(quán))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Boot 3.1中如何整合Spring Security和Keycloak

    Spring Boot 3.1中如何整合Spring Security和Keycloak

    在今年2月14日的時候,Keycloak 團(tuán)隊(duì)宣布他們正在棄用大多數(shù) Keycloak 適配器。其中包括Spring Security和Spring Boot的適配器,這意味著今后Keycloak團(tuán)隊(duì)將不再提供針對Spring Security和Spring Boot的集成方案。但是,如此強(qiáng)大的Keycloak,還要用怎么辦呢?本文就來聊聊,在最新的Spring Boot

    2024年02月07日
    瀏覽(24)
  • 【Spring Security】分布式鑒權(quán)的使用

    【Spring Security】分布式鑒權(quán)的使用

    ????歡迎來到我的CSDN主頁!???? ??我是Java方文山,一個在CSDN分享筆記的博主。???? ??推薦給大家我的專欄《Spring Security》。???? ??點(diǎn)擊這里,就可以查看我的主頁啦!???? Java方文山的個人主頁 ??如果感覺還不錯的話請給我點(diǎn)贊吧!???? ??期待你的加入,一

    2024年02月02日
    瀏覽(15)
  • SpringCloud微服務(wù)整合Spring Security OAuth2

    SpringCloud微服務(wù)整合Spring Security OAuth2

    首先得了解什么是OAuth2,這個的話可以參見博客: https://blog.csdn.net/weixin_42272869/article/details/112260123 https://www.bilibili.com/video/BV1D94y1Z7t1?p=33vd_source=bf9d70f3d2a451db07f40b6407c95a77 本文采用的是使用最廣泛的、安全性最高的 授權(quán)碼模式 進(jìn)行講解。 單獨(dú)創(chuàng)建一個鑒權(quán)微服務(wù)auth,負(fù)責(zé)整個

    2024年02月09日
    瀏覽(41)
  • 【高危】Spring Security鑒權(quán)規(guī)則錯誤配置風(fēng)險

    【高?!縎pring Security鑒權(quán)規(guī)則錯誤配置風(fēng)險

    Spring Security 是一套為基于Spring的應(yīng)用程序提供說明性安全保護(hù)的安全框架。 在 Spring Security 受影響的版本中,由于 Spring Security 的授權(quán)規(guī)則會應(yīng)用于整個應(yīng)用程序上下文,當(dāng)應(yīng)用程序中包含多個servlet,并且其中一個為DispatcherServlet時 ,使用 requestMatchers(String) 方法錯誤地將非

    2024年02月15日
    瀏覽(34)
  • 【Spring Boot Admin】客戶端服務(wù)無法注冊到監(jiān)控平臺的相關(guān)問題及解決方案

    1、客戶端服務(wù)整合了Spring Security 通過URL注冊,需在客戶端服務(wù)中添加如下配置 通過注冊中心注冊,需在客戶端服務(wù)中添加如下配置 2、客戶端服務(wù)配置了server.port.context-path參數(shù),并且客戶端服務(wù)通過注冊中心注冊 需在客戶端服務(wù)中添加如下配置 3、Spring Boot Admin 監(jiān)控平臺使

    2024年02月16日
    瀏覽(94)
  • spring boot security使用jwt認(rèn)證

    spring boot security使用jwt認(rèn)證

    在前面的幾篇文章中: spring boot security快速使用示例 spring boot security之前后端分離配置 spring boot security自定義認(rèn)證 spring boot security驗(yàn)證碼登錄示例 基本對常用的基于cookie和session的認(rèn)證使用場景都已覆蓋。但是session屬于有狀態(tài)認(rèn)證,本文給出一個無狀態(tài)的認(rèn)證:jwt認(rèn)證示例。

    2024年02月12日
    瀏覽(17)
  • Spring Boot 如何使用 Spring Security 進(jìn)行認(rèn)證和授權(quán)

    Spring Boot 如何使用 Spring Security 進(jìn)行認(rèn)證和授權(quán)

    在 Web 應(yīng)用程序中,認(rèn)證和授權(quán)是非常重要的功能。Spring Security 是一個基于 Spring 框架的強(qiáng)大的安全框架,它提供了完整的認(rèn)證和授權(quán)解決方案,并且可以輕松地集成到 Spring Boot 應(yīng)用程序中。本文將介紹如何在 Spring Boot 中使用 Spring Security 進(jìn)行認(rèn)證和授權(quán),并提供示例代碼。

    2024年02月11日
    瀏覽(37)
  • Spring Security 6.x 系列【50】授權(quán)服務(wù)器篇之Spring Boot 3.1自動配置

    有道無術(shù),術(shù)尚可求,有術(shù)無道,止于術(shù)。 本系列Spring Boot 版本 3.10 本系列Spring Security 版本 6.1.0 本系列Spring Authorization Serve 版本 1.1.0 源碼地址:https://gitee.com/pearl-organization/study-spring-security-demo

    2024年02月08日
    瀏覽(18)
  • Spring Boot 整合郵件服務(wù)

    首先參考了 Spring Boot整合郵件配置,這篇文章寫的很好,按照上面的操作一步步走下去就行了。 版本配置 然后因?yàn)榉磸?fù)配置版本很麻煩,所以參考了 如何統(tǒng)一引入 Spring Boot 版本?。 FreeMarker 在配置 FreeMarker 時,發(fā)現(xiàn)找不到 FreeMarkerConfigurer 類,參考了 springboot整合Freemark模板

    2024年02月02日
    瀏覽(27)
  • Spring Authorization Server入門 (八) Spring Boot引入Security OAuth2 Client對接認(rèn)證服務(wù)

    Spring Authorization Server入門 (八) Spring Boot引入Security OAuth2 Client對接認(rèn)證服務(wù)

    在之前的文章中實(shí)現(xiàn)了一個認(rèn)證服務(wù),并且添加了一些自定義的內(nèi)容,現(xiàn)在暫時沒想到認(rèn)證服務(wù)的新內(nèi)容,本篇文章就先寫一下客戶端對接的吧,水一篇。 當(dāng)用戶通過客戶端去訪問一個受限的資源時,客戶端會檢測是否有登錄信息,沒有登錄信息會重定向至認(rèn)證服務(wù)器去請求

    2024年02月21日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包