Shiro学习_01(入门)

Shiro权限框架 01(shiro框架入门) Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权。​ 权限管理,一般指根据系统设置的安全策略或者安全规则,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。Spring中有Spring security(原名Acegi),是一个权限框架,它和Spring依赖过于紧密,没有Shiro使用简单。Shiro不依赖于Spring,Shiro不仅可以实现Web应用的权限管理,还可以实现c/s系统。 阅读详情

Shrio简介

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

shiro主要功能

  • Subject: 主体,代表了当前 “用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是 Subject,如网络爬虫,机器人等;即一个抽象概念;
    所有 Subject 都绑定到 SecurityManager,与 Subject 的所有交互都会委托给 SecurityManager;
    可以把 Subject 认为是一个门面;SecurityManager 才是实际的执行者;

  • SecurityManager: 安全管理器;即所有与安全有关的操作都会与 SecurityManager 交互;且它管理着所有 Subject;
    可以看出它是 Shiro 的核心,它负责与后边介绍的其他组件进行交互,
    可以把它看成SpringMVC的 DispatcherServlet 前端控制器;

  • Realm: 域,Shiro 从从 Realm 获取安全数据(如用户、角色、权限),就是说 SecurityManager 要验证用户身份,
    那么它需要从 Realm 获取相应的用户进行比较以确定用户身份是否合法;
    也需要从 Realm 得到用户相应的角色 / 权限进行验证用户是否能进行操作;
    可以把 Realm 看成 DataSource,即安全数据源。

  • 简单的一个 Shiro 应用:
    1、应用代码通过 Subject 来进行认证和授权,而 Subject 又委托给 SecurityManager;
    2、我们需要给 Shiro 的 SecurityManager 注入 Realm,从而让 SecurityManager 能得到合法的用户及其权限进行判断。

Shiro架构

  • Shrio不提供维护用户/权限,而是通过Realm让开发人员自己住入

Subject:主体,可以看到主体可以是任何可以与应用交互的 “用户”;

SecurityManager:相当于 SpringMVC 中的 DispatcherServlet 或者 Struts2 中的 FilterDispatcher;是 Shiro 的心脏;
所有具体的交互都通过 SecurityManager 进行控制;它管理着所有 Subject、且负责进行认证和授权、及会话、缓存的管理。

Authenticator:认证器,负责主体认证的,这是一个扩展点,如果用户觉得 Shiro 默认的不好,可以自定义实现;
其需要认证策略(Authentication Strategy),即什么情况下算用户认证通过了;

Authrizer:授权器,或者访问控制器,用来决定主体是否有权限进行相应的操作;即控制着用户能访问应用中的哪些功能;

Realm:可以有 1 个或多个 Realm,可以认为是安全实体数据源,即用于获取安全实体的;
可以是 JDBC 实现,也可以是 LDAP 实现,或者内存实现等等;由用户提供;
注意:Shiro 不知道你的用户 / 权限存储在哪及以何种格式存储;所以我们一般在应用中都需要实现自己的 Realm;

SessionManager:如果写过 Servlet 就应该知道 Session 的概念,Session 呢需要有人去管理它的生命周期,这个组件就是 SessionManager;
而 Shiro 并不仅仅可以用在 Web 环境,也可以用在如普通的 JavaSE 环境、EJB 等环境;
所以Shiro 抽象了一个自己的 Session 来管理主体与应用之间交互的数据;
这样的话,比如我们在 Web 环境用,刚开始是一台 Web 服务器;接着又上了台 EJB 服务器;
这时想把两台服务器的会话数据放到一个地方,这个时候就可以实现自己的分布式会话(如把数据放到 Memcached 服务器);

SessionDAO:DAO 大家都用过,数据访问对象,用于会话的 CRUD,
比如我们想把 Session 保存到数据库,那么可以实现自己的 SessionDAO,通过如 JDBC 写到数据库;
比如想把 Session 放到 Memcached 中,可以实现自己的 Memcached SessionDAO;
另外 SessionDAO 中可以使用 Cache 进行缓存,以提高性能;

CacheManager:缓存控制器,来管理如用户、角色、权限等的缓存的;因为这些数据基本上很少去改变,放到缓存中后可以提高访问的性能

Cryptography:密码模块,Shiro 提供了一些常见的加密组件用于如密码加密 / 解密的。

创建Springboot工程,导入shiro依赖

<dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-core</artifactId>
        <version>1.7.1</version>
</dependency>
<!-- 这里有用到日志打印,所以引入 -->
<dependency>
         <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.30</version>
        <scope>test</scope>
</dependency>

创建shiro.ini文件

  • 在resources下创建shiro.ini
