content: package com.smart.common.util;
  
  import com.smart.module.sys.entity.SysUser;
  import org.apache.shiro.SecurityUtils;
  import org.apache.shiro.session.Session;
  import org.apache.shiro.subject.Subject;
  
  /**
   * Shiro工具类
   * 爪哇笔记：https://blog.52itstyle.vip
   */
  public class ShiroUtils {
  
  	public static Session getSession() {
  		return SecurityUtils.getSubject().getSession();
  	}
  
  	public static Subject getSubject() {
  		return SecurityUtils.getSubject();
  	}
  
  	public static SysUser getUserEntity() {
  		return (SysUser)SecurityUtils.getSubject().getPrincipal();
  	}
  
  	public static Long getUserId() {
  		return getUserEntity().getUserId();
  	}
  
  	public static void setSessionAttribute(Object key, Object value) {
  		getSession().setAttribute(key, value);
  	}
  
  	public static Object getSessionAttribute(Object key) {
  		return getSession().getAttribute(key);
  	}
  
  	public static boolean isLogin() {
  		return SecurityUtils.getSubject().getPrincipal() != null;
  	}
  
  	public static void logout() {
  		SecurityUtils.getSubject().logout();
  	}
  
  	public static boolean isHasRole(String roleSign) {
  		return SecurityUtils.getSubject().hasRole(roleSign);
  	}
  }
  