shiro多realm认证策略

【Shiro 系列 05】Shiro 中多 Realm 的认证策略问题 点击蓝色“Java极客技术”关注我哟加个“星标”,天天早上08:14,一起快乐成长上篇文章和小伙伴们分享了 JdbcRealm,本文我想和小伙伴们聊聊多 Realm 的... 阅读详情

1、多Realm配置和认证策略的配置

配置多个realm以及认证策略

1、配置securityManager的realms属性下配置多个realm

    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager" >
        <property name="cacheManager" ref="cacheManager"></property>
<!--        在realms属性中配置多个realm-->
        <property name="realms">
            <list>
            <!-- myRealm(MD5加密)、myRealm2(SHA1加密)均为Realm接口的实现类 -->
                <ref bean="myRealm"></ref>
                <ref bean="myRealm2"></ref>
            </list>
        </property>
    </bean>

2、通过ModularRealmAuthenticator类中的authenticationStrategy属性来配置响应的认证策略认证策略默认的认证策略为AtLeastOneSuccessfulStrategy

    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager" >
        <property name="cacheManager" ref="cacheManager"></property>
        <!-- 注意authenticator要比realms先配置否则可能引发
			One or more realms must be present to execute an authorization operation.
		-->
        <!-- 配置authenticator,认证策略及授权 -->
        <property name="authenticator" ref="authenticator"></property>
        <property name="realms">
            <list>
                <ref bean="myRealm"></ref>
                <ref bean="myRealm2"></ref>
            </list>
        </property>
    </bean>
    <!-- ModularRealmAuthenticator类 -->
    <bean class="org.apache.shiro.authc.pam.ModularRealmAuthenticator" id="authenticator">
        <!-- 配置认证策略 -->
        <!-- 默认的认证策略为:AtLeastOneSuccessfulStrategy -->
        <property name="authenticationStrategy">
            <bean class="org.apache.shiro.authc.pam.AllSuccessfulStrategy"></bean>
        </property>
    </bean>

2、认证策略

认证策略效果
AllSuccessfulStrategy所有的realm都必须认证通过,返回所有通过realm的认证信息
AtLeastOneSuccessfulStrategy至少通过一个realm认证,返回所有通过的realm的认证信息
FirstSuccessfulStrategy第一条realm通过后面的realm认证都忽略(并非不执行),只返回第一个通过条realm的认证信息

AllSuccessfulStrategy 效果

默认realm2认证通不过

在这里插入图片描述
在这里插入图片描述

AtLeastOneSuccessfulStrategy 效果

默认realm1认证不通过,realm2通过

在这里插入图片描述
在这里插入图片描述
FirstSuccessfulStrategy 效果

默认realm1通过认证,realm2不通过

在这里插入图片描述
在这里插入图片描述

shiro讲解之 多Realm 之 Authentication shiro讲解之 多Realm本章节将详细讲解 Shiro 多 Realm 认证以、多 Realm 配置以及多 Realm 认证策略。实例首先我们以我们之前搭建的Spring + SpringMVC + Shiro 的基本框架为例子,然后进行多 Realm 配置。 多Realm 的实现Realms 代码 为了直观体提现多Realm 认证策略,我们再次设定 ShiroRealm 中的认证能够顺利通 阅读详情

相关推荐

(三) Debian 安装linuxcnc-ethercat中间件

1.在这里同样的也是需要下载一下依赖包 sudo apt install linuxcnc-uspace-dev 2.依赖包安装完成, 接着执行下面命令 sudo git clone https://github.com/sittner/linuxcnc-ethercat 还是可能出现下载网络错误下载不成功,可以直接下载我已上传百度云linuxcnc目录下 注意一下,后面make可能会出现头文件(xxx.h)的报错提示,在这里给大家一个处理办法 用aptitude 工具可以搞定 sudo apt-get

qq_30065813的博客 828

Shiro实现多realm方案

公司开始了新项目,新项目的认证采用的是Shiro实现。由于涉及到多端登录用户,而且多端用户还是来自不同的表。 这就涉及到了Shiro的多realm,今天的demo主要是介绍Shiro的多realm实现方案,文中包含所有的代码,需要的朋友可以无缝copy。...

程序员田同学的博客 3420

Super4PCS文章阅读笔记

Super4PCS阅读笔记 Super4PCS阅读笔记 前言 前言 今天给大家分享一下点云配准四点法4PCS0的变种——Super4PCS。此算法的原文在:Super4PCS: Fast Global Pointcloud Registration via Smart Indexing。稍微我也会写一篇关于如何使用这篇文章的里所提供的代码进行点云粗配准。关于四点法...

