package io.linfeng.common.utils; import io.linfeng.common.exception.LinfengException; import io.linfeng.modules.sys.entity.SysUserEntity; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; /** * Shiro工具类 * */ public class ShiroUtils { public static Session getSession() { return SecurityUtils.getSubject().getSession(); } public static Subject getSubject() { return SecurityUtils.getSubject(); } public static SysUserEntity getUserEntity() { return (SysUserEntity)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 String getKaptcha(String key) { Object kaptcha = getSessionAttribute(key); if(kaptcha == null){ throw new LinfengException("验证码已失效"); } getSession().removeAttribute(key); return kaptcha.toString(); } }