shiro初探,最簡單的認證,通過ini檔案。
阿新 • • 發佈:2021-09-07
一共分三大元件 subject(主題,主要是認證的使用者密碼),securityManager(安全管理器),realm(資料橋樑)
在resource 裡建立shiro.ini 檔案
#使用者 [users] zhangsan=123456 lisi=12345
然後寫test類
package cn.taotao; import org.apache.commons.collections.bag.SynchronizedSortedBag; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.Factory; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTestclass ActivitiApplicationTests { @Test void contextLoads() { } @Test void testShiro(){ String username="zhangsan"; String password = "123456"; // 建立工廠,注意引入的包名,SecurityManager 是shiro的包 Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini"); // 取得安全管理器例項 SecurityManager securityManager = factory.getInstance(); // 把當前SecurityManager 繫結到當前執行緒 SecurityUtils.setSecurityManager(securityManager); // 取出當前的subject Subject subject = SecurityUtils.getSubject(); // AuthenticationToken authenticationToken = newUsernamePasswordToken(username,password); subject.login(authenticationToken); System.out.println("是否認證成功"+subject.isAuthenticated()); } }