[users]
shiro=123456
boot=456789

测试代码

package com.shiro.test;

import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.mgt.DefaultSecurityManager;
import org.apache.shiro.realm.text.IniRealm;
import org.apache.shiro.subject.Subject;

@Slf4j
public class ShiroTest {
    public static void main(String[] args) {
        // 1.创建安全管理器对象
        DefaultSecurityManager securityManager = new DefaultSecurityManager();
        // 2.给安全管理器设置realm(范围)
        securityManager.setRealm(new IniRealm("classpath:shiro.ini"));
        // 3.SecurityUtils给全局安全工具类设置安全管理器
        SecurityUtils.setSecurityManager(securityManager);
        // 4.关键对象subject主体
        Subject subject = SecurityUtils.getSubject();
        // 5.创建令牌
        // 假设username、password是从数据库获取
        UsernamePasswordToken token = new UsernamePasswordToken("shiro", "123456");
        try {
            // 认证前
            log.info("认证前状态:" + subject.isAuthenticated());
            // 执行用户认证
            subject.login(token);
            // 认证后
            log.info("认证后状态:" + subject.isAuthenticated());
        } catch (AuthenticationException e) {
            e.printStackTrace();
            log.error("认证失败,用户名或密码不存在");
        }
    }
}

如果用户名密码错误

UsernamePasswordToken token = new UsernamePasswordToken("shiro", "111111");

提示异常信息

"C:\Program Files\Java\jdk1.8.0_181\bin\java.exe" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2020.1\lib\idea_rt.jar=14731:D:\Program Files\JetBrains\IntelliJ IDEA 2020.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_181\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\rt.jar;E:\SpringBoot_Code\shiro\target\classes;D:\Users\HL\.m2\repository\org\apache\shiro\shiro-core\1.7.1\shiro-core-1.7.1.jar;D:\Users\HL\.m2\repository\org\apache\shiro\shiro-lang\1.7.1\shiro-lang-1.7.1.jar;D:\Users\HL\.m2\repository\org\apache\shiro\shiro-cache\1.7.1\shiro-cache-1.7.1.jar;D:\Users\HL\.m2\repository\org\apache\shiro\shiro-crypto-hash\1.7.1\shiro-crypto-hash-1.7.1.jar;D:\Users\HL\.m2\repository\org\apache\shiro\shiro-crypto-core\1.7.1\shiro-crypto-core-1.7.1.jar;D:\Users\HL\.m2\repository\org\apache\shiro\shiro-crypto-cipher\1.7.1\shiro-crypto-cipher-1.7.1.jar;D:\Users\HL\.m2\repository\org\apache\shiro\shiro-config-core\1.7.1\shiro-config-core-1.7.1.jar;D:\Users\HL\.m2\repository\org\apache\shiro\shiro-config-ogdl\1.7.1\shiro-config-ogdl-1.7.1.jar;D:\Users\HL\.m2\repository\commons-beanutils\commons-beanutils\1.9.4\commons-beanutils-1.9.4.jar;D:\Users\HL\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\Users\HL\.m2\repository\org\apache\shiro\shiro-event\1.7.1\shiro-event-1.7.1.jar;D:\Users\HL\.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;D:\Users\HL\.m2\repository\org\springframework\boot\spring-boot-starter\2.4.3\spring-boot-starter-2.4.3.jar;D:\Users\HL\.m2\repository\org\springframework\boot\spring-boot\2.4.3\spring-boot-2.4.3.jar;D:\Users\HL\.m2\repository\org\springframework\spring-context\5.3.4\spring-context-5.3.4.jar;D:\Users\HL\.m2\repository\org\springframework\spring-aop\5.3.4\spring-aop-5.3.4.jar;D:\Users\HL\.m2\repository\org\springframework\spring-beans\5.3.4\spring-beans-5.3.4.jar;D:\Users\HL\.m2\repository\org\springframework\spring-expression\5.3.4\spring-expression-5.3.4.jar;D:\Users\HL\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.4.3\spring-boot-autoconfigure-2.4.3.jar;D:\Users\HL\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.4.3\spring-boot-starter-logging-2.4.3.jar;D:\Users\HL\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\Users\HL\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\Users\HL\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\log4j-to-slf4j-2.13.3.jar;D:\Users\HL\.m2\repository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;D:\Users\HL\.m2\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;D:\Users\HL\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\Users\HL\.m2\repository\org\springframework\spring-core\5.3.4\spring-core-5.3.4.jar;D:\Users\HL\.m2\repository\org\springframework\spring-jcl\5.3.4\spring-jcl-5.3.4.jar;D:\Users\HL\.m2\repository\org\yaml\snakeyaml\1.27\snakeyaml-1.27.jar;D:\Users\HL\.m2\repository\org\springframework\boot\spring-boot-devtools\2.4.3\spring-boot-devtools-2.4.3.jar;D:\Users\HL\.m2\repository\org\projectlombok\lombok\1.18.18\lombok-1.18.18.jar" com.shiro.test.ShiroTest
15:52:36.390 [main] DEBUG org.apache.shiro.io.ResourceUtils - Opening resource from class path [shiro.ini]
15:52:36.398 [main] DEBUG org.apache.shiro.config.Ini - Parsing [users]
15:52:36.400 [main] DEBUG org.apache.shiro.realm.text.IniRealm - Discovered the [users] section.  Processing...
15:52:36.407 [main] INFO com.shiro.test.ShiroTest - 认证前状态:false
15:52:36.407 [main] DEBUG org.apache.shiro.realm.AuthenticatingRealm - Looked up AuthenticationInfo [shiro] from doGetAuthenticationInfo
15:52:36.407 [main] DEBUG org.apache.shiro.realm.AuthenticatingRealm - AuthenticationInfo caching is disabled for info [shiro].  Submitted token: [org.apache.shiro.authc.UsernamePasswordToken - shiro, rememberMe=false].
15:52:36.407 [main] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher - Performing credentials equality check for tokenCredentials of type [[C and accountCredentials of type [java.lang.String]
15:52:36.408 [main] DEBUG org.apache.shiro.authc.credential.SimpleCredentialsMatcher - Both credentials arguments can be easily converted to byte arrays.  Performing array equals comparison
15:52:36.409 [main] ERROR com.shiro.test.ShiroTest - 认证失败,用户名或密码不存在
org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToken - shiro, rememberMe=false] did not match the expected credentials.
	at org.apache.shiro.realm.AuthenticatingRealm.assertCredentialsMatch(AuthenticatingRealm.java:603)
	at org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:581)
	at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doSingleRealmAuthentication(ModularRealmAuthenticator.java:180)
	at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:273)
	at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198)
	at org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106)
	at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:275)
	at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:260)
	at com.shiro.test.ShiroTest.main(ShiroTest.java:31)

