From 9d960ed0058f9087f49e9741a9af06c3f9116eb0 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期六, 19 四月 2025 11:23:02 +0800 Subject: [PATCH] feat(auth): 添加 Keycloak 认证支持 --- zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysLoginController.java | 35 ++++++++++++++++++++++++++++++----- 1 files changed, 30 insertions(+), 5 deletions(-) diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysLoginController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysLoginController.java index 3313afc..5465075 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysLoginController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysLoginController.java @@ -1,12 +1,18 @@ package com.zhitan.web.controller.system; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; import javax.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.util.ObjectUtil; +import com.zhitan.common.utils.SocialUtils; +import me.zhyd.oauth.request.AuthRequest; +import me.zhyd.oauth.utils.AuthStateUtils; +import org.springframework.web.bind.annotation.*; import com.zhitan.common.constant.Constants; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.entity.SysMenu; @@ -45,11 +51,17 @@ { AjaxResult ajax = AjaxResult.success(); // 鐢熸垚浠ょ墝 - String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), + String token = ""; + if (loginBody.getGrantType() != null && !"".equals(loginBody.getGrantType())) { + token = loginService.loginByCode(loginBody.getSocialCode(), loginBody.getSocialState()); + } else { + token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid()); + } ajax.put(Constants.TOKEN, token); return ajax; } + /** * 鑾峰彇鐢ㄦ埛淇℃伅 @@ -83,4 +95,17 @@ List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId); return AjaxResult.success(menuService.buildMenus(menus)); } + /** + * 鑾峰彇璺宠浆URL + * + * @return 缁撴灉 + */ + @GetMapping("/binding") + public AjaxResult authBinding() { + + AuthRequest authRequest = SocialUtils.getAuthKeyloakRequest(); + String authorizeUrl = authRequest.authorize(Base64.encode(AuthStateUtils.createState(), StandardCharsets.UTF_8)); + return AjaxResult.success("鎿嶄綔鎴愬姛", authorizeUrl); + } + } -- Gitblit v1.9.3