shrio登录框架

简单的后台判断的代码:
private static Logger log=LoggerFactory.getLogger(demo1.class);
public static void main(String[] args) {
log.info("ceshi....");
//1、获取安全管理器
Factory<SecurityManager> factory=new IniSecurityManagerFactory("classpath:shiro.ini");
SecurityManager securityManager=factory.getInstance();
//2:设置安全管理器
SecurityUtils.setSecurityManager(securityManager);
//3、获取Subject对象--->即将登陆的用户
Subject currentUser=SecurityUtils.getSubject();
//获取Session对象
Session session=currentUser.getSession();
session.setAttribute("name", "黑彩侠");
String value=(String) session.getAttribute("name");
if(value!=null) {
/*System.out.println("shrio已经帮我们进行了测试"+value);*/
log.info("shrio已经帮我们进行了测试:"+value);
}
//判断是否登录过:false-->没登录过,true-->登录过
if(currentUser.isAuthenticated()==false) {
//用户名:root,密码:secret。注意:用户名与密码都必须存在于shiro.ini文件里
UsernamePasswordToken token=new UsernamePasswordToken("lonestarr","vespa");
//记住当前用户
token.setRememberMe(true);
//登录
try {
currentUser.login(token);
log.info("登录成功!!!!!!");
} catch (UnknownAccountException e) {
// TODO: handle exception
log.info("账户不存在");
}catch (IncorrectCredentialsException e) {
// TODO: handle exception
log.info("密码错误");
}catch (LockedAccountException e) {
// TODO: handle exception
log.info("用户已经锁死");
}catch (AuthenticationException e) {
// TODO: handle exception
log.info("认证失败....");
}
//判断用户是否拥有指定的角色
if(currentUser.hasRole("admin"))
{
log.info("该用户拥有指定的角色");
}else {
log.info("不拥有指定的角色");
}
//判断该用户是否拥有指定的权限,在shiro.ini文件中,角色=a,b,c;说明该角色拥有a,b,c几种权限,一个用户拥有对应的所有角色的所有权限
if(currentUser.isPermitted("lightsaber:*")) {
log.info("该用户拥有指定的权限");
}else {
log.info("该用户没有指定的权限");
}
//退出登录
currentUser.logout();
//对出虚拟机
System.exit(0);
}

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