首页 > 编程语言 >【Java】Vue-Element-Admin 嵌入Druid监控面板

【Java】Vue-Element-Admin 嵌入Druid监控面板

时间:2023-01-11 23:24:08浏览次数:46  
标签:Vue Java Admin true druid springframework org import config

 

我看到若依做了Druid面板的嵌入,我自己的项目干脆也做一个

 

一、后台服务SpringBoot:

Druid配置项:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3308/tt?serverTimeZone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456

    # 德鲁伊监控面板配置
    druid:
      stat-view-servlet:
        # 设置白名单,不填则允许所有访问
        allow:
        url-pattern: /druid/*
        # 访问druid监控界面的用户名密码
        loginUsername: admin
        loginPassword: 123456
        enabled: true
      max-pool-prepared-statement-per-connection-size: 20
      filters: stat,wall
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

 

过滤器需要放行监控页面路径:

# xss 过滤配置
xss:
  enabled: true
  # 忽略不需要过滤的连接
  excludes:
    - /file/upload
    - /chuck-file/chuck
    - /druid
  # 忽略不需要做html转义的json属性值,多个属性用半角逗号分隔
  properties:

 

Security需要放行CSRF攻击和IFrame跨域配置:

package cn.cloud9.server.struct.cors;

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.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

/**
 * Cors跨域访问配置
 * @author OnCloud9
 * @description
 * @project tt-server
 * @date 2022年11月06日 下午 05:55
 */
@Configuration
public class CorsConfig extends WebSecurityConfigurerAdapter {

    @Override
    public void configure(HttpSecurity security) throws Exception {
        security.authorizeRequests()
                .antMatchers("/**").permitAll()
                .anyRequest().authenticated()
                .and().httpBasic()
                .and().cors().configurationSource(corsFilter())
                /* 允许iframe访问本服务资源 */
                .and().headers().frameOptions().disable()
                /* 关闭CSRF攻击阻挡 */
                .and().csrf().disable();
    }

    private CorsConfigurationSource corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedOrigin("*");
        config.addAllowedHeader(CorsConfiguration.ALL);
        config.setAllowCredentials(true);
        config.addAllowedMethod(CorsConfiguration.ALL);

        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);
        return configSource;
    }


}

 

二、后台服务SpringBoot:

LightFrame的封装面板:

<template>
  <div v-loading="loading" style="height: calc(100vh - 110px)">
    <iframe class="iframe-panel" :src="src" />
  </div>
</template>
<script>
export default {
  name: 'LightFrame',
  props: {
    src: {
      type: String,
      required: true
    }
  },
  data() {
    return {
      height: document.documentElement.clientHeight - 94.5 + 'px',
      loading: true,
      url: this.src
    }
  },
  mounted() {
    setTimeout(() => { this.loading = false }, 300)
  }
}
</script>

<style scoped>
.iframe-panel {
  width: 100%;
  height: 100%;
  border: none;
  overflow-scrolling: auto;
}
</style>

  

Druid监控菜单页面:

<template>
  <light-frame :src="druidMonitorUrl" />
</template>

<script>
import LightFrame from '@/components/LightFrame'
export default {
  name: 'Index',
  components: { LightFrame },
  data() {
    return {
      druidMonitorUrl: `${process.env.VUE_APP_BASE_DOMAIN}${process.env.VUE_APP_BASE_API}/druid/index.html`
    }
  }
}
</script>

 

地址环境配置:

# just a flag
ENV = 'development'

# base api
VUE_APP_BASE_DOMAIN = 'http://127.0.0.1:8080'
VUE_APP_BASE_API = '/demo'
VUE_APP_PROXY_API = '/proxy-api'

  

三、注意事项:

1、只有以后台相同的主机访问项目查看Druid监控才会有效(例如 后台服务主机是127.0.0.1,Web访问的主机也必须以127.0.0.1才可以)

2、IFrame的Src地址,不要使用代理地址去连接请求 (Web配置地址的时候就使用直接地址访问)

3、后台一定要配置iframe跨域放行,因为静态资源不在Web项目里面,是在后台里

 

四、实现效果:

 

标签:Vue,Java,Admin,true,druid,springframework,org,import,config
From: https://www.cnblogs.com/mindzone/p/17045174.html

相关文章

  • vue.js 虚拟DOM
    Vue.js使用虚拟DOM来优化更新流程。虚拟DOM是一个JavaScript对象,它可以描述一个真实的DOM结构,并在数据发生变化时重新渲染。当Vue组件的数据发生变化时,Vue会......
  • java使用邮箱发送验证码
    在学习谷粒学院要用阿里云发送短信验证码,无法申请到短信,于是便用邮箱发送验证码。依赖<dependency><groupId>org.springframework.boot</groupId>......
  • java 常见异常
    1.数据库连接关闭(mybatis)org.mybatis.spring.MyBatisSystemException:nestedexceptionisorg.apache.ibatis.exceptions.PersistenceException:###Errorquerying......
  • 利用Java+Html+Jsp实现简单的MVC分层项目->实现表的增删改查
    graphTDView-->ServiceService-->ControllerService-->ViewController-->Service准备工作:无骨架创建一个maven项目,配置文件目录【增加webapp目录,在webapp下面一级添......
  • javase知识点总结:初认java,数据类型与变量,运算符
    一.初识java1.初识Java的main方法main方法示例publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello,world");......
  • 【参考答案】java基础练习:变量、数据类型、输入、输出、运算符
     练习1:判断输入的值是否是偶数,另外,要处理输入错误(目的:熟悉输入、输出,特别是Scanner对象的方法)packagecom.qzcsbj;importjava.util.Scanner;publicclassTest{......
  • 第12届蓝桥杯JavaB组省赛
    第12届蓝桥杯JavaB组省赛前言用时及分数自测开始时间:\(2023年1月11日16:00\)自测结束时间:\(2023年1月11日18:05\)自测用时:约\(2\)小时最终得分:\(20(35)\)PS:此处......
  • day07-Vue04
    Vue0412.Vue2脚手架模块化开发目前开发模式的问题:开发效率低不够规范维护和升级,可读性比较差12.1基本介绍官网地址什么是VueCli脚手架12.2环境配置,搭建项目......
  • Vue.js 响应式原理
    Vue.js是一个渐进式的JavaScript框架,它使用了响应式系统来维护应用程序的状态。响应式系统是Vue.js的核心部分,它使得应用程序能够自动地更新视图,当数据发生变化时。在Vue.......
  • 10个提高开发效率的Vue3常用插件(快来收藏)
    本篇文章给大家总结分享几个好用的 Vue 插件,可以帮助开发者提高开发效率、解决移动端各种滚动场景需求,希望对大家有所帮助!1、vue-multiselect-nextVue.js 的通用选择/......