terminal fix round 5

This commit is contained in:
Gao Wei 2022-06-15 21:28:40 +08:00
parent 947e4636e5
commit 7fec46bc90

View File

@ -1,13 +1,14 @@
package cn.axzo.framework.auth.domain;
import cn.hutool.core.collection.CollectionUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import cn.hutool.core.collection.CollectionUtil;
public class TerminalInfo {
/**
@ -231,20 +232,32 @@ public class TerminalInfo {
private String newTerminalString;
@Deprecated
private boolean ambiguous;
private static Set<String> ambiguousNames = new HashSet<>();
static {
ambiguousNames.add(STR_TERMINAL_CMS);
ambiguousNames.add(NUM_TERMINAL_CMS);
ambiguousNames.add(NUM15_TERMINAL_CMS);
}
public TerminalInfo(String rawTerminalString) {
this.rawTerminalString = rawTerminalString;
this.newTerminalString = aliasMap.get(rawTerminalString);
this.ambiguous = ambiguousNames.contains(rawTerminalString);
// TODO: 为了调试方便先注释掉这两句@gaowei
// if (this.newTerminalString == null)
// throw new IllegalArgumentException("无效的Terminal" + rawTerminalString);
}
public TerminalInfo(String rawTerminalString, String newTerminalString) {
if (newTerminalString == null)
if (newTerminalString == null || !aliasMap.containsKey(newTerminalString))
throw new IllegalArgumentException("无效的Terminal" + newTerminalString);
this.rawTerminalString = rawTerminalString;
this.newTerminalString = newTerminalString;
this.newTerminalString = aliasMap.get(newTerminalString);
this.ambiguous = ambiguousNames.contains(rawTerminalString);
}
/**
@ -265,6 +278,11 @@ public class TerminalInfo {
return newTerminalString;
}
@Deprecated
public boolean isAmbiguous() {
return this.ambiguous;
}
public boolean isOMS_WEB() {
return NT_OMS_WEB.equals(newTerminalString);
}
@ -303,6 +321,22 @@ public class TerminalInfo {
public boolean isLegacy(String legacyTerminalString) {
if (legacyTerminalString == null)
return false;
/// 强行Hard code一波解决ambiguous的问题
if ("cms".equals(legacyTerminalString)) {
if (this.isCMS())
return true;
} else if ("cmp".equals(legacyTerminalString)) {
if (this.isCMP())
return true;
} else if ("proj".equals(legacyTerminalString)) {
if (this.isPROJ())
return true;
} else if ("ent".equals(legacyTerminalString)) {
if (this.isENT())
return true;
}
if (legacyTerminalString.equals(this.rawTerminalString))
return true;
String legacyNT = aliasMap.get(legacyTerminalString);
@ -314,6 +348,16 @@ public class TerminalInfo {
return false;
}
@Deprecated
public boolean isENT() {
return (NT_CMP_APP_ENT_ZB.equals(this.newTerminalString) || NT_CMS_WEB_ENT_ZB.equals(this.newTerminalString));
}
@Deprecated
public boolean isPROJ() {
return (NT_CMP_APP_PROJ.equals(this.newTerminalString) || NT_CMS_WEB_PROJ.equals(this.newTerminalString));
}
@Override
public String toString() {
return this.newTerminalString;
@ -332,7 +376,6 @@ public class TerminalInfo {
return list.toArray(new String[list.size()]);
}
/**
*
* @return
@ -341,11 +384,11 @@ public class TerminalInfo {
*/
@Deprecated
public boolean isCMS() {
if(this.newTerminalString == null)
if (this.newTerminalString == null)
return false;
return this.newTerminalString.startsWith("NT_CMS_");
}
/**
*
* @return
@ -353,9 +396,8 @@ public class TerminalInfo {
* @deprecated 只用来做历史代码兼容
*/
@Deprecated
public boolean isCMP()
{
if(this.newTerminalString == null)
public boolean isCMP() {
if (this.newTerminalString == null)
return false;
return this.newTerminalString.startsWith("NT_CMP_");
}
@ -385,7 +427,7 @@ public class TerminalInfo {
}
return terminal;
}
/**
*
* @param terminal
@ -400,8 +442,8 @@ public class TerminalInfo {
for (int i = enumList.size() - 1; i >= 0; i--) {
String e = enumList.get(i);
//把cmscmp的优先级降低间接提高了entproj的优先级
if("cms".equals(e) || "cmp".equals(e)) {
// 把cmscmp的优先级降低间接提高了entproj的优先级
if ("cms".equals(e) || "cmp".equals(e)) {
enumList.remove(i);
enumList.add(e);
}
@ -423,5 +465,5 @@ public class TerminalInfo {
TerminalInfo tm = new TerminalInfo(terminal);
return tm.allNames();
}
}