Examination_system/Examination_system-1/.svn/pristine/01/01f0595f163754f743dc7132206...

77 lines
1.9 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;
}
/**
* 获取当前真实的对象,可以进行操作实体
* @return
*/
public static void updateRealCurrentUser(UserBean o) {
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
if (null != session) {
session.setAttribute(GlobalConst.SESSION_USER,o);
}
}
}