Quellcode durchsuchen

修复其他租户没有文本转语音权限(先去掉权限显示,后续配角色管理)
修复登录附带cookie状态

liyanbo vor 1 Monat
Ursprung
Commit
e3f917b5b5

+ 1 - 1
byzs-module-ai/src/main/java/cn/iocoder/byzs/module/ai/controller/admin/tts/AiTtsController.java

@@ -115,7 +115,7 @@ public class AiTtsController {
 
     @PostMapping("/convert")
     @Operation(summary = "文本转语音")
-    @PreAuthorize("@ss.hasPermission('ai:tts:convert')")
+//    @PreAuthorize("@ss.hasPermission('ai:tts:convert')")
     public CommonResult<String> convertTextToSpeech(@RequestParam("roleId") Long roleId, @RequestParam("content") String content, @RequestParam(value = "command", required = false) String command) {
         // 执行文本转语音
         String audioUrl = ttsService.convertTextToSpeech(roleId, content, command);

+ 26 - 15
byzs-web/src/main/java/cn/iocoder/byzs/module/web/controller/admin/login/WebLoginController.java

@@ -185,23 +185,34 @@ public class WebLoginController {
      * 构建并设置Cookie(统一登录和登出的Cookie逻辑)
      */
     private void buildCookie(HttpServletRequest request, HttpServletResponse response, String token, long maxAgeSeconds) {
-        // 判断是否为HTTPS(考虑代理场景,检查X-Forwarded-Proto头)
-        boolean isHttps = isHttpsRequest(request);
-        String sameSiteVal = isHttps ? "None" : "Lax";
-
-        ResponseCookie.ResponseCookieBuilder cookieBuilder = ResponseCookie.from("access_token", token)
+//        boolean isHttps = isHttpsRequest(request);
+//        String sameSiteVal = isHttps ? "None" : "Lax";
+//        boolean isLocal = isLocalEnvironment(request);
+//
+//        // 基础Cookie(不带domain)
+//        ResponseCookie baseCookie = ResponseCookie.from("access_token", token)
+//                .path("/").maxAge(maxAgeSeconds).httpOnly(true).secure(isHttps).sameSite(sameSiteVal).build();
+//        response.addHeader(HttpHeaders.SET_COOKIE, baseCookie.toString());
+//
+//        // 线上环境:带点域名的Cookie(ResponseCookie支持)
+//        if (!isLocal) {
+//            ResponseCookie dotCookie = ResponseCookie.from("access_token", token)
+//                    .path("/").maxAge(maxAgeSeconds).httpOnly(true).secure(isHttps).sameSite(sameSiteVal)
+//                    .domain(".learn-ai.com.cn").build();
+//            response.addHeader(HttpHeaders.SET_COOKIE, dotCookie.toString());
+//        }
+
+
+
+        ResponseCookie cookie = ResponseCookie.from("access_token", token)
+                .domain(".learn-ai.com.cn")
                 .path("/")
-                .maxAge(maxAgeSeconds)
                 .httpOnly(true)
-                .secure(isHttps)
-                .sameSite(sameSiteVal);
-
-        // 判断是否为本地环境:检查Origin、Host、RemoteAddr
-        if (!isLocalEnvironment(request)) {
-            cookieBuilder.domain(".learn-ai.com.cn");
-        }
-
-        response.addHeader(HttpHeaders.SET_COOKIE, cookieBuilder.build().toString());
+                .secure(true)
+                .sameSite("Lax")
+                .maxAge(maxAgeSeconds)
+                .build();
+        response.addHeader(HttpHeaders.SET_COOKIE, cookie.toString());
     }
 
     /**