Process finished with exit code 0

常用异常类型

  • 错误的帐号:UnknownAccountException
  • 错误的凭证(密码):IncorrectCredentialsException
  • 禁用的帐号:DisabledAccountException
  • 锁定的帐号:LockedAccountException
  • 登录失败次数过多:ExcessiveAttemptsException
  • 过期的凭证:ExpiredCredentialsException
shiro-crypto-cipher-1.4.0-API文档-中文版.zip 赠送jar包:shiro-crypto-cipher-1.4.0.jar; 赠送原API文档:shiro-crypto-cipher-1.4.0-javadoc.jar; 赠送源代码:shiro-crypto-cipher-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-crypto-cipher-1.4.0.pom; 包含翻译后的API文档:shiro-crypto-cipher-1.4.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.shiro:shiro-crypto-cipher:1.4.0; 标签:apache、shiro、crypto、cipher、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 立即下载

相关推荐

前端埋点的实践

1、前言 开始正文前先介绍一下埋点的概念~,(熟悉的朋友可以略过) 前端埋点: 是一种手段,它的目的是上报相关行为数据,相关人员以数据为依据来分析产品在用户端的使用情况,根据分析出来的结果辅助产品优化、迭代。 BI:商业智能,公司内部做数据分析相关的部门。 2、背景 在流量红利逐渐消失的现在,数据的采集、分析和精细化的运营显得更加重要,所以埋点的需求在互联网产品中是很常见的,目的上面也提到了。我们的追求就是又快又好的做好埋点工作,但是现实却不那么美好;目前我们团队在前端埋点方面存在一些痛点: 在构造埋点字段

Arui_0的博客 1772

在IDEA工具中设置Spark程序设置日志打印级别

引入logger4j和slf4j的依赖 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency&gt...

zhaoguowei的博客 2570

如何把DeepSeek这个奈斯工具接入到Pycharm里

DeepSeek接入到Pycharm中,提高编程效率,以及帮助解决遇到的问题。

学无止境,何以言满 2621

shiro常用配置

快速开始 maven依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.2.3</version&g...

weixin_40655902的博客 339

保姆级教程:在Windows 10/11上安装配置KNIME 5.8.0(含中文文本库更新)

本文提供在Windows 10/11系统上安装配置KNIME 5.8.0的详细指南,包括中文文本库更新和性能优化方案。从环境准备、安装流程到中文文本处理能力强化,逐步指导用户搭建高效的数据分析环境,特别针对国内网络环境和中文用户需求提供实用解决方案。

