欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot關(guān)閉druid的頁面和添加密碼驗證方式

 更新時間:2024年05月27日 09:22:49   作者:撈起月亮的漁民小豪  
這篇文章主要介紹了SpringBoot關(guān)閉druid的頁面和添加密碼驗證方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot關(guān)閉druid的頁面和添加密碼驗證

在生產(chǎn)環(huán)境中,需要關(guān)閉druid的頁面,以免被攻擊。

application.properties配置文件中添加參數(shù)

# Druid 數(shù)據(jù)源監(jiān)控配置
# 是否啟用StatViewServlet(監(jiān)控頁面)false為不啟動
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
# IP白名單(沒有配置或者為空,則允許所有訪問)
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1,192.168.0.1
# IP黑名單 (存在共同時,deny優(yōu)先于allow)
spring.datasource.druid.stat-view-servlet.deny=192.168.0.0
# 禁用HTML頁面上的“Reset All”功能
spring.datasource.druid.stat-view-servlet.reset-enable=false
# 登錄名
spring.datasource.druid.stat-view-servlet.login-username=admin
# 登錄密碼
spring.datasource.druid.stat-view-servlet.login-password=admin

SpringBoot集成druid監(jiān)控

1.引入pom依賴

<!-- druid數(shù)據(jù)庫連接池 -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid</artifactId>
	<version>1.1.8</version>
</dependency>

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.2.8</version>
</dependency>

2.配置文件配置監(jiān)控的屬性

注意:如果不想要登錄頁面,配置文件中可注釋掉用戶名和密碼

########## 配置StatViewServlet(監(jiān)控頁面),用于展示Druid的統(tǒng)計信息 ##########
# 啟用StatViewServlet
spring.datasource.druid.stat-view-servlet.enabled=true
# 訪問內(nèi)置監(jiān)控頁面的路徑,內(nèi)置監(jiān)控頁面的首頁是/druid/index.html
spring.datasource.druid.stat-view-servlet.url-pattern=/druid\/*
# 不允許清空統(tǒng)計數(shù)據(jù),重新計算
spring.datasource.druid.stat-view-servlet.reset-enable=false
# 配置監(jiān)控頁面訪問用戶名
#spring.datasource.druid.stat-view-servlet.login-username=admin
# 配置監(jiān)控頁面訪問密碼
#spring.datasource.druid.stat-view-servlet.login-password=admin
# 允許訪問的地址,如果allow沒有配置或者為空,則允許所有訪問
#spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
# 拒絕訪問的地址,deny優(yōu)先于allow,如果在deny列表中,就算在allow列表中,也會被拒絕
#spring.datasource.druid.stat-view-servlet.deny=
########## 配置WebStatFilter,用于采集web關(guān)聯(lián)監(jiān)控的數(shù)據(jù) ##########
# 啟動 StatFilter
spring.datasource.druid.web-stat-filter.enabled=true
# 過濾所有url
spring.datasource.druid.web-stat-filter.url-pattern=\/*
# 排除一些不必要的url
spring.datasource.druid.web-stat-filter.exclusions=/druid\/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico
# 開啟session統(tǒng)計功能
spring.datasource.druid.web-stat-filter.session-stat-enable=true
# session的最大個數(shù),默認1000
spring.datasource.druid.web-stat-filter.session-stat-max-count=1000
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
# 配置獲取連接等待超時的時間
spring.datasource.druid.max-wait=60000
# 配置間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
spring.datasource.druid.time-between-eviction-runs-millis=60000
# 配置一個連接在池中最小生存的時間,單位是毫秒
spring.datasource.druid.min-evictable-idle-time-millis=30000
spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
# 打開PSCache,并且指定每個連接上PSCache的大小
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
spring.datasource.druid.filters=stat,wall
# Spring 監(jiān)控,利用aop 對指定接口的執(zhí)行時間,jdbc數(shù)進行記錄
spring.datasource.druid.aop-patterns= com.admin.controller.*,com.front.controller.*

注意:每個/*符號,走做了轉(zhuǎn)譯,復(fù)制過去的話需要取消轉(zhuǎn)譯符號

3. 運行后,訪問方法

(1)可單獨訪問整個鏈接

(2) 需要將頁面內(nèi)嵌在項目中:可在后臺寫一個方法,返回單獨訪問的路徑

  • 后臺
@RestController
@RequestMapping("/druid")
public class DataSource {

    @Value("${druid.index}")
    private String druidIndex;


    @GetMapping("/druid")
    public ResponseInfo druid(HttpServletRequest request) {
        // 127.0.0.1
        String remoteAddr = RequestUtils.getRemoteAddr(request);
        // 訪問域名 192.168.1.105
        String serverName = request.getServerName();
        // 訪問端口號
        int port = request.getServerPort();
        String url = "http://" + serverName + ":" + port + druidIndex;
        return new ResponseInfo(url);
    }
}

  • 配置文件druid.index
 druid.index=/druid/index.html
  • 工具類
/**
 * 獲得真實IP地址。在使用了反向代理時,直接用HttpServletRequest.getRemoteAddr()無法獲取客戶真實的IP地址。
 * 
 * @param request
 *            ServletRequest
 * @return
 */
