shiro授权流程

Md5+salt实现用户加密 一.md5 1.1 作用 一般用来进行加密或者签名 特点:md5内容不可逆,相同的内容不论执行多少次,md5加密算法生成的结果都是一致的。 结果:生成的结果是一个32位的16进制字符串。 二 md5+salt salt说白了就是随机的字符串 2.1 md5+salt的使用 注册时md5(输入明文密码+随机盐字符串)生成加密密码p1,随机盐字符串r,都存储到数据库中。 登录时通过用户名查询该用户对应的加密密码p1和随机盐字符串r,按照注册时生成的规则:md5(输入明文密码+随机盐字符串)=p 阅读详情

1、授权需要继承 AuthorizingRealm 类, 并实现其 doGetAuthorizationInfo 方法(也可认证)

public class MyRealm extends AuthorizingRealm 

2、实现doGetAuthorizationInfo方法

   /**
     * 授权
     */
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        //1、从PrincipalCollection中获取登入的用户信息
        Object principal = principalCollection.getPrimaryPrincipal();

        //2、利用登录的用户信息来查看当前用户的角色或权限(从数据库中读取)
        //默认通过认证都有user这个角色
        Set<String> roles = new HashSet<>();
        roles.add("user");
        //如果是用admin登录则可以在拥有admin这个角色
        if("admin".equals(principal)){
            roles.add("admin");
        }

        //3、创建SimpleAuthorizationInfo,并设置其roles属性
        SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo(roles);

        //4、返回SimpleAuthorizationInfo对象
        return authorizationInfo;
    }

3、需要在配置文件中的shiroFilter中配置权限或角色(不止有这一种方式)

    <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager"/>
        <property name="loginUrl" value="/to_login"/>
        <!-- 登录成功跳转页面 -->
        <property name="successUrl" value="/list"/>
        <!-- 未授权跳转页面 -->
        <property name="unauthorizedUrl" value="/unauthorized"/>

<!--        <property name="filterChainDefinitionMap" ref="filterChainDefinitionMap"></property>-->
        <!--
            配置哪些页面需要受保护.(满足ant风格)
            以及访问这些页面需要的权限.
            1). anon 可以被匿名访问
            2). authc 必须认证(即登录)后才可能访问的页面.
            3). logout 登出.
            4). roles 角色过滤器
        -->

        <property name="filterChainDefinitions">
            <value>
                /login = anon
                /to_login = anon
                /logout = logout
                /unauthorized = anon

                /list = roles[user]
                /user = roles[user]
                /admin = roles[admin]

                # everything else requires authentication:
                /** = authc
            </value>
        </property>
    </bean>

4、运行效果

先用user登录,访问admin页面会跳转到未授权页面

用admin登录,则有admin页面的权限,则不会跳转到未授权页面

在这里插入图片描述

Shiro认证流程和授权流程 认证:身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。 在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份: principals:身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals 阅读详情

相关推荐

Shiro中的认证和授权流程是怎样的?

【代码】Shiro中的认证和授权流程是怎样的?

alankuo的专栏 1349

springboot shiro 不执行授权方法doGetAuthorizationInfo()

AuthorizingRealm中有两个需要被重写的方法,分别是 doGetAuthenticationInfo() //验证功能 和 doGetAuthorizationInfo() //授权功能 在login登录方法中,使用login()方法触发自定义的 myRealm.doGetAuthenticationInfo()*方法, /*登录方法*/ public void login(){ Subject subject = SecurityUtils.getSubject(); UsernamePa

m0_67392273的博客 2393

【shiro】授权和认证流程

shiro中有两个比较重要的流程,一个是认证流程,一个是授权流程。 一、认证流程     Authentication是指身份验证的过程,即证明一个用户实际上是不是他们所说的他们是谁。也就是用户提交身份和凭证给shiro,然后来判断他们是否和可以登录系统。 1.概念 Principals(身份):是subject的标识属性,比如:提交的用户名 Credenticals(凭

遇见未知的自己 1780

SpringShiro每次请求的权限校验,都会调用一次doGetAuthorizationInfo的问题

公司项目里用到SpringShiro做为权限校验,采用在doGetAuthorizationInfo方法打了断点,发现每次的请求,都会调用一次doGetAuthorizationInfo方法获取当前用户的权限数据。 查看源码AuthorizingRealm的getAuthorizationInfo方法如下: protected AuthorizationInfo getAuthorizationInfo(PrincipalCollection principals) ...

逐知逐行的专栏 2151

Shiro认证流程及授权

Shiro概要架构 在概念层面,Shiro 架构包含三个主要的理念: Subject :主体对象,负责提交用户认证和授权信息。 SecurityManager:安全管理器,负责认证,授权等业务实现。 Realm:领域对象,负责从数据层获取业务数据。 Shiro认证流程 1)系统调用subject的login方法将用户信息提交给SecurityManager。 2)SecurityManager将认证操作委托给认证器对象Authenticator。 3)Authenticator将用户输入的身份信息传递给

