package com.example.springdemo.shiro;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.util.ByteSource;
public class CustomRealm extends AuthorizingRealm {
//授权
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
String name = (String) principals.getPrimaryPrincipal();
SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();
if(name.contains("admin")){
simpleAuthorizationInfo.addStringPermission("admin");
simpleAuthorizationInfo.addRole("admin");
}else {
simpleAuthorizationInfo.addStringPermission("user");
simpleAuthorizationInfo.addRole("user");
}
return simpleAuthorizationInfo;
}
//登录认证
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
String name = token.getPrincipal().toString();
if(!name.equals("zhangsanadmin")){
throw new UnknownAccountException();
}
SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(name, "6335642b7e5da5f8fb1e11488628d4f0", ByteSource.Util.bytes("!@#$SDE"),getName());
return simpleAuthenticationInfo;
}
}