常用接口
核心代码
package com.lhw.shiro_demo.chart4_2;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.mgt.DefaultSecurityManager;
import org.apache.shiro.realm.SimpleAccountRealm;
import org.apache.shiro.subject.Subject;
import org.junit.Before;
import org.junit.Test;
public class QuickStartTest2 {
private SimpleAccountRealm simpleAccountRealm = new SimpleAccountRealm();
private DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();
@Before
public void init(){
simpleAccountRealm.addAccount("lhw", "123", "root", "admin");
simpleAccountRealm.addAccount("cd", "456", "user");
defaultSecurityManager.setRealm(simpleAccountRealm);
}
@Test
public void testAuthentication() {
SecurityUtils.setSecurityManager(defaultSecurityManager);
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken("lhw", "123");
subject.login(usernamePasswordToken);
System.out.println("认证结果:" + subject.isAuthenticated());
System.out.println("是否有对应 root 角色:" + subject.hasRole("root"));
System.out.println("getPrincipals(登陆用户名):" + subject.getPrincipals());
System.out.println("认证结果:" + subject.isAuthenticated());
System.out.println("认证结果:" + subject.isAuthenticated());
System.out.println("退出");
subject.logout();
System.out.println("认证结果:" + subject.isAuthenticated());
System.out.println("是否有对应 root 角色:" + subject.hasRole("root"));
System.out.println("getPrincipals(登陆用户名):" + subject.getPrincipals());
System.out.println("认证结果:" + subject.isAuthenticated());
System.out.println("认证结果:" + subject.isAuthenticated());
}
}