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配置