3-Shiro框架-多Realm认证

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

多Realm认证,首先得有多个realm对吧,先搞两个,之前已经在spring中配置了一个realm了,再添加一个新的Realm。

  • 这个新的Realm改一下它的加密参数就行了,其它的不变
    <!--实现了Realm接口的实现类,一开始就配置好的那个-->
    <bean id="jdbcRealm" class="com.xxx.shiro.ShiroRealm">
        <property name="credentialsMatcher">
            <bean class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">
                <property name="hashAlgorithmName" value="MD5"/>
                <property name="hashIterations" value="1024"/>
            </bean>
        </property>
    </bean>
    <!--实现了Realm接口的实现类,新加的用SHA1的方式加密-->
    <bean id="secondRealm" class="com.xxx.shiro.ShrioSecondRealm">
        <property name="credentialsMatcher">
            <bean class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">
                <property name="hashAlgorithmName" value="SHA1"/>
                <property name="hashIterations" value="1024"/>
            </bean>
        </property>
    </bean>
  • 还要在securityManager中引入这个新加的Realm,之前用的是Realm属性,现在添加两个就不能用之前配置的realm属性了,要用realms属性(Σ( ° △ °|||)︴是不是很好理解……)
    <!--配置securityManager-->
    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="cacheManager" ref="cacheManager"/>
        <property name="realms">
            <list>
                <ref bean="jdbcRealm"/>
                <ref bean="secondRealm"/>
            </list>
        </property>
    </bean>
其次

有了多个Realm,现在是按照配置的顺序认证的,自然而然就有怎么认证才算数的问题,这时候就需要认证策略来决定到底怎么办o(∩_∩)o

认证策略是AuthenticationStrategy接口的默认实现
  • FirstSuccessfulStrategy:只要一个成功即可,只返回第一个成功的认证信息。
  • AtLeastOneSuccessfulStrategy:只要一个成功即可,返回所有成功的认证信息
  • AllSuccessfulStrategy:所有的都成功才行,返回所有成功的认证信息
    默认的应该是至少一个的那个。还有,所谓的认证信息就是Realm中最后要返回的那个simple什么的对象的构造函数里面传的第一个参数。还有,失败的信息会被忽略。

要配置认证策略,要再配置一个如下的类,在该类的属性中配置相关的认证策略。最后把这个类配置到securityManager的authenticator属性当中即可。

    <bean id="authenticator" class="org.apache.shiro.authc.pam.ModularRealmAuthenticator">
        <!--配置认证策略为全部成功才可以-->
        <property name="authenticationStrategy">
            <bean class="org.apache.shiro.authc.pam.AllSuccessfulStrategy"/>
        </property>
    </bean>

securityManager的新配置方法

    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="cacheManager" ref="cacheManager"/>
        <property name="authenticator" ref="authenticator"/>
        <property name="realms">
            <list>
                <ref bean="jdbcRealm"/>
                <ref bean="secondRealm"/>
            </list>
        </property>
    </bean>
shiro教程6(多realm认证) 为什么要使用多realm认证? 实际开发中存在这样一种场景,同一个密码可能在MqSQL中存储,也可能在Oracle中存储,有可能MqSQL中使用的是MD5加密算法,而Oracle使用SHA1加密算法。这就需要有多个Realm以及认证策略的问题。 实现多realm认证 在上篇教程的基础上我们来完成此案例shiro教程5(整合SSM项目-认证) 首先MD5和SHA1加密简单实现 SHA1算法... 阅读详情

相关推荐

Aurora8b10b光口通信实战:复位时序与IP核配置详解

本文深入解析了Aurora 8B10B协议在FPGA高速光口通信中的核心实践,重点剖析了确保链路稳定启动的关键复位时序与IP核配置细节。通过详解全双工与单工模式下的复位流程、Vivado中IP核的物理层与链路层参数设置,并结合用户逻辑设计实例,为工程师实现可靠的高速数据传输提供了清晰的实战指南。

weixin_29280219的博客 177

spring boot2.0 集成 redis 因为@EnableCaching注解引发的问题

今天在项目中集成redis,看了一个文章springboot集成redis (Lettuce),然后我在集成的收遇到了一个问题 Description: Parameter 1 of method securityManager in com.fc.sayhi.shiro.config.ShiroConfig required a bean of type 'org.apache.shiro.cache.CacheManager' that could not be found. Action: C

qq_36217461的博客 1626