Vodake的博客 4540

Shiro系列(二)——Shiro 多 Realm 实现

写在前面 本文基于上一篇文章《 Shiro + Springboot + JWT 的整合》延续,示例项目也是在上篇文章的基础上扩展而来的。 一个系统一般都具有多种用户类型,如管理员、普通用户和运营者账号等,这些用户都存储在不同的表中。当然,通过对 Token 的内容进行条件判断,一个 Realm 是可以直接实现多个账号登录的,但是这样将导致不同用户的登录完全耦合在一起,这不是我们想看到的,所以有了多 Realm 的需求,并且 Shiro 是支持多 Realm 的。 1. 实现逻辑 1.1 分析 通过阅读 S

玖涯博客 1729

从零开始:用RFSOC XCZU47DR搭建软件无线电开发环境(2023最新版)

本文详细介绍了如何使用Xilinx RFSoC XCZU47DR搭建高性能软件无线电(SDR)开发环境,涵盖硬件选型、开发环境配置、射频子系统校准及实战应用开发。特别针对2023年最新技术需求,提供从基础配置到高级优化的完整指南,助力科研人员和工程师快速掌握RFSoC开发技术。

weixin_42525005的博客 512

当vCenter的证书过期、Root密码过期、Root密码遗忘同时发生时的解决方法与步骤

vCenter,强制修改root密码,修改SSO User密码,修复证书过期问题

OCTSJimmy的专栏 5554

Shiro【自定义Realm 、多Realm认证 、多Realm认证策略、异常处理】(二)-全面详解(学习总结---从入门到深化)

Shiro【自定义Realm 、多Realm认证 、多Realm认证策略、异常处理】(二)-全面详解(学习总结---从入门到深化)

1911

2026年03月CCF-GESP编程能力等级认证Scratch图形化编程一级真题解析

本文收录于《,订阅后可阅读专栏内所有文章。

人生就是一个不断学习的过程 240

Shiro之多个Realm实现

实现原理:当应用程序配置多个Realm时,例如:用户名密码校验、手机验证码校验等等Shiro的ModularRealmAuthenticator会使用内部的AuthenticationStrategy组件判断认证成功还是失败。

qq_57907966的博客 575

手把手教你在openclaw中白嫖英伟达羊毛调用GLM5/Minimax2.1/Kimi K 2.5等模型

本文介绍如何在OpenClaw中免费调用英伟达平台的GLM5、Minimax2.1和Kimi K2.5等模型。通过在openclaw.json配置文件中添加NVIDIA的API信息,设置免费模型参数(如contextWindow和maxTokens),并执行简单命令即可切换默认模型。该方法可节省token消耗成本,最后需重启gateway使配置生效。文中还提供了使用其他API平台时的配置模板。

Science prince的博客 5103

SXU-软件项目管理-朱少民-第九章 项目监控与控制 第十章 项目收尾 附相关习题

软件项目管理-朱少民-第九章 项目监控与控制 附相关习题

weixin_63597914的博客 1489

【多个Realm验证单点登录SSO】shiro多个Realm验证单点登录SSO步骤 Realm重写父类方法 实现多类型登录认证授权

这个简单的demo主要有三个微服务组成: sso为单点登录的请求服务,system_service为管理员登录验证服务,member为会员登录验证服务。大致流程就画个图给大家看 AuthenticationService 服务层 AuthenticationService 服务层 两个controller同调用这一层 AuthenticationService 两个实现类: 重写Realm的验证 这个类注意别忘了加入Bean容器中 自定义Realm 自定义Token shiro配置 Feig.

世上哪有什么岁月静好,不过是有人替你负重前行 891

群无人机航迹规划-虚拟管道

图源北理工全权老师团队虚拟管道相关论文,文字为个人理解,以ppt形式分享报告。

coldmood77的博客 669

Shiro-多Realm配置及认证策略

 认证策略  用法 spring配置文件 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche...

qq_36722039的博客 1141

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

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

Shiro(四):Shiro 多Realm验证和认证策略

Shiro(三)介绍Shiro 密码的比对与MD5盐值加密,接下来对 多Realm验证和认证策略进行简单的介绍。 存在这样一种场景,我们可能会把安全数据放到不同的数据库,比方说 mysql里有,oracle里也有,mysql里面的加密算法是MD5,oracle里面的加密算法是SHA1。这个时候我们进行用户认证时,就需要同时访问这两个数据库,就需要多个Realm。如果有多个Realm的话,还需要涉及到认证策略的问题。 目录一、多Realm验证配置流程:1.添加第二个Realm SecondRealm.jav

12程序猿的博客 770

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

5.Shiro认证流程3_ 多realm认证,认证策略

1.多realm验证,那么首先肯定是有多个自定义realm,然后在返回的SimpleAuthenticationInfo()对象是一样的,只不过在需要在IOC容器中多配置一步。这里以MD5和SHA1为例。 注入自定义realm的Bean <bean id="jdbcRealm" class="com.test.shiro.realm.ShiroRealm"> ...

T_P_F的博客 467

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

SpringBoot 与Shiro 整合系列(三)多Realm验证和认证策略

系列(三)讲述 SpringBoot整合Shiro 实现多Realm验证以及认证策略 目录一、使用场景二、多Realm验证配置流程:1.添加第二个Realm SecondRealm.java三、认证策略1.概念2.认证策略的使用2.1 默认使用2.1 切换认证策略 一、使用场景 我们可能会把安全数据放到不同的表中,比方说 不同类型的用户登录,这个时候我们进行用户认证时,就需要进行不同的逻辑处理,就需要多个Realm。如果有多个Realm的话,还需要涉及到认证策略的问题。 二、多Realm验证 多重认证,主要

12程序猿的博客 1520

Shiro【自定义Realm 、多Realm认证 、多Realm认证策略、异常处理】(四)-全面详解(学习总结---从入门到深化)

Shiro【自定义Realm 、多Realm认证 、多Realm认证策略、异常处理】(四)-全面详解(学习总结---从入门到深化)

598

(转)Shiro多Realm验证和认证策略

1.多Realm验证   存在这样一种场景,同一个密码可能在MqSQL中存储,也可能在Oracle中存储,有可能MqSQL中使用的是MD5加密算法,而Oracle使用SHA1加密算法。这就需要有多个Realm以及认证策略的问题。      通过查看源码可以看到ModularRealmAuthenticator.class 中的doAuthenticate protect...

weixin_30394333的博客 121

Shiro之多Realm的认证及认证策略-yellowcong

多重认证是操作的是多个Realm。第一种方式是,在ModularRealmAuthenticator里面可以配置多个Reamls,默认的验证策略是,至少一个满足即可(AtLeastOneSuccessfulStrategy)。建议将多Realm配置在DefaultWebSecur...

chengkuiwu3328的博客 327

shiro多realm认证学习实现

突然接到了一个需求,一个系统需要实现多种认证登录。 之前都是修改shiro的realm,根据不同情况去判断,会造成代码特别臃肿。 所以这次尝试用多个realm 来实现多种认证方式登录。 认证之前先了解了一下shiro多realm处理的三种策略: SecurityManager 接口继承了 Authenticator,另外还有一个 ModularRealmAuthenticator 实现,其委托给多个 Realm 进行验证,验证规则通过 AuthenticationStrategy 接口指定,默认提供的实现:

u011017284的博客 606

Shiro笔记二:密码的MD5加密、密码的MD5盐值加密、Shiro多 Realm 验证、Shiro认证策略、把 realms 配置给 SecurityManager

二、加密   11. Shiro_密码的MD5加密 1.如何将一个字符串加密为MD5   2.实现将前台传递过来的密码加密,替换当前Realm的credentialsMatcher属性, 直接使用HashCredentialsMatcher对象,并设置加密算法即可。   &lt;!--    3. 配置 Realm    3.1 直接配置实现了 org.apache.shiro.re...

Welcome 1944

Shiro实现多Realm认证、SecurityManager配置realms

认证策略实际上是AuthenticationStrategy这个接口,它有三个实现: • AuthenticationStrategy 接口的默认实现: • FirstSuccessfulStrategy:只要有一个 Realm 验证成功即可,只返回第 一个 Realm 身份验证成功的认证信息,其他的忽略; • AtLeastOneSuccessfulStrategy:只要有一个Realm验...

Hern(宋兆恒) 2822

apache-shiro杂记(二) 关于多realm认证的策略

一直以为给定的下面配置是短路方式的,即defaultJdbcRealm可以成功认证,backDoorJdbcRealm就不会被调用。 其实不然,org.apache.shiro.authc.pam.FirstSuccessfulStrategy并不是这个意思,所有的realm依然都会被调用。 只不过是第一个认证成功的AuthenticationInfo作为最后的结果返回。 [code="xm...

马勒・格・彼得 327
上一篇: shiro认证加密流程
下一篇: shiro授权流程
magicproblem
博客等级 码龄7年 22粉丝 59原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值