GatewayWhite.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. package jnpf.properties;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. /**
  5. * 放行的url
  6. * 由下方的URL列表加上配置里的URL组合
  7. *
  8. * @author JNPF开发平台组
  9. * @version V3.1.0
  10. * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com)
  11. * @date 2021-03-24
  12. */
  13. public class GatewayWhite {
  14. public static final String PREFIX = "gateway";
  15. /**
  16. * 放行不记录
  17. */
  18. public List<String> excludeUrl = new ArrayList<>();
  19. /**
  20. * 不验证Token, 记录访问
  21. */
  22. public List<String> whiteUrl = new ArrayList<>();
  23. /**
  24. * 禁止访问
  25. */
  26. public List<String> blockUrl = new ArrayList<>();
  27. /**
  28. * 禁止访问地址的白名单IP
  29. * startsWith匹配, 访问IP.startsWith(whiteIP)
  30. */
  31. public List<String> whiteIp = new ArrayList<>();
  32. public GatewayWhite(){
  33. interceptPath();
  34. whitePath();
  35. excludePath();
  36. whiteIp();
  37. }
  38. public List<String> getWhiteUrl() {
  39. return new ArrayList<>(whiteUrl);
  40. }
  41. public List<String> getBlockUrl() {
  42. return new ArrayList<>(blockUrl);
  43. }
  44. public List<String> getExcludeUrl() {
  45. return new ArrayList<>(excludeUrl);
  46. }
  47. public List<String> getWhiteIp() {
  48. return new ArrayList<>(whiteIp);
  49. }
  50. public void setWhiteUrl(List<String> whiteUrl) {
  51. whitePath();
  52. this.whiteUrl.addAll(whiteUrl);
  53. }
  54. public void setBlockUrl(List<String> blockUrl) {
  55. interceptPath();
  56. this.blockUrl.addAll(blockUrl);
  57. }
  58. public void setExcludeUrl(List<String> excludeUrl) {
  59. excludePath();
  60. this.excludeUrl.addAll(excludeUrl);
  61. }
  62. public void setWhiteIp(List<String> whiteIp) {
  63. whiteIp();
  64. this.whiteIp.addAll(whiteIp);
  65. }
  66. protected void interceptPath() {
  67. blockUrl.clear();
  68. blockUrl.add("/actuator/**");
  69. blockUrl.add("/api/*/actuator/**");
  70. blockUrl.add("/doc.html");
  71. blockUrl.add("/swagger-resources/**");
  72. blockUrl.add("/swagger-ui/**");
  73. blockUrl.add("/api/*/v?/api-docs/**");
  74. blockUrl.add("/v?/api-docs/**");
  75. }
  76. protected void whitePath() {
  77. whiteUrl.clear();
  78. //oauth
  79. whiteUrl.add("/api/oauth/Login/**");
  80. whiteUrl.add("/api/oauth/Logout/**");
  81. whiteUrl.add("/api/oauth/resetOfficialPassword/**");
  82. whiteUrl.add("/api/oauth/codeCertificate");
  83. whiteUrl.add("/api/oauth/codeCertificateStatus/*");
  84. // APP
  85. whiteUrl.add("/api/app/Version");
  86. //websocket
  87. whiteUrl.add("/api/message/websocket/*");
  88. //大屏图片
  89. whiteUrl.add("/api/file/VisusalImg/**");
  90. whiteUrl.add("/api/blade-visual/map/data");
  91. whiteUrl.add("/api/blade-visual/category/list");
  92. whiteUrl.add("/api/blade-visual/visual/put-file/**");
  93. //数据地图
  94. whiteUrl.add("/api/system/DataMap/**");
  95. //代码下载接口
  96. whiteUrl.add("/api/visualdev/Generater/DownloadVisCode");
  97. //多租户
  98. whiteUrl.add("/api/tenant/DbName/**");
  99. whiteUrl.add("/api/tenant/login");
  100. whiteUrl.add("/api/tenant/logout");
  101. //报表导出
  102. whiteUrl.add("/api/Report/data/Download");
  103. //extend KK
  104. whiteUrl.add("/api/extend/DocumentPreview/**");
  105. //file模块不拦截
  106. //文件下载接口
  107. // whiteUrl.add("/api/file/filedownload/**");
  108. whiteUrl.add("/api/file/VisusalImg/**");
  109. whiteUrl.add("/api/file/AppStartInfo/*");
  110. // whiteUrl.add("/api/file/IMVoice/*");
  111. // whiteUrl.add("/api/file/{type}/{fileName}");
  112. // whiteUrl.add("/api/file/IMImage/*");
  113. whiteUrl.add("/api/file/Image/**");
  114. // whiteUrl.add("/api/file/DownloadModel");
  115. whiteUrl.add("/api/file/Download");
  116. whiteUrl.add("/api/file/ImageCode/**");
  117. whiteUrl.add("/api/system/DictionaryData/*/Data/Selector");
  118. whiteUrl.add("/api/datareport/pdf/show");
  119. whiteUrl.add("/api/datareport/preview/loadPagePaper");
  120. whiteUrl.add("/api/datareport/pdf");
  121. whiteUrl.add("/api/datareport/word");
  122. whiteUrl.add("/api/datareport/excel/**");
  123. whiteUrl.add("/api/datareport/Data/*/Actions/Export");
  124. //报表模板导入
  125. whiteUrl.add("/api/datareport/import");
  126. whiteUrl.add("/api/system/DataInterface/*/Actions/Response");
  127. whiteUrl.add("/api/system/DataInterface/Actions/GetAuth");
  128. //swagger3
  129. whiteUrl.add("/doc.html");
  130. whiteUrl.add("/webjars/**");
  131. whiteUrl.add("/api/*/v?/api-docs/**");
  132. whiteUrl.add("/v?/api-docs/**");
  133. whiteUrl.add("/swagger-ui/**");
  134. whiteUrl.add("/swagger-resources/**");
  135. whiteUrl.add("/csrf");
  136. whiteUrl.add("/api/oauth/ImageCode/**");
  137. whiteUrl.add("/api/oauth/getConfig/*");
  138. whiteUrl.add("/api/oauth/getLoginConfig");
  139. whiteUrl.add("/api/oauth/getTicketStatus/*");
  140. whiteUrl.add("/api/oauth/getTicket");
  141. //扫描登录放行调用接口
  142. whiteUrl.add("/api/oauth/setCodeCertificateStatus/{ticket}/{status}");
  143. whiteUrl.add("/api/message/ShortLink/**");
  144. whiteUrl.add("/api/message/WechatOpen/token/**");
  145. //在线表单外链触发接口
  146. whiteUrl.add("/api/visualdev/ShortLink/**");
  147. //webhook两个接口
  148. whiteUrl.add("/api/visualdev/Hooks/*");
  149. whiteUrl.add("/api/visualdev/Hooks/*/params/*");
  150. whiteUrl.add("/api/workflow/Hooks/*");
  151. whiteUrl.add("/api/workflow/task/Hooks");
  152. whiteUrl.add("/api/workflow/Hooks/*/params/*");
  153. whiteUrl.add("/api/system/Location/*");
  154. whiteUrl.add("/api/*/white/**");
  155. whiteUrl.add("/api/*/*/white/**");
  156. }
  157. protected void excludePath(){
  158. excludeUrl.clear();
  159. excludeUrl.add("/favicon.ico");
  160. excludeUrl.add("/api/message/websocket/*");
  161. }
  162. protected void whiteIp(){
  163. whiteIp.clear();
  164. whiteIp.add("127.0.0.1");
  165. }
  166. }