springboot整合shiro实现认证授权源码

2023-10-26

shiro-admin

介绍

springboot整合shiro实现前后端分离架构(swagger文档协调前端开发)

源码地址:https://gitee.com/liujinxin_ark/shiro-admin

软件架构

架构说明
springboot + shiro + mysql + swagger

使用说明

运行项目后访问 http://localhost:8080/doc.html 即可进入 swagger接口文档界面。

如果想要单独做成一个jar包 后期项目直接导入使用,源码中在pom文件的build插件开启注释即可

在这里插入图片描述

1.登录操作

在这里插入图片描述
登录成功后需要在 文档管理 -> 全局参数设置 添加header参数。

2.获取用户可以访问的左侧菜单

使用 系统模块 -> 获取菜单列表。

前端请求案例

axios请求方式

<!DOCTYPE html>
<html>
 
<head>
    <meta charset="UTF-8">
    <title>mock拦截axios请求</title>
</head>
 
<body>
 
    <!-- 本地npm安装mock和axios -->
    <!-- <script src="../node_modules//mockjs//dist//mock.js"></script> -->
    <!-- <script src="../node_modules/axios//dist/axios.js"></script> -->
 
    <!-- 官方在线引入地址(推荐使用本地) -->
    <script src="http://mockjs.com/dist/mock.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
 
    <script>
        /*************** axios拦截配置 ***************************************************/
        /**
         * 请求拦截
         */
        axios.interceptors.request.use(config => {
            config.headers.common['Authorization'] = "Bearer c91afb68-7508-45d9-9193-0d004b3f42cf";
            return config;
        });
 
        /**
         * 响应拦截
         */
        // axios.interceptors.response.use(response => {
        //     return response;
        // });
        /********************************************************************************/
 
 
        /*************** mock模拟数据 ****************************************************/
        // mock数据拦截http://121.36.146.10:8084/industry请求 模拟响应数据
        // Mock.mock('http://121.36.146.10:8084/industry', {
        //     'data': [{
        //         id: 1,
        //         iId: 0,
        //         industryName: "互联网/IT/电子/通信"
        //     }, {
        //         id: 2,
        //         iId: 0,
        //         industryName: "房地产"
        //     }, {
        //         id: 3,
        //         iId: 0,
        //         industryName: "金融业"
        //     }, {
        //         id: 4,
        //         iId: 0,
        //         industryName: "建筑业"
        //     }],
        //     'msg': "ok",
        //     'status': 200
        // });
        /********************************************************************************/
 
 
        //设置全局的baseURL
        axios.defaults.baseURL = 'http://localhost:8080'
 
        axios.get('/user/list').then(res => {
            console.log(res.data)
        });
    </script>
</body>
 
</html>

ajax请求方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
    
    <script>
        $.ajax({
            url: 'http://localhost:8080/user/list',
            type: 'get',
            beforeSend: function(xhr) {
                xhr.setRequestHeader("Authorization","Bearer a7a9886e-b534-4d4c-929e-ff2deaee5b19");
            },
            data: {
                
            },
            success:function(data){
                console.log(data)
            }
        });
    </script>

</body>
</html>

