Shiro-Action:基于Shiro的RESTful权限管理系统

news2024/9/24 21:18:40

摘要:
随着RESTful API的广泛应用,对权限管理的需求也日益增长。Shiro-Action是一个基于Shiro的权限管理系统,专注于RESTful风格的URL授权。本文将深入探讨Shiro-Action的设计思路、技术实现以及在实际项目中的应用价值。

一、引言

RESTful API因其简洁、易于扩展的特性,在现代软件开发中得到了广泛应用。然而,随着API数量的增加,如何确保每个API的安全性成为了开发者面临的重要问题。Shiro-Action正是为了解决这一问题而诞生的,它基于Shiro框架,为RESTful API提供了强大的权限控制功能。

二、Shiro-Action项目j

Shiro-Action采用了Spring Boot 2.0.6.RELEASE作为基础框架,集成了Shiro 1.4.0、MyBatis 1.3.2、Druid 1.1.10、PageHelper 1.2.9以及Shiro-Redis 3.2.3等技术。这样的技术栈保证了系统的稳定性、高性能以及易扩展性。

本项目使用 Spring Boot 搭建, 用于加深对 Spring Boot 与 Shiro 的学习, 项目特色是支持 restful 风格权限控制, 支持对同一 URL, 不同 HTTP Mehtod 的权限控制, 适用于更多的场景.

预览地址: http://shiro.jun6.net/

文档地址: http://docs.zhaojun.im/shiro/

默认管理员账号: admin, 密码: 123456.

普通用户账号: user, 密码: 123456.

为了不影响其他人的浏览体验, 请尽量不要进行删除类的敏感操作. admin 为超级管理员, 自动拥有全部权限.

系统特色

  • 支持根据同 URL, 不同 HTTP Method 来校验权限, 更支持 restful 场景.

  • 集成 OAuth2 登录, 且提供了接口易于拓展开发.

  • 全局异常处理. 根据请求方式区分返回 json 数据还是错误页面.

  • Logback MDC 支持, 将当前登录人和操作者 IP 加入日志中.

  • JSR-303 数据校验

运行环境

  • JDK 1.8

  • MySQL 5.7

  • Redis

快速开始

下载项目

git clone https://github.com/zhaojun1998/Shiro-Action.git

导入项目

使用自己的 IDE 导入, Eclipse 和 Intellij IDEA 均可.

导入数据库

创建数据库, 字符集选择 utf8, 排序规则选择 utf8_general_ci.

然后导入 shiro_action.sql 到数据库中.

配置文件

打开 application.properties 修改 MySQL 和 Redis 连接信息.

spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.cache.type=redis

spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/shiro_action?useSSL=false&characterEncoding=UTF8

启动项目

在完成了上述步骤后,找到 ShiroActionApplication 启动类, 启动即可.

启动后访问地址为:http://localhost:8080 , 用户名:admin, 密码:123456.

系统预览

图片

图片

图片

图片

图片

图片

技术选型

前端
  • 前端框架: Layui

  • 后台模板: Z-Admin

后端
  • SpringBoot 2.0.6.RELEASE

  • Shiro 1.4.0

  • MyBatis 1.3.2

  • Druid 1.1.10

  • PageHelper 1.2.9

  • Shiro-Redis 3.2.3

其他工具类
  • OAuth2 认证工具类: JustAuth

  • Hutool : https://hutool.cn/

三、Shiro-Action核心特性

  1. RESTful风格权限控制:Shiro-Action支持根据同一URL的不同HTTP Method进行权限控制,这使得系统能够更精细地管理权限,适应更多场景。

  2. OAuth2登录集成:Shiro-Action集成了OAuth2登录机制,提供了易于拓展的接口,增强了系统的安全性。

  3. 全局异常处理:系统根据请求方式区分返回JSON数据或错误页面,提高了用户体验。

  4. Logback MDC支持:Shiro-Action集成了Logback MDC,将当前登录人和操作者IP加入日志中,便于问题追踪。

  5. JSR-303数据校验:通过JSR-303数据校验,保证了数据的准确性和完整性。

四、前端与后端框架选择

