package com.vci.server.mw; import com.vci.corba.common.data.VCIInvocationInfo; public class ServerContextVariable { private static VCIInvocationInfo _vcii = null; public static void setInvocationInfo(VCIInvocationInfo vcii) { ServerContextVariable._vcii = vcii; } /** * 返回与客户端(会话)上下文相关的 VCIInvocationInfo *
* 同时兼容的富客户端、WEB客户端调用,前提条件:必须登录是登录后调用生效 *
* * @return */ public static VCIInvocationInfo getInvocationInfo() { return _vcii; } /** * 获取客户端登录IP * * @return */ public static String getClientIp() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return info.clientIPInfo; } /** * 获取客户端登录机器名 * * @return */ public static String getClientMachine() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return info.clientMachine; } /** * 获取客户端登录机器的操作系统 * * @return */ public static String getClientOS() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return info.clientOS; } public static String getClientOSUser() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return info.clientOSUser; } /** * 获取全局变量的值 * * @param info * @param key * @return */ public static String getVariablebyKey(VCIInvocationInfo info, String key) { String exAttrs[] = info.extAttribs; for (int i = 0; i < exAttrs.length; i++) if (exAttrs[i] != null && exAttrs[i].indexOf((new StringBuilder(String.valueOf(key))).append("=").toString()) == 0) return exAttrs[i].split("=").length > 1 ? exAttrs[i].split("=")[1] : ""; return ""; } /** * 获取全局变量的值 * * @param key * @return */ public static String getVariablebyKey(String key) { VCIInvocationInfo info = getInvocationInfo(); if (info == null) return ""; String exAttrs[] = info.extAttribs; for (int i = 0; i < exAttrs.length; i++) if (exAttrs[i] != null && exAttrs[i].indexOf((new StringBuilder(String.valueOf(key))).append("=").toString()) == 0) return exAttrs[i].split("=").length > 1 ? exAttrs[i].split("=")[1] : ""; return ""; } /** * 获取用户ID * * @return */ public static String getUserId() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return getVariablebyKey(info, "CURRENTUSER.ID"); } /** * 获取当前登录用户的用户名 * * @return */ public static String getUserName() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return getVariablebyKey(info, "CURRENTUSER.NAME"); } /** * 获取当前用户的密级 * * @return */ public static String getUserSecret() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return getVariablebyKey(info, "CURRENTUSER.SECRETGRADE"); } /** * 获取当前用户的email地址 * * @return */ public static String getUserEmail() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return getVariablebyKey(info, "CURRENTUSER.EMAIL"); } /** * 获取当前用户所在组的组号 * * @return */ public static String getUserGroupNum() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return getVariablebyKey(info, "CURRENTUSER.GROUPNUM"); } /** * 获取登录用户使用的计算机机器密级 * * @return */ public static String getMachineSecret() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return getVariablebyKey(info, "CURRENTMACHINE.SECRET"); } /** * 获取系统的密级开关值,on为打开,off为关闭 * * @return */ public static String getIpSecretSwitch() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return getVariablebyKey(info, "IPSECRETSWITCH"); } /** * 获取系统的用户密级开关值,on为打开,off为关闭 * * @param userName 当前登录的用户名 * @return */ public static String getUserSecretSwith() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return getVariablebyKey(info, "USERSECRETSWITCH"); } /** * 获取用户部门名称 * * @return */ public static String getGroupName() { VCIInvocationInfo info = getInvocationInfo(); if (info == null) { return ""; } return getVariablebyKey(info, "CURRENTUSER.GROUPNAME"); } }