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().get(); if(sessionInfo == null){ return ClientSessionUtility.getInvocation(); }else { InvocationInfo vcii = new InvocationInfo(); if (sessionInfo != null) { vcii.setToken(sessionInfo.getToken()); Map 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().get(); } }