weixin_46298946的博客 595

实战解析:如何利用MDFEND与Weibo21数据集构建多领域假新闻检测系统

本文实战解析了如何利用MDFEND模型与Weibo21数据集构建多领域假新闻检测系统。文章深入剖析了MDFEND的领域门控与专家混合机制,并提供了从数据预处理、模型理解到训练部署的完整指南,旨在解决通用模型在不同领域新闻检测中的性能衰减问题,提升检测的准确性与适应性。

vulkan6gpu的博客 582

SpringBoot学习笔记32——整合Shiro完成接口权限验证

整合Shiro完成接口权限验证

月月大王的博客 1890

IC 时钟设计核心问题与高质量系统设计指南(附源码)

本文深入探讨了IC时钟设计的核心问题与高质量系统设计方法。时钟系统作为IC的"心脏",其性能直接影响时序稳定性、功耗效率和可靠性。文章从五个维度展开分析:时钟源选择与性能匹配、时钟分配网络设计、抖动抑制、多时钟域管理和功耗优化。针对高质量时钟系统设计,提出了时钟源优化、时钟树结构优化、干扰抑制与仿真验证等具体方法。同时,系统阐述了时钟与复位的协同设计关系,强调异步复位同步释放等技术的重要性。文章还总结了高质量IC系统设计的综合要点,包括电源/信号完整性、时序功耗平衡、可靠性设计及全流程验

Open 1061

shiro触发doGetAuthorizationInfo方法的三种方式

什么情况下会触发shiro的授权检测呢?通常有以下三种方式: 方式一:代码中通过Subject对象主动调用权限校验 subject.hasRole(“admin”); //或 subject.isPermitted(“admin”); 这种方式属于在代码中需要校验权限的时候主动调用,判断返回结果来确定是否通过。 方式二:通过注解的形式检查对用的方法请求 @RequiresRoles("admin") 这种方式通常用在Controller的方法上。 方式三:页面shiro标签 针对jsp等

yuguang的博客 1886

Comsol实战:铌酸锂x切与z切参数设置全攻略(附电场强度归一化技巧)

本文详细介绍了在Comsol Multiphysics中设置铌酸锂x切与z切晶体参数的全流程,包括晶体取向定义、电光系数配置及关键光学参数计算。重点讲解了电场强度归一化这一实用技巧,帮助用户提升仿真分析效率,为设计电光调制器等集成光子器件提供精准的仿真基础。

year5的博客 583

3张RTX 4090就能跑!BAGEL-7B多模态模型本地部署避坑指南(附Flash Attention安装技巧)

本文详细介绍了如何在3张RTX 4090显卡上本地部署BAGEL-7B多模态模型,包括硬件配置、环境设置、多卡并行优化及常见问题解决方案。特别提供了Flash Attention安装技巧和显存优化策略,帮助开发者高效运行这一开源多模态模型,实现文本与图像生成任务。

1a2s3d4f5g的博客 653

Shiro之授权流程篇

了解Shiro的授权流程,并debug演示

qq_43654581的博客 495

狂神说docker(最全笔记)

一.Docker入门 1. Docker 为什么会出现 2. Docker的历史 3.Docker最新超详细版教程通俗易懂 Docker是基于Go语言开发的!开源项目 官网 官方文档Docker文档是超详细的 仓库地址 4. 虚拟化技术和容器化技术对比 4.1. 虚拟化技术的缺点 资源占用十分多 冗余步骤多 启动很慢 2.2. 容器化技术 比较Docker和虚拟化技术的不同 传统虚拟机, 虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软.

qq_21197507的博客 5万+

Shiro授权流程图

Shiro授权流程Shiro授权流程图Shiro授权流程文字说明 Shiro授权流程图 参考:https://www.w3cschool.cn/shiro/skex1if6.html 根据Shiro授权流程文字说明,绘制流程图如下: Shiro授权流程文字说明 流程如下: 首先调用 Subject.isPermitted*/hasRole接口,其会委托给 SecurityManager,而 SecurityManager 接着会委托给 Authorizer; Authorizer 是真正的授权者,如果我

weixin_36894490的博客 711

科研绘图实战:用Adobe Illustrator高效排版期刊论文图片

