From 7de1396e315896dbc72a9d54e44f77434ea90f18 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 14 十二月 2025 23:47:34 +0800
Subject: [PATCH] feat:增加企业微信自动登录
---
ruoyi-framework/src/main/java/com/ruoyi/framework/security/QyWechatAuthenticationToken.java | 85 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 85 insertions(+), 0 deletions(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/QyWechatAuthenticationToken.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/QyWechatAuthenticationToken.java
new file mode 100644
index 0000000..e4bc70e
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/QyWechatAuthenticationToken.java
@@ -0,0 +1,85 @@
+package com.ruoyi.framework.security;
+
+import org.springframework.security.authentication.AbstractAuthenticationToken;
+import org.springframework.security.core.GrantedAuthority;
+import java.util.Collection;
+
+/**
+ * 浼佷笟寰俊鐧诲綍璁よ瘉Token
+ * 绫讳技浜嶶sernamePasswordAuthenticationToken
+ *
+ * @author ruoyi
+ */
+public class QyWechatAuthenticationToken extends AbstractAuthenticationToken
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 璁よ瘉涓讳綋(鐧诲綍鍓嶄负浼佷笟寰俊鐢ㄦ埛ID,鐧诲綍鍚庝负LoginUser)
+ */
+ private final Object principal;
+
+ /**
+ * 璁よ瘉鍑瘉(浼佷笟寰俊CorpID)
+ */
+ private Object credentials;
+
+ /**
+ * 鍒涘缓鏈璇佺殑Token(鐧诲綍鍓�)
+ *
+ * @param qyUserId 浼佷笟寰俊鐢ㄦ埛ID
+ * @param corpId 浼佷笟寰俊CorpID
+ */
+ public QyWechatAuthenticationToken(String qyUserId, String corpId)
+ {
+ super(null);
+ this.principal = qyUserId;
+ this.credentials = corpId;
+ setAuthenticated(false);
+ }
+
+ /**
+ * 鍒涘缓宸茶璇佺殑Token(鐧诲綍鍚�)
+ *
+ * @param principal 鐧诲綍鐢ㄦ埛淇℃伅
+ * @param credentials 鍑瘉
+ * @param authorities 鏉冮檺鍒楄〃
+ */
+ public QyWechatAuthenticationToken(Object principal, Object credentials, Collection<? extends GrantedAuthority> authorities)
+ {
+ super(authorities);
+ this.principal = principal;
+ this.credentials = credentials;
+ super.setAuthenticated(true);
+ }
+
+ @Override
+ public Object getCredentials()
+ {
+ return this.credentials;
+ }
+
+ @Override
+ public Object getPrincipal()
+ {
+ return this.principal;
+ }
+
+ @Override
+ public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException
+ {
+ if (isAuthenticated)
+ {
+ throw new IllegalArgumentException(
+ "Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead");
+ }
+ super.setAuthenticated(false);
+ }
+
+ @Override
+ public void eraseCredentials()
+ {
+ super.eraseCredentials();
+ credentials = null;
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.1