public static String getRemoteAddr(ServletRequest request) {
	String addr = null;
	if (request instanceof HttpServletRequest) {
		HttpServletRequest hsr = (HttpServletRequest) request;
		for (String header : ADDR_HEADER) {
			if (StringUtils.isBlank(addr) || NUKNOWN.equalsIgnoreCase(addr)) {
				addr = hsr.getHeader(header);
			} else {
				break;
			}
		}
	}
	if (StringUtils.isBlank(addr) || NUKNOWN.equalsIgnoreCase(addr)) {
		addr = request.getRemoteAddr();
	} else {
		// 對于通過多個代理的情況,第一個IP為客戶端真實IP,多個IP按','分割
		if (addr != null) {
			int i = addr.indexOf(",");
			if (i > 0) {
				addr = addr.substring(0, i);
			}
		}

	}
	return addr;
}
  • 前端
<template>
  <iframe :src="this.txtUrl" frameborder="0" width="100%" :style="{height:calHeight}" scrolling="auto"></iframe>
</template>

<script>

export default {
  name: 'datasource',
  data () {
    return {
      txtUrl: ''
    }
  },
  computed: {
      //計算屬性 , 設(shè)置iframe高度為窗口高度少100px
      calHeight() {
        return (window.innerHeight - 100) + 'px';
      }
    },
  methods: {
    fetchSysteminfo () {
    // 調(diào)用的后臺的druid方法
      this.$request.fetchDatasource().then(res => {
        if (res.code === 200) {
          this.txtUrl = res.data
        }
      }).then(this.hideTableLoading).catch(this.hideTableLoading)
    }
  },
  created () {
    this.fetchSysteminfo()
  }
}
</script>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java使用Curator進行ZooKeeper操作的詳細教程

    Java使用Curator進行ZooKeeper操作的詳細教程

    Apache Curator 是一個基于 ZooKeeper 的 Java 客戶端庫,它極大地簡化了使用 ZooKeeper 的開發(fā)工作,在分布式系統(tǒng)中,ZooKeeper 通常被用來作為協(xié)調(diào)服務(wù),而 Curator 則為我們提供了更簡潔易用的接口,本文將介紹 Curator 的核心功能及實踐樣例,需要的朋友可以參考下
    2025-04-04
  • 解決maven項目tomcat啟動失敗war exploded:Error during artifact deploym問題

    解決maven項目tomcat啟動失敗war exploded:Error during 

    在SpringMVC項目中,使用war和warexploded兩種部署方式可能會導(dǎo)致不同的路徑問題,從而出現(xiàn)404錯誤,war模式將項目打包上傳,而warexploded模式則保持文件夾結(jié)構(gòu)上傳,開發(fā)時建議使用warexploded模式,方便利用Update classes and resources功能自動更新
    2024-10-10
  • Java適配器模式應(yīng)用之電源適配器功能詳解

    Java適配器模式應(yīng)用之電源適配器功能詳解

    這篇文章主要介紹了Java適配器模式應(yīng)用之電源適配器功能,較為詳細的分析了適配器模式的概念、原理及Java基于適配器模式實現(xiàn)電源適配器功能的相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2018-05-05
  • Java?項目中使用遞歸的小結(jié)

    Java?項目中使用遞歸的小結(jié)

    在 Java 中,遞歸是指在方法的定義中調(diào)用自身的過程,遞歸是基于方法調(diào)用棧的原理實現(xiàn)的:當(dāng)一個方法被調(diào)用時,會在調(diào)用棧中創(chuàng)建一個對應(yīng)的棧幀,包含方法的參數(shù)、局部變量和返回地址等信息,這篇文章主要介紹了Java?項目中對使用遞歸的理解分享,需要的朋友可以參考下
    2024-07-07
  • 使用Java反射模擬實現(xiàn)Spring的IoC容器的操作

    使用Java反射模擬實現(xiàn)Spring的IoC容器的操作

    這篇文章主要介紹了使用Java反射模擬實現(xiàn)Spring的IoC容器的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java并發(fā)之傳統(tǒng)線程同步通信技術(shù)代碼詳解

    Java并發(fā)之傳統(tǒng)線程同步通信技術(shù)代碼詳解

    這篇文章主要介紹了Java并發(fā)之傳統(tǒng)線程同步通信技術(shù)代碼詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • JDBC連接SQL?Server數(shù)據(jù)庫實現(xiàn)增刪改查的全過程

    JDBC連接SQL?Server數(shù)據(jù)庫實現(xiàn)增刪改查的全過程

    實際開發(fā)中手動的輸入SQL語句是少之又少,大多數(shù)情況下是通過編譯代碼進行來控制自動執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于JDBC連接SQL?Server數(shù)據(jù)庫實現(xiàn)增刪改查的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 快速排序的原理及java代碼實現(xiàn)

    快速排序的原理及java代碼實現(xiàn)

    網(wǎng)上關(guān)于快速排序的算法原理和算法實現(xiàn)都比較多,不過java是實現(xiàn)并不多,而且部分實現(xiàn)很難理解,和思路有點不搭調(diào)。所以整理了這篇文章。如果有不妥之處還請建議。
    2016-02-02
  • SpringBoot登錄驗證token攔截器的實現(xiàn)

    SpringBoot登錄驗證token攔截器的實現(xiàn)

    本文主要介紹了SpringBoot登錄驗證token攔截器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • JDK8中新增的原子性操作類LongAdder詳解

    JDK8中新增的原子性操作類LongAdder詳解

    這篇文章主要給大家介紹了關(guān)于JDK8中新增的原子性操作類LongAdder的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08

最新評論