Shiro-Action的前端框架选择了Layui,这是一款轻量级、模块化的前端UI框架,能够快速构建美观、易用的用户界面。后台模板则选用了Z-Admin,这是一个基于Bootstrap的后台管理系统模板,提供了丰富的功能和良好的用户体验。

五、应用案例与前景

Shiro-Action在实际项目中已经得到了成功应用,为多个RESTful API提供了安全、高效的权限管理。随着RESTful API的普及,Shiro-Action的应用前景十分广阔。

六、结论

Shiro-Action作为一个基于Shiro的RESTful权限管理系统,凭借其强大的功能、灵活的配置以及良好的用户体验,成为了现代软件开发中不可或缺的一部分。通过对其技术栈、核心特性以及应用案例的深入分析,我们可以看到Shiro-Action在实际项目中的巨大价值。

项目下载地址:

https://github.com/zhaojun1998/Shiro-Action

欢迎加入“前端组件开发学习”交流群,一起学习成长!可关注  “前端组件开发” 公众号后,私信后申请入群。

d848d5658a07453c843277846948c608.png

欢迎加入“前端组件开发学习”交流群,一起学习成长!可关注  “前端组件开发” 公众号后,私信后申请入群。

d848d5658a07453c843277846948c608.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1644811.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VGA项目:联合精简帧+双fifo+sobel算法 实现VGA显示

前言:该项目实际上是在很多基础的小练习上合成起来的,例如涉及到uart(rs232)的数据传输、双fifo流水线操作、VGA图像显示,本次内容在此基础上又增添了sobel算法,能实现图像的边沿监测并VGA显示。 文章目录…

算法学习007-进制转换 c++递归算法实现 中小学算法思维学习 信奥算法解析

目录 C进制转换 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C进制转换 一、题目要求 1、编程实现 小明学c有一段时间了,今天他想做一个进制转换的小程序,将十进…

如何省下5000培训费学会月薪8000的嵌入式Linux?

嵌入式底层开发无疑是一项极为关键的技术,它在众多嵌入式系统中都有着广泛而重要的应用。在当今科技飞速发展的时代,嵌入式系统已经深入到我们生活的每一个角落,成为了我们日常生活中不可或缺的一部分,这也更加凸显了嵌入式开发的…

【Linux极简教程】常见实用命令不断更新中......

