From 789858199b96626be2844a39ee2849d2534c6081 Mon Sep 17 00:00:00 2001
From: 代星登 <2283268848@qq.com>
Date: 星期一, 05 六月 2023 14:57:15 +0800
Subject: [PATCH] [update] 更改 /auth/tenant/list api,获取租户列表时,从请求头中referer属性中取值,方便本地通过修改hosts文件来达到域名测试的场景

---
 ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java |   26 +++++++++++++++++++-------
 1 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java
index f39fd30..9defb83 100644
--- a/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java
+++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java
@@ -57,9 +57,9 @@
         LoginVo loginVo = new LoginVo();
         // 鐢熸垚浠ょ墝
         String token = loginService.login(
-                body.getTenantId(),
-                body.getUsername(), body.getPassword(),
-                body.getCode(), body.getUuid());
+            body.getTenantId(),
+            body.getUsername(), body.getPassword(),
+            body.getCode(), body.getUuid());
         loginVo.setToken(token);
         return R.ok(loginVo);
     }
@@ -74,7 +74,8 @@
     public R<LoginVo> smsLogin(@Validated @RequestBody SmsLoginBody body) {
         LoginVo loginVo = new LoginVo();
         // 鐢熸垚浠ょ墝
-        String token = loginService.smsLogin(body.getTenantId(), body.getPhonenumber(), body.getSmsCode());
+        String token =
+            loginService.smsLogin(body.getTenantId(), body.getPhonenumber(), body.getSmsCode());
         loginVo.setToken(token);
         return R.ok(loginVo);
     }
@@ -89,7 +90,8 @@
     public R<LoginVo> emailLogin(@Validated @RequestBody EmailLoginBody body) {
         LoginVo loginVo = new LoginVo();
         // 鐢熸垚浠ょ墝
-        String token = loginService.emailLogin(body.getTenantId(), body.getEmail(), body.getEmailCode());
+        String token =
+            loginService.emailLogin(body.getTenantId(), body.getEmail(), body.getEmailCode());
         loginVo.setToken(token);
         return R.ok(loginVo);
     }
@@ -140,9 +142,19 @@
         List<SysTenantVo> tenantList = tenantService.queryList(new SysTenantBo());
         List<TenantListVo> voList = MapstructUtils.convert(tenantList, TenantListVo.class);
         // 鑾峰彇鍩熷悕
-        String host = new URL(request.getRequestURL().toString()).getHost();
+        String host = "";
+        String referer = request.getHeader("referer");
+        if (StringUtils.isNotBlank(referer)) {
+            //杩欓噷浠巖eferer涓彇鍊兼槸涓轰簡鏈湴浣跨敤hosts娣诲姞铏氭嫙鍩熷悕锛屾柟渚挎湰鍦扮幆澧冭皟璇�
+            host = referer.split("//")[1].split("/")[0];
+        } else {
+            host = new URL(request.getRequestURL().toString()).getHost();
+        }
         // 鏍规嵁鍩熷悕杩涜绛涢��
-        List<TenantListVo> list = StreamUtils.filter(voList, vo -> StringUtils.equals(vo.getDomain(), host));
+        String finalHost = host;
+        List<TenantListVo> list =
+            StreamUtils.filter(voList, vo -> StringUtils.equals(vo.getDomain(),
+                finalHost));
         // 杩斿洖瀵硅薄
         LoginTenantVo vo = new LoginTenantVo();
         vo.setVoList(CollUtil.isNotEmpty(list) ? list : voList);

--
Gitblit v1.9.3