package com.example.springdemo;
import com.example.springdemo.shiro.CustomRealm;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
import org.apache.shiro.crypto.hash.Md5Hash;
import org.apache.shiro.mgt.DefaultSecurityManager;
import org.apache.shiro.subject.Subject;
public class TestMain {
public static void main(String[] args) {
DefaultSecurityManager securityManager = new DefaultSecurityManager();
// securityManager.setRealm(new IniRealm("classpath:shiroConfig.ini"));
CustomRealm customRealm = new CustomRealm();
HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher();
credentialsMatcher.setHashAlgorithmName("MD5");
credentialsMatcher.setHashIterations(1024);
customRealm.setCredentialsMatcher(credentialsMatcher);
securityManager.setRealm(customRealm);
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken("zhangsanadmin","123");
try{
subject.login(usernamePasswordToken);
System.out.println(subject.isAuthenticated());
System.out.println("登录成功");
}catch (IncorrectCredentialsException e){
System.out.println("密码错误");
// e.printStackTrace();
}
catch (UnknownAccountException e){
System.out.println("用户名错误");
// e.printStackTrace();
}
Md5Hash md5Hash = new Md5Hash("123","!@#$SDE",1024);
System.out.println(md5Hash.toHex());
if(subject.isAuthenticated()){
if(subject.hasRole("admin")){
System.out.println("admin");
}else if(subject.hasRole("user")){
System.out.println("user");
}
if(subject.isPermitted("admin")){
System.out.println("admin");
}else if(subject.isPermitted("user")){
System.out.println("user");
}
}
}
}