【Linux极简教程】常见实用命令不断更新中...... 常见问题1.Waiting for cache lock: Could not get lock /var/lib/dpkg/lock. It is held by process xxxx(dpkg) 常见问题 1.Waiting for cache lock: Could not get lock /var/lib/dpkg/lock. It is held by process xxxx(dp…

关于图形库

文章目录 1. 概念介绍2. 使用方法2.1 普通路由2.2 命名路由 3. 示例代码4. 内容总结 我们在上一章回中介绍了"使用get显示Dialog"相关的内容,本章回中将介绍使用get进行路由管理.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

stm32单片机开发五、使用I2C连接MPU6050

10轴就是3轴加速度、3轴角速度、3轴磁场强度和1个气压强度 任何一种传感器都不能获得精确且稳定的欧拉角,要想获得精确且稳定的欧拉角,就必须进行数据融合,把这几种传感器的数据结合起来,常见的数据融合算法,一般有互补…

可编程 IP 新星 Story Protocol 何以引领链上文艺复兴浪潮?

当前,随着 Web3 行业发展进入全新阶段,与生成式人工智能(AIGC)技术融合正在创造潜力新星项目。也是目前的互联网生态下,任何普通民众都有权利创作高质量的音乐、艺术、散文和视频内容,带来了用户生成内容&a…

Verilog中求两个数的差值

根据输入信号a,b的大小关系,求解两个数的差值:输入信号a,b为8bit位宽的无符号数。如果a>b,则输出a-b,如果a≤b,则输出b-a。 接口信号图如下: 代码如下: (CSDN代码块不支持Veril…

去斯洛文尼亚旅游最有趣的徒步路线推荐

春天当然要去徒步呀!斯洛文尼亚的徒步和登山小径纵横交错,遍布全国,尽管很多人首先想到的是高山地区连绵起伏的山峰,但实际上,在其他地区也有许多值得游览的徒步目的地。 ​ 这些低地地区的徒步路线将带你穿过如画的风…

【小行星数据预处理py-】

#数据的导入 import pandas as pd import numpy as np#导入EXCEL表格数据;na_values指定了将Excel文件中的空单元格转换为NaN df_excelpd.read_excel(C:/Users/galax/Desktop/MBA小行星数据/4000.xls,na_values0) #定义0为缺失值 see_datadf_excel #统计每一列的缺失值个数 pri…

可代替IRS2003的半桥栅极驱动器KP85211A 225V耐压 1A/1.5A

KP85211A是一款 225V 耐压,具有 1A 拉电流和 1.5A 灌电流能力的半桥栅极驱动器,专用于驱动功率MOSFET或IGBT。采用高压器件工艺技术,具有良好的电流输出及出色的抗瞬态干扰能力。可保证开关节点 VS 瞬态 -7V 情况下系统正常工作。可支持开关节…

Leetcode—706. 设计哈希映射【简单】(constexpr)

2024每日刷题(127) Leetcode—706. 设计哈希映射 数组实现代码 class MyHashMap { public:MyHashMap() {memset(arr, -1, sizeof(arr));}void put(int key, int value) {arr[key] value;}int get(int key) {if(arr[key] -1) {return -1;} return arr…

基于openEuler22.03 LTS环境的docker容器基础

一、说明 本文配置环境为VMware虚拟机或华为云服务器(4核CPU,8 GB内存,40GB磁盘),OS为openEuler 22.03 LTS ,Linux服务器要求能联网。 二、安装docker 2.1 安装docker软件包 [rootnode01 ~]# dnf -y in…

leetcode尊享面试——二叉树(python)

250.统计同值子树 使用dfs深度搜索,同值子树,要满足三个条件: 对于当前节点node,他的左子树血脉纯净(为同值子树),右子树血脉纯净(为同值子树),node的值等于…

第27章-配置PPP

1. 概述 2. 工作机制 3. 验证 4. PPP-MP 1. 概述 1.1 背景引入 以太网使用双绞线,广域网使用光纤; ① 定义:PPP协议即点到点协议; ② 应用场景:在串行线路上运行;主要是广域网 ③ 特点: 支持…

PHP 框架安全:ThinkPHP 序列 漏洞测试.

什么是 ThinkPHP 框架. ThinkPHP 是一个流行的国内 PHP 框架,它提供了一套完整的安全措施来帮助开发者构建安全可靠的 web 应用程序。ThinkPHP 本身不断更新和改进,以应对新的安全威胁和漏洞。 ThinkPHP 框架的安全特性: (1) 输入过滤和验证…

既能自动仿写公众号爆文,还能批量帮你上架闲鱼商品,打造自己的数字员工,简直yyds

「想象一下,如果有一个机器人在你的计算机上24小时不间断地工作,会不会做梦都笑着」 一、RPA机器人是什么? RPA——机器人流程自动化,它可以帮助人们完成重复性的、繁琐的工作,比如数据输入、网页爬取、自动化流程等…

[JUCE]从一个有关右值引用的bug,探幽移动语义

一、问题 当我尝试在\JUCE\extras\WindowsDLL\Builds\VisualStudio2022目录下编译JUCE库的时候,提示报错如下: 报错提示如下: 这里涉及到两个问题 一、这个std::move是干嘛用的 二、为什么这里会报错? 另外,我在实…

OpenAI 也要做搜索?传 SearchGPT 将迎击谷歌核心业务!OpenAI 与金融时报新协议已定,将进行链接和引用

OpenAI也要杀入AI搜索领域分一杯羹?非常可能!毕竟连SearchGPT的入口已经准备好了! 图片 X平台上网友甚至还发现了SearchGPT的medo视频! OpenAI凭借自身的技术积累,如果真的进入搜索应用业务,必然…

震撼来袭!AI创新燃爆2024中关村论坛,唯迈医疗破解心脑血管“命门”危机

4月29日,备受瞩目的2024中关村论坛圆满闭幕。国内领先的介入诊疗全流程解决方案企业——唯迈医疗,携新一代Taikon太空 DSA和介入手术机器人惊艳亮相,以AI赋能介入诊疗,为心脑血管疾病治疗带来了革命性的突破,引发党央媒…