weixin_29081101的博客 668

一图文带您认识磁编码器

磁编码器是以磁电原理技术生产的编码器。 磁编码器工作原理: 当电流通过一个位于磁场中的导体的时候,磁场会对导体中的电子产生一个垂直于电子运动方向上的的作用力,从而在垂直于导体与磁感线的方向上产生电势差。 如果让施加在这个导体上的磁场以电流流经路径为轴线,按照上图箭头所示的方向旋转,那么这个霍尔电势差就会因为磁场与导体之间角度的改变而发生变化,而这个电势差的变化趋势,与之前一文中次级线圈旋转时的输出电压一样,是一条正弦曲线。因此,基于这个通电导体两侧的电压,就可以反推计算出磁场旋转的角度了。 .

encoder_yang的博客 2万+

Shiro框架

Shiro框架

xixihaha_coder的博客 2530

Zemax实战:手把手教你设计一个40倍、NA0.65的显微物镜(附初始结构文件)

本文详细介绍了使用Zemax设计40倍、NA0.65显微物镜的完整流程,从初始结构搭建到优化验证,涵盖光学设计的关键技巧和实战经验。通过分阶段优化策略和公差分析,帮助工程师快速掌握高倍显微物镜的设计方法,提升光学系统性能。

weixin_42525369的博客 338

web项目shiro与spring集成 maven依赖及web配置详解

依赖shiro的maven坐标: org.apache.shiro shiro-core ${shiro.version} org.apache.shiro shir

走走停停的小码农的博客 8418

Vue3结合vue-office实现Word文档上传与预览全流程解析

本文详细解析了如何在Vue3项目中集成vue-office插件实现Word文档上传与预览功能。从项目初始化、插件安装到文件上传处理(包括ArrayBuffer转换)、预览优化及常见问题解决方案,提供了一套完整的实现流程,帮助开发者快速实现高效的文档预览功能。

weixin_29001327的博客 464

贝塞尔曲线原理--曲线生成--路径规划--matlab代码

贝塞尔曲线有着很多特殊的性质, 在图形设计和路径规划中应用都非常广泛, 在路径规划中贝塞尔曲线完全由其控制点决定其形状, n个控制点对应着n-1阶的贝塞尔曲线,并且可以通过递归的方式来绘制.

bob595078694的博客 1万+

5.传统Spring中使用Shiro(XML)

传统Spring使用Shiro(XML) 1.导入依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.5.3</version> </dependency> <dependency> <groupId>org.apache.shiro&

相互学习 共同进步 1325

小众但实用:Python爬取钉钉/企业微信消息,实现办公数据自动化采集(完整版)

钉钉/企业微信的办公数据自动化采集,属于「小众但极度实用」的Python技巧——它不像爬虫爬取电商/网页数据那样被广泛关注,但能直接解决职场人的「刚需痛点」,把每天1-2小时的手动数据整理工作,变成「一键自动化完成」。这套技巧的核心价值,不在于「技术有多高深」,而在于「能真正落地、能真正提升效率」—— 几行简单的Python代码,就能解放双手,让你从繁琐的重复工作中解脱出来,专注于更有价值的核心工作。更重要的是:所有的技术和代码,都是基于「合规合法」的前提,守住了技术的底线,也守住了职场的原则。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1928

Shiro安全框架学习01 -入门

Apache Shiro是一个开源安全框架,可用于身份验证、授权、加密和会话管理。 身份验证和授权 在对系统进行安全保障时,有两个安全性元素非常重要:身份验证和授权。 身份验证指的时验证用户的身份。在验证用户身份时,需要确认用户的身份是否正确。在大多数应用程序种, 身份验证是通过用户名和密码的组合完成的。只要用户选择了他人很难猜到的密码,那么用户名和密码的组合通常就足以确立身份。 一旦身份验证过程...

itmyhome的专栏 935

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

假人有限元模型

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

Shiro学习笔记_01:权限管理+shiro基本概念+shiro核心架构

Shiro 学习笔记 本文基于B站UP主【编程不良人】视频教程【2020最新版Shiro教程,整合SpringBoot项目实战教程】进行整理记录,仅用于个人学习交流使用。 视频链接:https://www.bilibili.com/video/BV1uz4y197Zm 官方文档:http://www.baizhiedu.xin 目录标题Shiro 学习笔记一、权限的管理1.1 什么是权限管理1.2 什么是身份认证1.3 什么是授权二、什么是shiro三、shiro的核心架构3.1 Subject3.2

