From 61d647c069f80c321e336315aee45f2a5f5b0e80 Mon Sep 17 00:00:00 2001 From: Github_lizhw <171332584@qq.com> Date: Mon, 11 Nov 2024 19:59:09 +0800 Subject: [PATCH] =?UTF-8?q?sso-server=20=E6=94=B9=E6=88=90=20=E5=89=8D?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E5=88=86=E7=A6=BB=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 25 ------------ .../src/main/resources/application.yml | 1 - ruoyi-api/ruoyi-api-system/pom.xml | 5 --- ruoyi-modules/ruoyi-sso-server/pom.xml | 20 ---------- .../controller/SsoServerController.java | 40 +++++++++++++++++++ .../src/main/resources/application.yml | 6 ++- 6 files changed, 44 insertions(+), 53 deletions(-) diff --git a/pom.xml b/pom.xml index 4323a38e4..268af0a7b 100644 --- a/pom.xml +++ b/pom.xml @@ -567,31 +567,6 @@ - - - public - huawei nexus - https://mirrors.huaweicloud.com/repository/maven/ - - true - - - - - - - public - huawei nexus - https://mirrors.huaweicloud.com/repository/maven/ - - true - - - false - - - - diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 1fecf82c0..453d732f1 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -18,7 +18,6 @@ spring: # dubbo dubbo: - config: protocol: name: tri port: 20881 diff --git a/ruoyi-api/ruoyi-api-system/pom.xml b/ruoyi-api/ruoyi-api-system/pom.xml index 0c2ca7258..86a219906 100644 --- a/ruoyi-api/ruoyi-api-system/pom.xml +++ b/ruoyi-api/ruoyi-api-system/pom.xml @@ -25,11 +25,6 @@ ruoyi-common-core - - org.dromara - ruoyi-common-excel - - diff --git a/ruoyi-modules/ruoyi-sso-server/pom.xml b/ruoyi-modules/ruoyi-sso-server/pom.xml index 47a36f2b4..ee81a2bf9 100644 --- a/ruoyi-modules/ruoyi-sso-server/pom.xml +++ b/ruoyi-modules/ruoyi-sso-server/pom.xml @@ -21,32 +21,12 @@ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery - - org.springframework.cloud - spring-cloud-starter-openfeign - - - - org.springframework.cloud - spring-cloud-starter-loadbalancer - - - - io.github.openfeign - feign-okhttp - org.springframework.boot spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-thymeleaf - - org.dromara diff --git a/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/SsoServerController.java b/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/SsoServerController.java index e30cf0a1c..a6d5a9ece 100644 --- a/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/SsoServerController.java +++ b/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/SsoServerController.java @@ -3,8 +3,13 @@ package org.ruoyi.sso.server.controller; import cn.dev33.satoken.context.SaHolder; import cn.dev33.satoken.context.model.SaRequest; import cn.dev33.satoken.sso.config.SaSsoServerConfig; +import cn.dev33.satoken.sso.processor.SaSsoClientProcessor; import cn.dev33.satoken.sso.processor.SaSsoServerProcessor; +import cn.dev33.satoken.sso.template.SaSsoUtil; +import cn.dev33.satoken.sso.util.SaSsoConsts; import cn.dev33.satoken.stp.StpUtil; +import cn.dev33.satoken.util.SaFoxUtil; +import cn.dev33.satoken.util.SaResult; import cn.hutool.core.util.ObjectUtil; import org.ruoyi.sso.server.domain.vo.LoginVo; import org.ruoyi.sso.server.service.IAuthStrategy; @@ -87,6 +92,41 @@ public class SsoServerController { return R.ok(loginVo); } + // 当前是否登录 + @RequestMapping("/sso/isLogin") + public Object isLogin() { + return SaResult.data(StpUtil.isLogin()); + } + + /** + * 获取 redirectUrl + */ + @RequestMapping("/sso/getRedirectUrl") + public SaResult getRedirectUrl(String redirect, String mode, String client) { + // 未登录情况下,返回 code=401 + if (!StpUtil.isLogin()) { + return SaResult.code(401); + } + // 已登录情况下,构建 redirectUrl + redirect = SaFoxUtil.decoderUrl(redirect); + if (SaSsoConsts.MODE_SIMPLE.equals(mode)) { + // 模式一 + SaSsoUtil.checkRedirectUrl(redirect); + return SaResult.data(redirect); + } else { + // 模式二或模式三 + String redirectUrl = SaSsoUtil.buildRedirectUrl(StpUtil.getLoginId(), client, redirect); + return SaResult.data(redirectUrl); + } + } + + // SSO-Server:单点注销 + @RequestMapping("/sso/logout") + public Object ssoSignout() { + return SaSsoClientProcessor.instance.ssoLogoutByMode2(); + } + + // 配置SSO相关参数 @Autowired private void configSso(SaSsoServerConfig ssoServer) { diff --git a/ruoyi-modules/ruoyi-sso-server/src/main/resources/application.yml b/ruoyi-modules/ruoyi-sso-server/src/main/resources/application.yml index 285cf54a9..762a2edd3 100644 --- a/ruoyi-modules/ruoyi-sso-server/src/main/resources/application.yml +++ b/ruoyi-modules/ruoyi-sso-server/src/main/resources/application.yml @@ -37,8 +37,8 @@ sa-token: # 读写同源,开启后每次访问都会自动续期 # token名称 (同时也是cookie名称) token-name: Authorization - # cookie写入 TODO 后续必须关掉,cookie 有安全隐患 - is-read-cookie: true + # cookie写入 必须关掉,cookie 有安全隐患 + is-read-cookie: false # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) is-concurrent: true # 在多人登录同一账号时,是否共用一个token (为true(默认)时所有登录共用一个token, 为false时每次登录新建一个token),这个为false会导致登陆多次后redis内存的token不能很好释放 @@ -52,6 +52,8 @@ sa-token: ticket-timeout: 300 # 所有允许的授权回调地址 TODO 生产和测试一定要改 allow-url: "*" + + auth-url: http://localhost:5173/#/sso-login active-timeout: 30 # ruoyi-security配置