Shiro拦截器给方法授权,赋访问权限

shiro使用更改过滤拦截器的方法完成认证授权返回json格式信息 先介绍一下常用的拦截器 有关认证的拦截器: 拦截器名 默认拦截器类 说明 authc FormAuthenticationFilter 需要认证才可以访问–主要属性:loginUrl:登录的url,默认login.jsp,如果被这个过滤器拦截后,会重定向这个url,successUrl:登录成功后重定向的url user UserFilter 需要认证或记住我才可以访问 logout LogoutFilter 退出url主要属性:redirectUrl:退出后重定向的url,默认"/ 阅读详情

ShiroConfig配置类重写授权方法:


    //授权方法
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principal) {
        //从session中获取到当前登录的用户对象
        //Object principal = SecurityUtils.getSubject().getPrincipal();
        UserBean primaryPrincipal = (UserBean) principal.getPrimaryPrincipal();
        //后台数据库查询是否由此字段并返回权限字
        List<String> powerList = userService.queryPowerKeyByUserId(primaryPrincipal.getId());  
        //List<String> objects = new ArrayList<>();
        //赋权限
        //objects.add("user:findUserList");
        //创建一个授权器
        SimpleAuthorizationInfo sai = new SimpleAuthorizationInfo();
        sai.addStringPermissions(powerList);
        return sai;
    }

Mapper层根据sql查询出权限字:

    @Select("select distinct pm.remark from t_user_role ur,t_role_power rp,t_power_menu pm         where ur.roleid = rp.roleid\n" +
            "            and rp.powerid = pm.powerId\n" +
            "            and ur.userid = #{value}")
    List<String> queryPowerKeyByUserId(Integer  id);

给你的方法加一个注解@RequiresPermissions("user:findUserList")(权限字)

    // 分页用户查询
    @RequiresPermissions("user:findUserList")
    @RequestMapping("findUserList")
    @ResponseBody
    public EasyuiPage findUserList(Integer page, Integer rows, UserBean userBean) {
        return userService.findUser(page, rows, userBean);
    }

如果你从后台查出的权限字和@RequiresPermissions中的权限字一致,则必须给用户赋权限才可以访问,否则无法访问。

MySql remark字段:

shiro AuthorizationInfo授权 1、登录系统之后进入系统定义的相关页面,如果进入到需要权限的资源时会根据@RequiresPermissions注解去判断用户是否有某个权限。页面的访问权限控制如下: /** * Shiro过滤器配置 */ @Bean public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager s... 阅读详情

相关推荐

通过shiro进行按钮及页面访问url的权限控制

