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