求点赞加关注 ~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot整合shiro实现认证授权源码 的相关文章

  • 部署程序集:当前显示的页面包含无效值

    我从 Sourceforge 导入了一个 Java Web 应用程序 我花了三个工作周的时间来消除项目名称和包上附加的所有红叉 但现在我无法使该应用程序在我的 Eclipse 和 tomcat6 开发环境上运行 在项目属性中 当我尝试设置部
  • Java中的整数除法[重复]

    这个问题在这里已经有答案了 这感觉像是一个愚蠢的问题 但我在 Java 文档中找不到答案 如果我声明两个 int 然后将它们相除 到底发生了什么 他们是否转换为floats doubles首先 划分 然后投射回integer 或者除法是作为
  • 如何将TabLayout与Recyclerview同步?

    我有一个TabLayout with Recyclerview这样当单击选项卡时Recyclerview滚动到特定位置 我也想要相反的过程 这样当Recyclerview滚动到特定位置 然后该特定选项卡会突出显示 例如 如果有 4 个选项卡
  • Java中printf左对齐

    当我运行该程序时 阶乘值右对齐 有没有办法让它左对齐 同时保持中间 50 个空格 public class Exercise 5 13 public static void main String args int numbers 1 2
  • “不能从静态上下文引用非静态方法”JPA Java

    我从这一行收到 无法从静态上下文引用非静态方法 错误 createStudent stu00001 new Date 631152000000 m WB new Type Name Bob Smith 如何正确组成 日期 我查看了 API
  • 线程“main”中出现异常 java.lang.NoClassDefFoundError:无法初始化类 com.sun.jersey.core.header.MediaTypes

    我正在尝试运行一个球衣客户端并面临这个问题 WS级 import javax ws rs GET import javax ws rs Path import javax ws rs Produces import javax ws rs
  • java中数字字符串间隔排序

    我正在与一些人一起上一个人课 其中有姓名 年龄范围等详细信息 年龄区间为 0 5 6 10 11 30 31 45 46 50 50 100 100 110 我正在上 Person 课name ageBand字符串间隔及其参数化构造函数 g
  • 如何将值从 recyclerview 项目传递到另一个活动

    当我们单击 recyclerview 项目时 我试图将 recyclerview 项目中的值传递给另一个活动 这里我使用的是OnItemTouchListener 我从 JSON 检索数据并将其解析为 ArrayList 我保存了5个参数
  • Java:使用类型参数访问私有构造函数

    这是后续这个关于java私有构造函数的问题 https stackoverflow com questions 2599440 accessing the private constructor 假设我有以下课程 class Foo
  • 实现一个java UDF并从pyspark调用它

    我需要创建一个在 pyspark python 中使用的 UDF 它使用 java 对象进行内部计算 如果它是一个简单的 python 我会做类似的事情 def f x return 7 fudf pyspark sql functions
  • 从命令行将 clojure 源代码编译为类(AOT)(不使用 lein)

    我正在尝试将 clojure 源代码编译成类文件 并仅使用命令行运行它 没有 lein 也没有 可能 回复 我有 core cljsrc hello目录 src hello core clj 这是源代码 ns hello core defn
  • 如何从属性中获取枚举值

    我有一个带有值的枚举VALID and INVALID 它们有一个与之关联的布尔属性 我想根据我提供的布尔值获取枚举值 如果是true我应该得到VALID 如果是false我应该得到INVALID 我想根据成员变量的值 在如下所示的 get
  • 如何抑制有关已弃用 api 的 javac 警告?

    当我编译时 javac 输出 Note Some input files use or override a deprecated API Note Recompile with Xlint deprecation for details
  • 将 LinkedHashset 内容复制到新的 ArrayList?

    我有一个最初包含一些内容的 listView 如果它得到相同的内容 我通过删除重复linkedhashset 现在 我想复制linkedhashset内容 即没有重复的内容到新的ArrayList 我尝试复制通过 p addAll 0 lh
  • 在 Eclipse 中编写链接特定行的注释

    我正在 Java 中使用 Eclipse 并且处理很长的类 我需要这样的功能 在方法的顶部注释中 例如 有一个由该方法执行的操作列表 对于列出的每个操作 我想将注释的一部分 超链接 到相关代码的特定行 然后使用 Ctrl Click 到该行
  • GWT 和身份验证

    保护 GWT Tomcat 应用程序执行身份验证和授权的最佳策略是什么 有两种基本策略 确保入口点安全 确保远程服务的安全 确保入口点安全 最简单的方法是使用常规 Web 应用程序安全工具限制对 GWT 生成的 html js 文件的访问
  • 缓冲区溢出(与)缓冲区溢出(与)堆栈溢出[重复]

    这个问题在这里已经有答案了 可能的重复 堆栈溢出和缓冲区溢出有什么区别 https stackoverflow com questions 1120575 what is the difference between a stack ove
  • 使用java读取行并映射过滤数据[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions publi
  • 如何使用 GWT 2.4 在服务器端动态创建 UI

    我正在尝试使用 Google Web Toolkit v2 4 创建用户界面 由于多种原因 我需要在运行时指定服务器上接口的内容 我的意思不仅仅是按钮需要动态标签等 而是整个 UI 需要在运行时创建 我的大部分 UI 都可以指定为直接的 H
  • 像 Java 一样覆盖 Objective-C 类中的方法

    我经常使用此语句来扩展类 而不需要编写整个单独的文件 假设 ClassFromFramework 是库中包含的框架的一部分的类 public ClassFromFramework public String myMethod operati

随机推荐

  • Cocos 2dx iOS 平台初始化,OpenGL 初始化,分辨率设置

    Cocos 2dx iOS 平台初始化 OpenGL 初始化 分辨率设置 1 Main m int retVal UIApplicationMain argc argv nil AppController AppController mm
  • 判断操作系统和浏览器类型(苹果还是安卓,微信还是QQ)

    一 获取操作系统类型 function getOS var userAgent navigator in window userAgent in navigator navigator userAgent toLowerCase var v
  • FPGA时序约束学习笔记——IO约束(转)

    一 参考模型 图源来自 抢先版 小梅哥FPGA时序约束从遥望到领悟 二 参数分析 T 0 gt 3 Tclk1 T 3 gt 4 Tco T 4 gt 5 T 5 gt 6 Tdata T 4 gt 5 Tdata Init T 5 gt
  • 渗透测试流程

    文章目录 前言 一 渗透测试流程 二 流程步骤 1 明确目标 2 信息收集 3 漏洞探测 4 漏洞验证 5 提权所需 6 信息分析 7 信息整理 8 形成报告 总结 前言 渗透测试 出于保护信息系统的目的 更全面地找出测试对象的安全隐患 入
  • python数据库连接

    python数据库连接 import os import time import pymysql import sys class Myclass object def init self try self db pymysql conne
  • Springboot整合Activiti详解

    文章目录 版本依赖 配置文件 需要注意的问题 画流程图 activiti服务类进行编写 流程部署 流程定义 启动流程 流程实例 测试流程 启动流程 完成任务 受理任务 版本依赖 开发工具 IDEA SpringBoot 2 4 5 这里我试
  • MySQL

    1 MySQL概述 1 什么是数据库 数据库是一个存储数据的仓库 2 都有哪些公司在用数据库 金融机构 游戏网站 购物网站 论坛网站 3 提供数据库服务的软件 1 软件分类 MySQL SQL Server Oracle Mariadb D
  • 初中计算机试题戏曲进校园,【校园通讯】“戏曲进校园”走进东街学校,春风化新雨,戏曲百媚生!...

    原标题 校园通讯 戏曲进校园 走进东街学校 春风化新雨 戏曲百媚生 戏曲进校园 戏曲进校园 走进东街学校 春风化新雨 戏曲百媚生 文 东街学校 张永慰 弘扬民族文化 展现戏曲精华 10月10日 戏曲进校园 活动走进济水东街学校 为全体师生带
  • 3.18飞书面试(58min)

    3 18飞书面试 58min 1 问项目 首先是问redis是怎么用的 mq的消费是怎么写的呢 mq如何保证消息消费的可靠性 你在项目中用到了本地缓存 放在了业务代码内存中 那如果签到一半你的项目突然崩了 本地缓存都消失了 那不是会出问题啊
  • [人工智能-深度学习-66]:架构 - 人工智能的学习误区与正确思路、方法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122116482 目录 前言 第1章
  • spring+struts+ibatis

    原来的系统里面只采用了struts的框架 并且没有使用struts的校验功能 为方便开发 修改框架为spring struts ibatis组合1 添加需要的jar文件2 添加spring配置文件applicationContext xml
  • view-source是一种协议,查看源码

    view source是一种协议 早期基本上每个浏览器都支持这个协议 后来Microsoft考虑安全性 对于WindowsXP pack2以及更高版本以后IE就不再支持此协议 但是这个方法在FireFox和Chrome浏览器都还可以使用 如
  • Linux驱动_spi驱动(ICM20608)

    参考 Linux SPI 驱动分析 1 结构框架 StephenZhou CSDN博客 linux spi驱动 Linux SPI 驱动分析 2 框架层源码分析 StephenZhou CSDN博客 spi message init SPI
  • sql server 加密_列级SQL Server加密

    列加密 创建一个新的数据库并创建CustomerInfo表 CREATE DATABASE CustomerData Go USE CustomerData GO CREATE TABLE CustomerData dbo Customer
  • 机器学习/深度学习--手写数字识别(MNIST数据集)

    import torch 导入torchvision的transform模块 用来处理数据集 from torchvision import transforms from torchvision import datasets from
  • WebRTC音视频通话-RTC直播本地视频及相册视频文件

    WebRTC音视频通话 RTC直播本地视频及相册视频文件 WebRTC音视频通话 RTC直播本地视频文件效果图如下 WebRTC音视频通话 RTC直播本地视频文件时候 用到了AVPlayer CADisplayLink 一 通过AVPlay
  • SpringBoot项目部署到阿里云服务器

    一 阿里云 01 开放端口 02 安装jdk 將jar包放到这个目录下 解压缩 并删除安装包 tar zxvf jdk 8u191 linux x64 tar gz rm f jdk 8u191 linux x64 tar gz 设置系统环
  • shell中 >&2含义

    echo this is a test gt 2 gt 2 也就是把结果输出到和标准错误一样 之前如果有定义标准错误重定向到某file文件 那么标准输出也重定向到这个file文件 其中 的意思 可以看成是 The same as 与 一样
  • webpack入门

    webpack入门 webpack简介 模块打包器 项目构建工具 自动化构建工具 将多种类型资源之间的依赖关系构建成统一的静态资源 打包上线部署 js css等 但不包括html 因为它认为html不算模块 四个核心概念 入口entry 输
  • springboot整合shiro实现认证授权源码

    shiro admin 介绍 springboot整合shiro实现前后端分离架构 swagger文档协调前端开发 源码地址 https gitee com liujinxin ark shiro admin 软件架构 架构说明 sprin