耿鬼不会笑的博客 9205

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Springboot整合Shiro框架入门

Springboot中集成Shiro框架1、快速开始demo2、Springboot集成Shiro2.1、环境搭建2.2、shiro的拦截2.3、shiro的认证2.4、整合mybatis2.5、shiro进行授权2.6、shiro整合thymeleaf 1、快速开始demo 来到shiro的官网:shiro官方网站: 下载官方在git仓库上提供的源码,下载后解压: 官方提供了在多种场景下使用的demo,等一下会用到sample里面的东西。下面直接按官方推荐的10分钟入门demo进行测试。 创建一

qq_42640067的博客 2152

01.shiro入门

01.shiro入门Shiro简介Shiro入门案例1、导入相关依赖2、导入日志3、编写shiro.ini文件Shiro与web容器的集成 Shiro简介 什么是shiro shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。 spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用...

what_to的博客 155

Shiro学习笔记_02:shiro的认证+shiro的授权

Shiro 学习笔记 本文基于B站UP主【编程不良人】视频教程【2020最新版Shiro教程,整合SpringBoot项目实战教程】进行整理记录,仅用于个人学习交流使用。 视频链接:https://www.bilibili.com/video/BV1uz4y197Zm 官方文档:http://www.baizhiedu.xin 目录标题Shiro 学习笔记四、shiro中的认证4.1 认证4.2 shiro中认证的关键对象4.3 认证流程4.4 认证的开发1. 创建项目并引入依赖2. 引入shiro配置

耿鬼不会笑的博客 9021

shiro01入门

- %d{yyyy-MM-dd HH:mm:ss, SSS} : 日志生产时间 %p : 日志输出格式 %c : logger的名称。-- log4j2的按分钟 分日志文件 : warn-%d{yyyy-MM-dd-HH-mm}-%i.log -->-- status : 指定log4j本身的打印日志的级别.ALL< Trace < DEBUG < INFO < WARN < ERROR。-- log4j2的按天分日志文件 : info-%d{yyyy-MM-dd}-%i.log -->

qq_66924116的博客 149

Shiro入门

Shiro入门前言Shiro简介Shiro的优点Shiro比较重要的几个点为什么要使用Shiro在应用程序中如何使用ShiroShiro入门案例总结 前言 今天为大家分享的是Shiro的相关知识,一起来看看趴~ Shiro简介 shiro是apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权。 Shiro的优点 spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单 shiro不依赖于sprin

月亮投递员的博客 361

shiro入门之shiro与web的整合

转载请标明出处:https://blog.csdn.net/men_ma/article/details/106847165. 本文出自 不怕报错 就怕不报错的小猿猿 的博客 shiro入门之shiro与web的整合目标1.shiro简介1.1 什么是shiro1.2 在应用程序角度来观察如何使用Shiro完成工作(图01)1.3 shiro架构(图02)2.Shiro入门案例第一步:导入日志"**log4j2.xml(异步日志系统)**"第二步:在"**pom.xml**"中导入相关依赖第三步.

men_ma的博客 616

Shiro学习01:使用Shiro实现身份管理和权限验证

Shiro学习01:使用Shiro实现身份管理和权限验证Shiro的基本概念Shiro入门实例1: 通过ini配置文件实现身份验证项目准备使用默认Realm组件使用自定义Realm使用密文存储密码Shiro入门实例2: 通过ini配置文件实现权限管理BRAC权限管理使用ini配置文件为用户授权使用自定义Realm为用户授权Shiro权限管理的执行流程 Shiro的基本概念 Shiro的基本功能...

ncepu_Chen的博客 1157

Shiro 入门

Apache Shiro是一个功能强大且易于使用的Java安全框架,提供身份认证、授权、加密和会话管理等功能。本文详细介绍了Shiro的核心架构(包括Subject、SecurityManager、Realm等组件)、认证授权流程、MD5与盐值加密、SpringBoot整合、缓存机制(EhCache和Redis)以及权限控制实现。通过实战示例演示了用户注册登录、基于角色和资源的权限控制、Freemarker整合等场景,帮助开发者快速掌握Shiro在企业级应用中的安全防护技术。文章还涵盖了验证码集成、自定义R

weixin_51689532的博客 812

shiro入门

目录: 1.pom.xml 2.applicationContext.xml 3.applicationContext-mybatis.xml 4.SpringBaseTest 5.优化分页 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4...

trasewell的博客 1144
上一篇: 面试题 - 京东(笔试). 有机化合物
下一篇: Shiro学习_02(认证)
hanlin-hl
博客等级 码龄8年 3粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

hanlin-hl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值