diff --git a/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/constants/AuthConstants.java b/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/constants/AuthConstants.java index 7584aeb..a576bd3 100644 --- a/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/constants/AuthConstants.java +++ b/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/constants/AuthConstants.java @@ -5,6 +5,7 @@ public class AuthConstants { public static final String ENV_DEV="dev"; public static final String HEADER_AUTH = "authorization"; + public static final String HEADER_TENANT_ID = "tenantId"; public static final String HEADER_SAAS_TENANT_ID = "SAAS_TENANT_ID"; @@ -22,6 +23,9 @@ public class AuthConstants { public static final String USER_INFO = "userinfo"; + //这个Header用于 apisix向pudge 的/apisix/authorization 做校验请求 + public static final String HEADER_REQUEST_CODE = "requestCode"; + public static final String VISIT_TO = "visitTo"; } diff --git a/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/ContextInfo.java b/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/ContextInfo.java index 5c5825b..5640482 100644 --- a/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/ContextInfo.java +++ b/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/ContextInfo.java @@ -33,8 +33,12 @@ public class ContextInfo { private Long ouId; /** - * 租户id + * 如果是企业视角,传EntId + * 如果是项目视角,传ProjectId + * + * @deprecated 只在630近期使用,以后的版本这个可以废弃了。 */ + @Deprecated private Long tenantId; /** diff --git a/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/LegacyGuessMissedReq.java b/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/LegacyGuessMissedReq.java index 660a6f7..d8f2af9 100644 --- a/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/LegacyGuessMissedReq.java +++ b/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/LegacyGuessMissedReq.java @@ -7,7 +7,7 @@ public class LegacyGuessMissedReq { public static final String HEADER_LEGACY_GUESS = "legacyGuess"; - private String requestParamProjectId; + private Long requestParamProjectId; private String originalUrl; diff --git a/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/TerminalInfo.java b/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/TerminalInfo.java index e636f29..9e15543 100644 --- a/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/TerminalInfo.java +++ b/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/domain/TerminalInfo.java @@ -5,6 +5,12 @@ import java.util.Map; public class TerminalInfo { + /** + * 之前的CEMS、PMS合成一个,叫CMS了。 + * 现在没有PMS了。 + * + * 有个地方做了转换。 + */ @Deprecated public static final String STR_TERMINAL_PMS = "PMS"; @Deprecated @@ -15,13 +21,18 @@ public class TerminalInfo { @Deprecated public static final String NUM_TERMINAL_CEMS = "2"; + /** + * CMS + * + * 可以通过tenantId区分 项目视角、企业视角? + */ @Deprecated public static final String STR_TERMINAL_CMS = "cms"; @Deprecated public static final String NUM_TERMINAL_CMS = "3"; /** - * 从业人员 + * 从业人员App,企业版App */ @Deprecated public static final String STR_TERMINAL_CMP = "cmp"; @@ -29,7 +40,7 @@ public class TerminalInfo { public static final String NUM_TERMINAL_CMP = "4"; /** - * 产业工人 + * 产业工人App,安心筑App,原生App,不区分班组长还是工人的功能 */ @Deprecated public static final String STR_TERMINAL_CM = "cm"; @@ -37,81 +48,113 @@ public class TerminalInfo { public static final String NUM_TERMINAL_CM = "5"; /** - * 平台身份 + * 产业工人App,安心筑App,小程序或H5,班组老板的端 + */ + @Deprecated + public final static String STR_TERMINAL_CM_LEADER = "cm_leader"; + + /** + * 产业工人App,安心筑App,小程序或H5,工人的端 + */ + @Deprecated + public final static String STR_TERMINAL_CM_WORKER = "cm_worker"; + + /** + * 平台身份,OMS */ @Deprecated public static final String STR_TERMINAL_PLAT = "plat"; /** - * 企业 + * 企业,很可能没有用。 */ @Deprecated public static final String STR_TERMINAL_ENT = "ent"; /** - * 项目 + * 项目,很可能没有用。 */ @Deprecated public static final String STR_TERMINAL_PROJ = "proj"; - @Deprecated - public final static String STR_TERMINAL_CM_LEADER = "cm_leader"; - - @Deprecated - public final static String STR_TERMINAL_CM_WORKER = "cm_worker"; - @Deprecated public static final String STR_TERMINAL_SCREEN = "screen"; - @Deprecated - public static final String STR_TERMINAL_BOSS = "boss"; - - @Deprecated - public static final String STR_REGULATORY_AGENCY = "regulatory_agency"; - - @Deprecated - public static final String STR_REGULATORY_AGENCY_SCREEN = "regulatory_agency_screen"; - - @Deprecated - public static final String STR_TERMINAL_RECRUIT_H5 = "recruit_h5"; + private static Map aliasMap = new HashMap(); - @Deprecated - public static final String STR_TERMINAL_H5 = "h5"; + /** + * 企业工作台Web-总包 + */ + public static final String NT_CMS_WEB_ENT_ZB = "NT_CMS_WEB_ENT_ZB"; + static { + aliasMap.put(NT_CMS_WEB_ENT_ZB, NT_CMS_WEB_ENT_ZB); + aliasMap.put(STR_TERMINAL_ENT, NT_CMS_WEB_ENT_ZB); + } + /** + * 项目部工作台Web + */ + public static final String NT_CMS_WEB_PROJ = "NT_CMS_WEB_PROJ"; + static { + aliasMap.put(NT_CMS_WEB_PROJ, NT_CMS_WEB_PROJ); + aliasMap.put(STR_TERMINAL_PROJ, NT_CMS_WEB_PROJ); + aliasMap.put(STR_TERMINAL_CMS, NT_CMS_WEB_PROJ); + //实际上不应该是直接对应于PROJ,默认先对应一个,需要再guess一下, + } + + /** + * 企业版App-企业工作台-总包 + */ + public static final String NT_CMP_APP_ENT_ZB = "NT_CMP_APP_ENT_ZB"; + static { + aliasMap.put(NT_CMP_APP_ENT_ZB, NT_CMP_APP_ENT_ZB); + } + + /** + * 企业版App-项目部工作台 + */ + public static final String NT_CMP_APP_PROJ = "NT_CMP_APP_PROJ"; + static { + aliasMap.put(NT_CMP_APP_PROJ, NT_CMP_APP_PROJ); + aliasMap.put(STR_TERMINAL_CMP, NT_CMP_APP_PROJ); + aliasMap.put(NUM_TERMINAL_CMP, NT_CMP_APP_PROJ); + } + + /** + * crafts man leader + * 安心筑App-班组老板 + */ + public static final String NT_CM_APP_CM_LEADER = "NT_CM_APP_CM_LEADER"; + static { + aliasMap.put(NT_CM_APP_CM_LEADER, NT_CM_APP_CM_LEADER); + aliasMap.put(STR_TERMINAL_CM_LEADER, NT_CM_APP_CM_LEADER); + } + + /** + * 安心筑App-工人 + */ + public static final String NT_CM_APP_CM_WORKER = "NT_CM_APP_WORKER"; + static { + aliasMap.put(NT_CM_APP_CM_WORKER, NT_CM_APP_CM_WORKER); + aliasMap.put(STR_TERMINAL_CM_WORKER, NT_CM_APP_CM_LEADER); + } + /** * OMS,运营管理后台 */ - public static final String NT_OMS = "NT_OMS"; - - /** - * 企业版Web-总包 - * TODO: 这里可以和大家探讨一下,是否要区分总包、分包?我觉得有必要区分 @gaowei - */ - public static final String NT_CMS_ENT_ZB = "NT_CMS_ENT_ZB"; - - /** - * 项目部管理台Web - */ - public static final String NT_CMS_PROJ = "NT_CMS_PROJ"; - - - - - private static Map aliasMap = new HashMap(); + public static final String NT_OMS_WEB = "NT_OMS_WEB"; static { - aliasMap.put(NT_OMS, NT_OMS); + aliasMap.put(NT_OMS_WEB, NT_OMS_WEB); + aliasMap.put(STR_TERMINAL_PLAT, NT_OMS_WEB); + } - aliasMap.put(NT_CMS_ENT_ZB, NT_CMS_ENT_ZB); - aliasMap.put(STR_TERMINAL_ENT, NT_CMS_ENT_ZB); - - aliasMap.put(NT_CMS_PROJ, NT_CMS_PROJ); - aliasMap.put(STR_TERMINAL_PROJ, NT_CMS_PROJ); - // TODO: 确认cms,是否对应NT_CMS_PROJ - aliasMap.put(STR_TERMINAL_CMS, NT_CMS_PROJ); - aliasMap.put(NUM_TERMINAL_CMS, NT_CMS_PROJ); - - //TODO: 补齐所有的NT标签定义,以及历史mapping关系。@gaowei - //对于历史关系mapping起来比较麻烦的,我设计了两个参数的构造函数,可以直接定义NT + /** + * Screen,数据大屏 + */ + public static final String NT_SCREEN = "NT_SCREEN"; + static { + aliasMap.put(NT_SCREEN, NT_SCREEN); + aliasMap.put(STR_TERMINAL_SCREEN, NT_SCREEN); } private String rawTerminalString; @@ -148,16 +191,15 @@ public class TerminalInfo { } public boolean isOMS() { - return NT_OMS.equals(newTerminalString); + return NT_OMS_WEB.equals(newTerminalString); } - public boolean isCMS_ENT_ZB() { - return NT_CMS_ENT_ZB.equals(newTerminalString); + public boolean isCMS_WEB_ENT_ZB() { + return NT_CMS_WEB_ENT_ZB.equals(newTerminalString); } - public boolean isCMS_PROJ() { - return NT_CMS_PROJ.equals(newTerminalString); + public boolean isCMS_WEB_PROJ() { + return NT_CMS_WEB_PROJ.equals(newTerminalString); } - - + } diff --git a/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/service/ContextInfoBuilderAspect.java b/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/service/ContextInfoBuilderAspect.java index 638e2cd..e013f8d 100644 --- a/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/service/ContextInfoBuilderAspect.java +++ b/axzo-auth-spring-boot-starter/src/main/java/cn/axzo/framework/auth/service/ContextInfoBuilderAspect.java @@ -129,9 +129,9 @@ public class ContextInfoBuilderAspect { try { HttpRequest request = HttpRequest.get(url).header(AuthConstants.HEADER_AUTH, contextInfo.getToken()) - .header(AuthConstants.HEADER_TERMINAL, contextInfo.getTerminalInfo().getRawTerminalString()) //传 + .header(AuthConstants.HEADER_TERMINAL, contextInfo.getTerminalInfo().getRawTerminalString()) + .header(AuthConstants.HEADER_REQUEST_CODE, "") //本地调试,传个空 .header(AuthConstants.HEADER_SAAS_TENANT_ID, contextInfo.getSaasTenantId().toString()); - //传 requestCode //期待未来前端补齐header之后,删掉这一行,以及相关代码 request = request.header(LegacyGuessMissedReq.HEADER_LEGACY_GUESS, buildLegacyGuessMissedReqString(contextInfo, originalRequest)); @@ -166,9 +166,7 @@ public class ContextInfoBuilderAspect { req.setHeaderSaasTenantId(contextInfo.getSaasTenantId()); req.setHeaderTenantId(contextInfo.getTenantId()); req.setHeaderWorkspaceId(contextInfo.getWorkspaceId()); - req.setRequestParamProjectId(originalRequest.getParameter("projectId")); - if(req.getRequestParamProjectId() == null) - req.setRequestParamProjectId(""); + req.setRequestParamProjectId(StrUtil.nullSafeParseLong(originalRequest.getParameter("projectId"))); return JSONUtil.toJsonStr(req); }