Shiro(一)通過shiro實現登錄


第一步

public class ShiroTest         
@Test        
public void test1(){
//
1.獲取用戶輸入的賬號密碼 假數據 模擬用戶網頁輸入 String username = "xiaohei"; String password = "123456"; // 2.獲取數據庫的數據(ini配置文件) 假數據 IniSecurityManagerFactory securityManagerFactory = new IniSecurityManagerFactory("classpath:datasources.ini"); /** * SecurityManager 安全管理器對象 Shiro中的核心對象 * 在此處可以認為封裝了配置文件中的用戶數據 */ SecurityManager securityManager = securityManagerFactory.getInstance(); // 3.把安全管理器 給 工具類 就相當於把數據庫中的數據(ini配置文件)給了Subject SecurityUtils.setSecurityManager(securityManager); // 4.獲取Subject 主體 /** * 在項目中任何位置想要得到Subject 都需要通過SecurityUtils 工具類 * * 保證了單例 */ Subject subject = SecurityUtils.getSubject(); // 5.需要把用戶輸入的賬號密碼給主體 /** * Token 令牌 記錄身份信息 在shiro中需要先把賬號密碼 封裝到Token中 * 在登錄的時候 將Token給Subject */ UsernamePasswordToken token = new UsernamePasswordToken(username, password); // 6.調用登錄方法 /** * login 通過拋異常的方式來告訴用戶有沒有登錄成功 * * IncorrectCredentialsException 代表密碼不正確 Credential 憑證信息 就是password的意思 * * UnknownAccountException 代表賬號不存在 Account 賬號 * */ try{ subject.login(token); System.out.println("登錄成功1"); }catch (IncorrectCredentialsException e){ System.out.println("密碼不正確"); }catch (UnknownAccountException e1){ System.out.println("賬號不存在"); }
        if(
subject.isAuthenticated()){
            System.out.println(authenticated+"是否登錄成功");
        }
 }

說明:

數據庫的用戶信息使用的是datasources.ini配置文件中的假數據。因為Shiro默認就是從配置文件讀取信息


免責聲明!

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



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