Fastp实战指南:高效处理fastq数据的质控技巧

本文是Fastp实战指南,详细介绍了如何使用Fastp工具高效处理fastq数据的质控技巧。从数据清洗的必要性、基础命令解析,到高级参数定制、UMI数据处理及批量自动化流程,提供一站式解决方案。Fastp以其“All-in-One”的快速质控能力,帮助用户确保测序数据质量,为后续生物信息学分析奠定可靠基础。

weixin_29254029的博客 387

Consider defining a bean of type问题解决

今天在写新服务时忽然报了这个错误:Consider defining a bean of type;大意为考虑定义一种类型的bean,也会是说你的管理工具没找到你要的那个类,根据这个想法,试着从起点找了一下,实现类是否有@Service注解,包位置是否有问题。于是便找到了问题的来历,没有在实现类上放注解,导致spring无法找到相应bean,无法完成注入,于是报错。 ...

weixin_36562747的博客 18万+

Adams与Matlab联合仿真入门:从零搭建你的第一个动力学模型

本文为Adams与Matlab联合仿真新手提供了一份详尽的入门指南。文章从软件环境配置、版本兼容性检查讲起,逐步演示了如何在Adams中构建单摆动力学模型并定义输入输出接口,以及在Matlab/Simulink中搭建控制回路。通过一个完整的受控单摆实例,手把手教你完成从模型导出、模块生成到执行联合仿真的全流程,帮助你快速搭建并运行第一个联合仿真模型,实现动力学与控制系统的协同验证。

g5h6i7j的博客 698

提示deepseek生成完整的json用于对接外部API

通过精准的提示词设计(字段过滤、格式约束)、动态验证机制(自检与修正)和官方模板参考,可有效确保DeepSeek生成的JSON纯净无冗余。

神棍之路 2307

关于报错Consider defining a bean of type 的解决

关于报错Consider defining a bean of type 的解决 引用: https://blog.csdn.net/qq_41937388/article/details/106967610

automal的博客 23万+

【OpenClaw从入门到精通】第09篇:企业级实践——将OpenClaw接入钉钉,打造7×24小时数字员工(2026实测版)

本文聚焦OpenClaw的企业级落地实践,以“招聘数字专员”为核心场景,完整演示从钉钉接入到全流程自动化的实现路径。内容涵盖企业级部署架构设计、前置环境搭建、核心技能开发、流程串联、安全权限管控及运维监控六大模块,详解简历解析、岗位匹配、外呼集成、CRM同步、日历提醒等关键技能的构建逻辑与代码实现。借鉴中关村科金、网易智企的企业级实践经验,重点突破企业知识融合、安全权限管控、业务系统连接三大核心门槛,提供可直接参考的配置示例与操作步骤。所有技术方案均基于公开文档与实测验证,兼顾新手入门与进阶实操。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1163

2017.2.7 开涛shiro教程-第六章-Realm及相关对象(三)

