HeadTokenUtils.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.dragoninfo.dcuc.authweb.util;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.auth0.jwt.JWT;
  4. import com.auth0.jwt.interfaces.DecodedJWT;
  5. import com.dragoninfo.dcuc.common.Constants;
  6. import com.dragonsoft.duceap.commons.util.string.StringUtils;
  7. import javax.servlet.http.HttpServletRequest;
  8. /**
  9. * @author mazq
  10. * @date 2023/3/7
  11. */
  12. public class HeadTokenUtils {
  13. public static String getIdcard(HttpServletRequest request) {
  14. // 获取基础凭据
  15. String idcard = request.getHeader(Constants.IDCARD);
  16. // 获取总线的IDCARD
  17. if (StrUtil.isBlank(idcard)) {
  18. idcard = request.getHeader(Constants.BUS_SRE_IDCARD);
  19. }
  20. // 获取令牌中的身份证号
  21. if (StringUtils.isBlank(idcard)) {
  22. String userToken = getUserToken(request);
  23. if (StringUtils.isNotBlank(userToken)) {
  24. DecodedJWT decode = JWT.decode(userToken);
  25. idcard = decode.getClaim("idCard").asString();
  26. }
  27. }
  28. return idcard;
  29. }
  30. public static String getAppCode(HttpServletRequest request) {
  31. String appCode = request.getHeader(Constants.APP_CODE);
  32. if (StrUtil.isBlank(appCode)) {
  33. // 获取总线的应用代码
  34. appCode = request.getHeader(Constants.BUS_SRA_ID);
  35. }
  36. if (StringUtils.isBlank(appCode)) {
  37. String appToken = getAppToken(request);
  38. DecodedJWT decode = JWT.decode(appToken);
  39. appCode = decode.getClaim("appCode").asString();
  40. }
  41. return appCode;
  42. }
  43. public static String getUserToken(HttpServletRequest request) {
  44. String userToken = request.getHeader(Constants.DCUC_USER_TOKEN);
  45. if (StrUtil.isBlank(userToken)) {
  46. // 获取数据总线用户令牌
  47. userToken = request.getHeader(Constants.BUS_SRE_TOKEN);
  48. }
  49. if (StrUtil.isBlank(userToken)) {
  50. userToken = request.getHeader(Constants.USER_TOKEN);
  51. }
  52. if (StrUtil.isBlank(userToken)) {
  53. userToken = request.getHeader(Constants.RZZX_USERTOKEN);
  54. }
  55. return userToken;
  56. }
  57. public static String getAppToken(HttpServletRequest request) {
  58. String appToken = request.getHeader(Constants.DCUC_APP_TOKEN);
  59. if (StrUtil.isBlank(appToken)) {
  60. // 获取数据总线应用令牌
  61. appToken = request.getHeader(Constants.BUS_SRA_TOKEN);
  62. }
  63. if (StrUtil.isBlank(appToken)) {
  64. appToken = request.getHeader(Constants.APP_TOKEN);
  65. }
  66. if (StrUtil.isBlank(appToken)) {
  67. appToken = request.getHeader(Constants.RZZX_APPTOKEN);
  68. }
  69. return appToken;
  70. }
  71. }