本文详细介绍了使用Adobe Illustrator高效排版科研论文图片的完整工作流。针对期刊投稿常见的图片格式问题,文章重点讲解了矢量图与位图的预处理、AI中的精准对齐与分布技巧、文字样式统一管理以及最终输出TIFF/PDF等符合出版要求的格式。掌握这套方法能确保图片满足高分辨率、规范字体和精确尺寸等期刊硬性标准,显著提升投稿效率。

tomato的博客 1439

外骨骼机器人(五):步态分析之正常步态

研究病理步态之前,需要了解正常步态,作为判断标准。但是需要记住两个问题:1.“正常”因人而异,性别、年龄、身体情况都需要考虑在内,因此,需要对不同的个体选择合适的正常标准;2.即使病人的步态与正常步态有某种不同,这也不能说明这是不可取的,也不能说明应该把它变成“正常”步态。许多步态异常是对病人的一些问题的一种补偿,尽管异常,但它们仍然是有用的。步态周期的定义是连续为两次发生重复行走事件之间的时间间隔。尽管可以选择任何事件来定义步态周期,但通常使用一只脚接触地面的瞬间(“初始接触”)是方便的。

行者无疆的博客 1997

【Shiro】3. Shiro授权流程

授权 授权,即访问控制,控制谁能访问哪些资源。主体进行身份认证后需要分配权限方可访问系统的资源,对于某些资源没有权限是无法访问的。 授权的关键对象 授权可简单理解为Who对What / Which进行How操作。 Who:主体(Subject),主体需要访问系统中的资源。 What / Which:资源(Resource),如系统菜单、页面、按钮、类方法、系统商品信息等。资源包括资源类型和资源实例,比如商品信息为资源类型,类型为Type01的商品为资源实例,编号为001的商品信息也属于资源实例。

xiaoyuan_27的博客 962

Wi-Fi数据帧类别

QoS

1042484520@qq.com(邮箱) 3158

Shiro 认证和授权流程实现

Shiro 框架认证流程应用实现 基本配置 添加shiro框架依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> ...

weixin_43532718的博客 699

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Shiro授权的基本流程

Shiro的授权流程 用户访问系统资源时的授权流程如下: 系统调用subject主体对象相关方法将用户权限信息(例如isPermitted)递交给SecurityManager SecurityManager将权限检测操作委托给Authorizer授权管理器对象 Authorizer授权管理器将用户信息委托给realm Realm访问数据库获取用户权限信息(有没有权限,有什么样的权限)并封装 Authorizer对用户授权信息进行判定(判断用户访问资源时需要什么权限,假如用户所具有的权限包含这个资源访问时

lm2574866671的博客 808

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Shiro授权流程

shiro是如何进行权限验证的呢? 1、

k393393的博客 968

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Shiro的认证与授权流程解析

极简入门,Shiro的认证与授权流程解析 其实Shiro框架并不难,我梳理了一下,你只需要学会以下内容基本就足够了: 登陆、授权流程 shiro过滤器链 整合Springboot、redis做共享会话 结合xxl-sso实现单点登录 接下来我会分为几篇文章分别去介绍,这篇我们先来了解一下shiro的一些基础知识,以及登录授权逻辑。 Shiro简介 在Web系统中我们经常要涉及到权限问题,例如不同角色的人登录系统,他操作的功能、按钮、菜单是各不相同的,这就是.

qq_39845279的博客 744

shiro认证授权流程

shiro框架的出现使得认证和授权变的简单,那shiro是如歌进行认证和授权的呢,下面来看看其流程: 认证流程: 认证流程: 1、通过ini配置文件创建securityManager 2、调用subject.login方法主体提交认证,提交的token 3、securityManager进行认证,securityManager最终由ModularRealmAuthentica

刘杰 廊坊师范学院信息技术提高班十期 1866

Shiro框架:授权流程、授权方式、Shiro授权入门程序、自定义Realm进行授权

一、Shiro授权: 1、授权与权限: (1)授权:访问控制,必须具有该资源的访问权限才可以访问该资源。 (2)权限模型:标准权限数据模型包括 :用户、角色、权限(包括资源和权限)、用户角色关系、角色权限关系。 (3)权限分配:通过UI界面方便给用户分配权限,对上边权限模型进行增、删、改、查操作。 (4)权限控制: 第一种:基于角色的权限控制:根据角色判断是否有操作权限,因为角色的变化...

张维鹏的博客 4634
上一篇: shiro多realm认证策略
下一篇: shiro常用标签在jsp中的使用笔记
magicproblem
博客等级 码龄7年 22粉丝 59原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值