1.当面我们每次登录系统时,都会通过我们自己定义的继承AuthorizingRealm的ShiroRealm进行用户账号密码的确认以及拥有权限的查询: (1)自定义shiroReam: public class ShiroDbRealm extends AuthorizingRealm { @Autowired private UserService userService; @...

du6666的博客 3825

shiroWeb项目-授权(十一)

使用PermissionsAuthorizationFilter 在applicationContext-shiro.xml中配置url所对应的权限。 测试流程: 1、在applicationContext-shiro.xml中配置filter规则 <!--商品查询需要商品查询权限 --> /items/queryItems.action =perms[item:query] 2、用户在认证通过后,请求/items/queryItems.action ...

qq_35222843的博客 260

Shiro快速入门 —— 5.授权

shiro授权的操作主要分为两个步骤 1、匹配登录用户的角色,并将权限赋予当前用户所创建的Subject。 2、访问某一资源时,从当前用户Subject中取得权限并验证是否可以访问这个资源。 权限管理 shiro本身并不提供权限管理的机制,权限的管理需要我们自己进行维护。常见的做法是在数据库创建用户、角色和权限表进行管理。数据结构类似于下图 权限的标识符(代码中匹配权限的字符串)理论上可以自由定义,但是一般情况我们会赋予含义。 例如:“company_add“或“company:add”。前面代表模块后

哼哼的博客 345

2021年你还不会Shiro?----5.使用Shiro实现授权功能

使用shiro实现授权就是这么简单

初心不忘、始终方得 826

保姆级教程:用dnSpy调试Unity游戏,从找DLL到打断点全流程(附调试版mono.dll下载)

本文详细介绍了使用dnSpy调试Unity游戏的全流程,包括环境准备、关键程序集定位、mono.dll版本匹配与替换、调试环境配置及实战技巧。通过本教程,开发者可以高效进行Unity游戏逆向分析,适用于学习设计模式或安全审计等场景。

weixin_30236595的博客 577

手把手教你用yt-dlp批量下载YouTube视频数据集(附TikTok/Kaggle资源)

本文提供了一份构建视频数据集的实战指南,重点介绍了使用yt-dlp工具批量下载YouTube视频的高级技巧,包括环境配置、批量参数设置与自动化脚本。同时,文章还整合了TikTok、Kaggle及学术开源数据集等多源高质量视频资源,并分享了数据清洗、格式统一与管理的完整流程,帮助研究者和开发者高效获取与处理训练数据。

weixin_29057237的博客 289

Shiro 与 SpringBoot 集成 三

Shiro 与 SpringBoot 集成 第三天 添加权限 addStringPermission(function.getUrl()) // 添加字符串权限 for (Function function: user.getRole().getFunctions()) { info.addStringPermission(function.getUrl());// 添加权限 } cont...

qq1635346647的博客 286

Python 爬取网页文字并保存为 txt 文件教程

将要爬取的网页网址赋值给变量url。

2403_89537385的博客 2789

Shiro结合SpEL实现细粒度权限校验笔记

SpEl shiro 细粒度 权限校验

hjg719的博客 963

AIDD机器学习深度学习药物发现与设计教程总结

AIDD(AI Drug Discovery & Design):是近年来非常火热的技术应用,且已经介入到新药设计到研发的大部分环节当中,为新药发现与开发带来了极大的助力。倾向于机器对数据库信息的自我学习,可以对数据进行提取和学习,一定程度上避免了化合物设计过程中的试错路径,同时还会带来很多全新的结构,为药物发现打破常规的结构壁垒。覆盖了机器学习和深度学习,能与新药研发相结合并实质性的应用到靶点预测、高通量筛选、药物设计、药物的ADMET性质预测等;且算力方面,由早期应用于药物发现领域的决策树、随机

wutianlin0723的博客 6814

(三)UPF之Domain Coverage Relationship(Cover、Equivalent、Independent)

整个Soc架构中一般会存在多个Power Domain,不同的Power Domain之间也存在着一定的Coverage关系。在Cadence工具中,这种。不同的Domain Coverage关系中,各个Domain存在着一定的关联()。

Mr.翟的博客 1422

Java整合Shiro使用详情

Java整合shiro使用详情

Nothing is impossible to a willing heart. 618

【WRF-Chem工具】pyVPRM 计算大气与陆地植被之间的 CO₂ 交换通量

pyVPRM 计算大气与陆地植被之间的 CO₂ 交换通量

WW、forever的博客 210

shiro Filter--拦截器

shiro Filter--拦截器 一 shiro自带的filter:下面主要叙述顺序是 NameableFilter-》OncePerRequestFilter-》AdviceFilter-》PathMatchingFilter-》AuthenticationFilter(AuthenticatingFilter)-》FromAuthenticationFilter ①Nameab...

hyl999的专栏 7737

【LE Audio】CAP精讲[1]: 从理论到实操,CAP 协同流程入门全攻略

LEAudio生态中的CommonAudioProfile(CAP)是一个关键协同框架,它通过整合基础音频协议(BAP/VCP/MICP等)构建多设备协同能力。CAP定义了三大核心功能:音频流管理、设备组控制和统一交互服务,解决了传统蓝牙音频在多设备场景下的协同痛点。其规范历经v1.0到v1.0.1的优化,修正了角色定义、连接流程等关键模块,提升设备兼容性。CAP采用严格的语言约定(shall/must/should)和术语体系(ContextType/CCID/协同集),确保不同厂商设备能相互理解。

byte轻骑兵的技术小窝 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用shiro拦截器链实现权限管理

在开篇之前,先介绍一下shiro,那么 什么是shiro呢? Apache Shiro(发音为“shee-roh”,日语“堡垒(Castle)”的意思)是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业应用。 Shiro为解决下列问题(我喜欢称它们为应用安全的四要素)提供了保护应用的API: 认证 - 用户身份识别,常被称为用户“登录”; 授权 - 访问控制; 密码加密 - 保护或隐藏数据防止被偷窥; 会话管理 -每

m0_67392811的博客 922

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【SaaS - Export项目】24 - Shiro授权,shiro授权校验,查看用户是否拥有访问权限,无权限拦截请求

文章目录 Shiro授权功能介绍 通过邮箱查询用户的权限 在中给用户授权 授权校验的几种实现方式 1. 硬编码方式(拦截方法) 2. 配置xml过滤器方式【***推荐使用】 配置用户没有权限访问时的跳转页面 3. 注解方式 4. 使用shiro提供的标签(拦截页面元素:按钮,表格等) Shiro授权功能介绍 1)什么是授权 授权,也叫做授权访问校验,比如在登陆认证后,系统校验用户是否有权限访问资源,就叫授权。 2)实现授权步骤 登陆认证成功后,获取用户的权限 (

m0_67391870的博客 1173

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

shiro 自定义拦截器

1.拓展 OncePerRequestFilter  用于防止多次执行 Filter 的;也就是说一次请求只会走一次拦截器链;另外提供 enabled 属性,表示是否开启该拦截器实例,默认 enabled=true 表示开启,如果不想让某个拦截器工作,可以设置为 false 即可。 保证一次请求只调用一次 doFilterInternal,即如内部的 forward 不会再多执行一次 doFi...

qq_38930240的博客 4910

shiro拦截器的两种配置,以及shiro拦截器不拦截的问题

先讲一下shiro拦截器不拦截的问题 原因:shiro拦截器是基于session(会话)拦截的,如果成功登陆服务器,且不关闭浏览器的窗口,就会一直默认为登陆状态。 所以给人一种没拦截的假象 shiro拦截器配置,一种是通过xml文件配置,一种是通过实现类来配置 实现类的配置麻烦一点: 可以参考https://blog.youkuaiyun.com/ybt_c_index/article/details/78707531 说的很详细 xml配置如下 <!-- 配置緩存管理器 --> <bean id=

m0_67403272的博客 1322

从前慢-Shiro和JWT

权限的管理 权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问。 身份认证 身份认证,就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确。对于采用指纹等系统,则出示指纹;对于硬件Key等刷卡系统,则需要刷卡。 授权 授权,即访问控制,控制谁能访问哪些资源。主体进行身份认证后需要分配权限方可访问.

unique_perfect的博客 9132

Jboot安全框架整合:Shiro认证授权与JWT令牌登录实现

Jboot作为一款优雅的微服务框架,为开发者提供了高效便捷的安全解决方案。本文将详细介绍如何在Jboot项目中整合Shiro认证授权机制与JWT令牌登录功能,帮助开发者快速构建安全可靠的应用系统。 ## 一、Shiro与JWT整合的优势 Shiro是一个功能强大且易于使用的Java安全框架,提供了认证、授权、加密和会话管理等功能。JWT(JSON Web Token)则是一种轻量级的身份验证机

gitblog_00937的博客 708

spring boot 与shiro实战(五)整合实现用户授权

spring boot 与shiro整合实现用户授权 本篇文章接自上一篇:spring boot 与shiro实战(四)整合MyBatis实现登录 https://blog.youkuaiyun.com/jingjingxiazhe/article/details/88579067 源码git地址:https://gitee.com/maximusrj/springboot-shiro.git 1.1 使用S...

maximusrj的博客 1436

shiro学习笔记——shiro拦截器与url匹配规则

一、使用场景举例 注:shiro过滤器与url匹配规则一般使用在定义的shiroFilter中,用于对指定的资源进行过滤二、URL匹配规则 (1)“?”:匹配一个字符,如”/admin?”,将匹配“ /admin1”、“/admin2”,但不匹配“/admin” (2)“*”:匹配零个或多个字符串,如“/admin*”,将匹配“ /admin”、“/admin123”,但不匹配“...

qq_30665009的博客 1340

springboot整合shiro和session的详细过程和自定义登录拦截器

1.依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.7.1</version> </dependency> <dependen

qq_41358574的博客 1879

shiro中给某个接口添加权限的两种方法,若没有权限则返回特定值

shiro中给某个接口添加权限的两种方法,若没有权限则返回特定值 1、在ShiroConfig中的ShiroFilterFactoryBean这个bean中添加过滤器,在过滤器中对接口添加访问权限 1> 添加访问权限 Map<String, String> filterMap = new LinkedHashMap<>(); filterMap.put("/user/add", "perms[user:add]"); //授权 shiroFilterFactoryBean.

Jinbin_Z的博客 3310
上一篇: 解决Shiro登录成功之后跳转路径为空,浏览器登陆成功显示小绿叶界面问题。
下一篇: Shiro如何集成Thymeleaf,前台根据Shiro标签赋权限。
听风动
博客等级 码龄8年 63粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听风动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值