原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习。 第六章 Realm及相关对象(三) 1.准备3个Realm MyRealm1,MyRealm2,MyRealm3。 (1)MyRealm1 public class MyRealm1 implements Realm { ...

weixin_30607029的博客 104

会话管理技巧——如何优化OpenClaw的上下文理解能力(2026进阶版)

本文深入探讨了OpenClaw系统的会话管理技术,重点介绍了会话定义、生命周期管理和上下文优化策略。会话管理包含会话ID、用户信息、状态等核心要素,以及创建、维护、终止和恢复四个生命周期阶段。上下文管理通过ContextManager类实现,支持创建、更新、消息添加和变量管理等功能,并采用历史记录机制确保会话连续性。ContextOptimizer类则负责应用优化规则,通过消息和变量压缩等技术提升系统性能。这些技术共同构建了OpenClaw强大的会话管理能力,为AI助手提供了高质量的交互体验基础。

博客 489

【GameFramework框架】二、GameFramework框架介绍

Game Framework框架是由E大(Ellan Jiang)开源的一款基于Unity的通用游戏框架。Game Framework框架提供了游戏开发中常用的框架基础模块,将基础模型进行了封装,在资源管理和资源更新方面比较完善,可以大大加大开发进程,加快开发速度,并且还在在此此处上保证产品质量。实在是代码开发、框架学习、编程进阶、居家旅行哦不对,是提升自己的最佳实践。Game Framework框架。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 5843

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

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

Hern(宋兆恒) 2822

预测股票价格趋势:使用MATLAB进行股票价格预测

通过收集股票数据、数据预处理、构建预测模型以及可视化结果,我们可以利用MATLAB强大的计算和分析功能来预测股票价格的走势。然而,需要注意的是,股票市场具有高度复杂性和不确定性,预测结果仅供参考,并不构成投资建议。然而,借助计算机编程和数据分析工具,我们可以利用历史股价数据来建立模型,并预测未来的股票价格走势。首先,我们需要获取股票的历史价格数据。完成模型的拟合后,我们可以使用该模型来进行未来股票价格的预测。最后,我们可以使用MATLAB的绘图功能将预测的股票价格与实际股票价格进行对比,并进行可视化展示。

2301_79326588的博客 1018

Shiro - 实现 Shiro 多 Realm 联合认证与授权

Shiro 多 Realm 联合认证与授权 摘要 本文介绍了如何使用 Apache Shiro 实现多 Realm 联合认证与授权系统,主要包含以下内容: 核心概念:回顾了 Shiro 的 Subject、SecurityManager、Realm 等核心组件及其在多 Realm 场景下的协作关系。 多 Realm 必要性:分析了企业级应用中常见的混合认证需求场景,如内部系统集成、多种登录方式并存等。 认证策略:详细讲解了 AtLeastOneSuccessfulStrategy(默认)、AllSucces

千淘万漉虽辛苦,吹尽狂沙始到金 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

假人有限元模型

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

②【Shiro】Shiro登录认证、自定义Realm

- **在Shiro框架中,用户需要提供`principals(身份)`和`credentials(证明)`给shiro,从而shiro对用户进行身份验证。** - **`principals(身份)`:是主体的标识属性,可以是任何属性,如:用户名、email等,保证唯一即可。一份主体可以有多个`principals(身份)`,但是只有一个`Primary principals`,一般是用户名/邮箱/手机号。** - **`credentials(证明)`:证明/凭证,是只有主体知道的安全值,如:密码、数字

ebb29bbe的博客 1728

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

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

shiro【多Realm认证】

文章目录为什么要使用多realm认证?实现多realm认证首先MD5和SHA1加密简单实现sha1算法MD5算法项目实现多Realm认证mapper接口mapper映射文件service处理添加一个自定义Realm文件添加多Realm配置 为什么要使用多realm认证? 实际开发中存在这样一种场景,同一个密码可能在MqSQL中存储,也可能在Oracle中存储,有可能MqSQL中使用的是MD5加密算...

慕北丶 953

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

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

Springboot2集成Shiro框架(九)配置多个realm

目录

New_Yao的博客 3603

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

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

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

1909

SpringBoot 整合shiro实现多Realm的控制

文章目录SpringBoot 整合shiro实现多Realm的控制一、场景1、假设是让你设计这个表 你会怎么设计?2、管理员的表和用户的表 假设我们都使用shiro来进行认证 ? 怎么办?3、存在两个问题二、编写代码1、导包2、配置application.properies3、编写登陆页面4、编写user模块登陆成功的页面5、编写Admin模块登陆成功的页面6、编写登陆类型的枚举7、编写校验器...

yuemmm的博客 2419

Shiro的多Realm验证的实现--shiro实现不同身份使用不同Realm进行验证

如果要看多Realm进行授权: 请参看 https://blog.csdn.net/u013294097/article/details/90066869 假设现在有这样一种需求:存在两张表user和admin,分别记录普通用户和管理员的信息。并且现在要实现普通用户和管理员的分开登录,即需要两个Realm——UserRealm和AdminRealm,分别处理普通用户和管理员的验证功能。 ...

Buggggggg 4431

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

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

12程序猿的博客 768

Shiro之多Realm认证

多Realm认证问题引入实现方案首先分别实现MD5和sha1加密MD5Sha1项目中实现多Realm认证实现Mapper接口实现对应的mapper.xml文件service处理添加多Realm配置 问题引入 实际开发中存在这样一种场景,同一个密码可能在MySQL中存储,也可能在Oracle中存储,有可能MySQL中使用的是MD5加密算法,而Oracle使用SHA1加密算法。这就需要有多个Realm...

JustinNeil的博客 397

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

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

12程序猿的博客 1520
上一篇: 2-Shiro框架-大致流程
下一篇: 4-Shiro框架-权限管理
Suzuki Mirai
博客等级 码龄9年 17粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值