65 lines
1.5 KiB
Plaintext
65 lines
1.5 KiB
Plaintext
package com.bonus.sys;
|
|
|
|
import org.apache.commons.beanutils.BeanUtils;
|
|
import org.apache.shiro.SecurityUtils;
|
|
import org.apache.shiro.session.Session;
|
|
import org.apache.shiro.subject.Subject;
|
|
|
|
import com.bonus.sys.beans.UserBean;
|
|
|
|
/**
|
|
* 封装shiro用对象获取
|
|
*
|
|
*/
|
|
public class UserShiroHelper {
|
|
/**
|
|
* 获取当前对象的拷贝
|
|
*
|
|
* @return
|
|
*/
|
|
public static UserBean getCurrentUser() {
|
|
UserBean customer = null;
|
|
Subject currentUser = SecurityUtils.getSubject();
|
|
Session session = currentUser.getSession();
|
|
if (null != session) {
|
|
Object obj = session.getAttribute(GlobalConst.SESSION_USER);
|
|
if (null != obj && obj instanceof UserBean) {
|
|
try {
|
|
/**
|
|
* 复制一份对象,防止被错误操作
|
|
*/
|
|
customer = (UserBean) BeanUtils.cloneBean((UserBean) obj);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
return customer;
|
|
}
|
|
|
|
/**
|
|
* 获取当前真实的对象,可以进行操作实体
|
|
*
|
|
* @return
|
|
*/
|
|
public static UserBean getRealCurrentUser() {
|
|
UserBean customer = null;
|
|
Subject currentUser = SecurityUtils.getSubject();
|
|
Session session = currentUser.getSession();
|
|
if (null != session) {
|
|
Object obj = session.getAttribute(GlobalConst.SESSION_USER);
|
|
if (null != obj && obj instanceof UserBean) {
|
|
try {
|
|
/**
|
|
* 不复制一份对象,防止被错误操作
|
|
*/
|
|
customer = (UserBean) obj;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
return customer;
|
|
}
|
|
}
|