权限框架 - shiro 简单入门实例

Posted 风间影月の技术小站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了权限框架 - shiro 简单入门实例相关的知识,希望对你有一定的参考价值。

前面的帖子简单的介绍了基本的权限控制,可以说任何一个后台管理系统都是需要权限的

今天开始咱们来讲讲Shiro

首先引入基本的jar包

 1 <!-- shiro -->
 2         <dependency>
 3             <groupId>org.apache.shiro</groupId>
 4             <artifactId>shiro-core</artifactId>
 5         </dependency>
 6         <dependency>
 7             <groupId>org.apache.shiro</groupId>
 8             <artifactId>shiro-web</artifactId>
 9         </dependency>
10         <dependency>
11             <groupId>org.apache.shiro</groupId>
12             <artifactId>shiro-spring</artifactId>
13         </dependency>
14         <dependency>
15             <groupId>org.apache.shiro</groupId>
16             <artifactId>shiro-ehcache</artifactId>
17         </dependency>
18         <dependency>
19             <groupId>org.apache.shiro</groupId>
20             <artifactId>shiro-quartz</artifactId>
21         </dependency>

 

项目工程结构:

创建shiro-demo.ini:

# user infomation configer: [name=pwd]
[users]
lee=123456
nee=654321

构建一个junit测试最基本的登录登出

 1 @Test
 2     public void testLoginAndLogout() {
 4         // 创建SecurityManager工厂,通过ini配置文件创建 SecurityManager工厂
 5         Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro/shiro-demo.ini");
 7         // 创建SecurityManager
 8         SecurityManager securityManager = factory.getInstance();
10         // 设置SecurityManager到运行环境中,保持单例模式
11         SecurityUtils.setSecurityManager(securityManager);
13         // 从SecurityUtils里边创建一个subject
14         Subject subject = SecurityUtils.getSubject();
16         // 在认证提交前准备token(令牌)
17         // 这里的账号和密码 将来是由用户输入进去
18         UsernamePasswordToken token = new UsernamePasswordToken("lee", "123456");
20         try {
21             // 执行认证提交
22             subject.login(token);
23         } catch (AuthenticationException e) {
24             e.printStackTrace();
25         }
27         // 是否认证通过
28         boolean isAuthenticated = subject.isAuthenticated();
30         System.out.println("是否认证通过:" + isAuthenticated);
32         // 退出操作
33         subject.logout();
35         // 是否认证通过
36         isAuthenticated = subject.isAuthenticated();
38         System.out.println("是否认证通过:" + isAuthenticated);
39     }

运行后就可以测试用户名密码正确与否的情况是否能够通过

用户名不正确,密码不正确,或者用户名不存在都将以异常的信息抛出

 

以上是关于权限框架 - shiro 简单入门实例的主要内容,如果未能解决你的问题,请参考以下文章

shiro权限框架简单快速入门

权限控制框架Shiro简单介绍及配置实例

Shiro入门

shiro入门

shiro入门

Spring boot 入门:集成 Shiro 实现登陆认证和权限管理