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