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”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 立即下载

相关推荐

Sentaurus TCAD 实战指南:几何、掺杂与物理模型对Ion/Ioff的协同调控

本文详细介绍了Sentaurus TCAD在器件仿真中的实战应用,重点解析了Ion(开态电流)与Ioff(关态电流)的协同优化方法。通过几何结构设计、掺杂工程和物理模型选择三大要素的精细调整,实现器件性能的显著提升。文章结合28nm和7nm工艺案例,展示了如何平衡Ion与Ioff的矛盾关系,为TCAD工程师提供实用指导。

weixin_29159711的博客 134

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

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

zhaoguowei的博客 2570

Vue3多级路由缓存失效的深度解析与实战解决方案

本文深度解析了Vue3项目中多级路由嵌套下keep-alive缓存失效的根本原因,并提供了三种实战解决方案。通过剖析组件树、router-view与keep-alive的协作机制,揭示了缓存无法穿透多层router-view的技术本质。文章对比了路由扁平化重构、状态管理配合路由守卫以及使用社区插件等方案的优缺点与适用场景,为开发者解决这一常见难题提供了清晰的选型指导。

weixin_29001423的博客 270

shiro常用配置

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

weixin_40655902的博客 339

玄机-Linux权限维持-后门

玄机-Linux权限维持-后门

m0_46439803的博客 762

别再手动拷贝文件了!用Keil MDK的Pack Installer一键搞定STM32上的RT-Thread Nano移植

本文详细介绍了如何使用Keil MDK的Pack Installer一键快速移植RT-Thread Nano到STM32项目,告别繁琐的手动拷贝和配置过程。通过自动化版本管理和依赖处理,移植时间从47分钟缩短至3分钟,大幅提升开发效率。文章还提供了实战步骤、高级配置技巧和常见问题解决方案,帮助开发者轻松实现RTOS集成。

weixin_29194817的博客 363

Shiro框架

Shiro框架

xixihaha_coder的博客 2530

vuecli3 实现 移动端和pc端 界面切换(两套代码)

适合场景 多页面多系统应用 所有系统都在同一目录下。配置多入口多出口。每个系统之间可以链接。每个系统内依然采用Vue单页应用开发。 产品需求:一套代码 兼容pc端和移动端 , 移动端和pc端的样式布局差别很大,需要使用多界面,并判断使用手机的时候跳转移动端代码,使用pc端跳转pc端代码。 项目目录 分为两部分代码,pc 和mobile 第一步:创建一个登陆页面的文件 在项目public文件夹下创建一个login.html,其实就是将index.html复制一份,将title改一下: <!DOCTYP

你怎么也喜欢嘴巴嘟嘟 5918

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

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

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

IEC61850客户端连接实战:CMS vs MMS协议抓包对比与性能初探(基于YX-PIS协议栈)

本文深入探讨了IEC61850客户端连接中CMS与MMS协议的抓包对比与性能优化。通过Wireshark抓包分析、协议栈配置实战和性能基准测试,揭示了两种协议在连接建立、数据交互和性能调优方面的关键差异,为智能电网自动化系统的协议选择提供了实用指南。

weixin_29209805的博客 214

淘宝抓包,直达函数内部request请求体和response响应体, 告别FD, Charles,SSL,justtrustme 等http代理,证书工具。

淘宝抓包,hook发包函数,直接获取response相应数据

binary66的博客 4468

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

Verilog基础知识11(异步FIFO为什么使用格雷码(gray-code) )

需求说明:Verilog设计 内容       :第一部分 异步FIFO为什么使用格雷码                   第二部分 格雷码在异步FIFO中的使用 来自       :时间的诗 第一部分 异步FIFO为什么使用格雷码 原文:http://www.cnblogs.com/kxk_kxk/p/3931591.html 异步FIFO通

时间的诗 8888

Shiro安全框架学习01 -入门

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

itmyhome的专栏 935

VB摄像头监控

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

STM32F407中文手册

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

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

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

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

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、付费专栏及课程。

余额充值