package com.vci.web.service.impl;
|
|
import com.vci.client.mw.ClientSessionUtility;
|
import com.vci.client.mw.IInvocationContext;
|
import com.vci.corba.common.data.InvocationInfo;
|
import com.vci.starter.web.annotation.log.VciUnLog;
|
import com.vci.starter.web.enumpck.DataSecretEnum;
|
import com.vci.starter.web.pagemodel.SessionInfo;
|
import com.vci.starter.web.util.WebThreadLocalUtil;
|
import com.vci.web.constant.CorbaKeyConstant;
|
import org.springframework.stereotype.Component;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* 获取会话的信息
|
* @author weidy
|
* @date 2021-2-2
|
*/
|
@Component
|
public class WebContextInfoFetcher implements IInvocationContext {
|
|
/**
|
* 获取corba所需的会话的信息
|
* @return 不存在会初始化
|
*/
|
@Override
|
@VciUnLog
|
public InvocationInfo getInvocationInfo() {
|
SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread();
|
if(sessionInfo == null){
|
return ClientSessionUtility.getInvocation();
|
}else {
|
InvocationInfo vcii = new InvocationInfo();
|
if (sessionInfo != null) {
|
vcii.setToken(sessionInfo.getToken());
|
Map<String,String> globalAttributeMap = sessionInfo.getGlobalAttributeMap();
|
if(globalAttributeMap==null){
|
globalAttributeMap = new HashMap<>();
|
globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_ID,sessionInfo.getUserId());
|
globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_NAME,sessionInfo.getUserName());
|
globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_SECRET,sessionInfo.getUserSecret());
|
globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_EMAIL,sessionInfo.getEmail());
|
globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_GROUPNUM,"");
|
globalAttributeMap.put(CorbaKeyConstant.CURRENT_MACHINE_SECRET, DataSecretEnum.NONE.getValue()+"");
|
globalAttributeMap.put(CorbaKeyConstant.IP_SECRET_SWITCH,"off");
|
globalAttributeMap.put(CorbaKeyConstant.CURRENT_USER_GROUPNAME,sessionInfo.getDeptName());
|
globalAttributeMap.put(CorbaKeyConstant.USER_SECRET_SWITCH,"off");
|
globalAttributeMap.put(CorbaKeyConstant.CURRENTTIME, String.valueOf(System.currentTimeMillis()));
|
}
|
//现在不确定老的是否可以接受数组多个的情况
|
vcii.extAttribs = globalAttributeMap;
|
}
|
return vcii;
|
}
|
}
|
|
/**
|
* 获取当前会话
|
* @return 会话的对象
|
*/
|
public SessionInfo getSessionInfo() {
|
return WebThreadLocalUtil.getCurrentUserSessionInfoInThread();
|
}
|
}
|