權限框架 - 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     }

運行后就可以測試用戶名密碼正確與否的情況是否能夠通過

用戶名不正確,密碼不正確,或者用戶名不存在都將以異常的信息拋出

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM