54 lines
1.2 KiB
Java
54 lines
1.2 KiB
Java
|
|
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();
|
|
}
|
|
|
|
}
|