前面的帖子简单的介绍了基本的权限控制,可以说任何一个后台管理系统都是需要权限的
今天开始咱们来讲讲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里边创建一个subject14 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 }
运行后就可以测试用户名密码正确与否的情况是否能够通过
用户名不正确,密码不正确,或者用户名不存在都将以异常的信息抛出
原标题:权限框架
关键词: