From a530f5b5c5aead24438328205d0ca2359ae5087e Mon Sep 17 00:00:00 2001
From: shenqicheng <1317225796@qq.com>
Date: Thu, 29 Oct 2020 23:43:30 +0800
Subject: [PATCH] =?UTF-8?q?signUpUrl=20=E4=BF=AE=E6=94=B9=E9=BB=98?=
 =?UTF-8?q?=E8=AE=A4=E5=80=BC=E4=B8=BA=20null;=20=E4=BE=8B:=20"/signUp";?=
 =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=E8=AF=A5=E5=AD=97=E6=AE=B5=E5=88=99?=
 =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E6=8C=87=E5=AE=9Aurl=E8=BF=9B=E8=A1=8C?=
 =?UTF-8?q?=E6=B3=A8=E5=86=8C,=20=E5=90=A6=E5=88=99=E6=89=A7=E8=A1=8C?=
 =?UTF-8?q?=E9=BB=98=E8=AE=A4=E8=AE=A4=E8=AF=81=E6=B5=81=E7=A8=8B;=20?=
 =?UTF-8?q?=E6=83=B3=E4=BC=A0=E8=87=AA=E5=AE=9A=E4=B9=89=20json=20?=
 =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=88=B0=E5=89=8D=E7=AB=AF,=20=E8=BF=99?=
 =?UTF-8?q?=E9=87=8C=E8=A6=81=E8=AE=BE=E7=BD=AE=20null=20,=20=E5=9C=A8?=
 =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=A4=84=E7=90=86=E5=99=A8=E4=B8=8A=E5=A4=84?=
 =?UTF-8?q?=E7=90=86=E8=BF=94=E5=9B=9E=20json?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../login/Auth2LoginAuthenticationFilter.java       |  5 +++--
 .../core/oauth/properties/Auth2Properties.java      | 13 +++++++------
 2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/main/java/top/dcenter/ums/security/core/oauth/filter/login/Auth2LoginAuthenticationFilter.java b/src/main/java/top/dcenter/ums/security/core/oauth/filter/login/Auth2LoginAuthenticationFilter.java
index d93a895..a3d89ad 100644
--- a/src/main/java/top/dcenter/ums/security/core/oauth/filter/login/Auth2LoginAuthenticationFilter.java
+++ b/src/main/java/top/dcenter/ums/security/core/oauth/filter/login/Auth2LoginAuthenticationFilter.java
@@ -16,6 +16,7 @@
 package top.dcenter.ums.security.core.oauth.filter.login;
 
 import org.springframework.lang.NonNull;
+import org.springframework.lang.Nullable;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent;
 import org.springframework.security.core.Authentication;
@@ -125,7 +126,7 @@ public class Auth2LoginAuthenticationFilter extends AbstractAuthenticationProces
      * @param signUpUrl          第三方授权登录后如未注册用户不支持自动注册功能, 这跳转到此 url 进行注册逻辑, 此 url 必须开发者自己实现
      * @since 5.1
      */
-    public Auth2LoginAuthenticationFilter(@NonNull String filterProcessesUrl, @NonNull String signUpUrl) {
+    public Auth2LoginAuthenticationFilter(@NonNull String filterProcessesUrl, @Nullable String signUpUrl) {
         super(filterProcessesUrl + "/*");
         this.authorizationRequestResolver = new Auth2DefaultRequestResolver(filterProcessesUrl);
         this.signUpUrl = signUpUrl;
@@ -180,7 +181,7 @@ public class Auth2LoginAuthenticationFilter extends AbstractAuthenticationProces
         }
 
         final Object principal = authResult.getPrincipal();
-        if (principal instanceof TemporaryUser) {
+        if (principal instanceof TemporaryUser && StringUtils.hasText(this.signUpUrl)) {
             this.redirectStrategy.sendRedirect(request, response, this.signUpUrl);
             return;
         }
diff --git a/src/main/java/top/dcenter/ums/security/core/oauth/properties/Auth2Properties.java b/src/main/java/top/dcenter/ums/security/core/oauth/properties/Auth2Properties.java
index 934dea2..713d4b6 100644
--- a/src/main/java/top/dcenter/ums/security/core/oauth/properties/Auth2Properties.java
+++ b/src/main/java/top/dcenter/ums/security/core/oauth/properties/Auth2Properties.java
@@ -180,11 +180,11 @@ public class Auth2Properties {
      */
     private JdProperties jd = new JdProperties();
     /**
-     * 字段名称与其所代表的第三方的 providerId 相同. 
+     * 字段名称与其所代表的第三方的 providerId 相同.
      */
     private AliyunProperties aliyun = new AliyunProperties();
 
-    
+
     // =================== OAuth2 属性 ===================
     /**
      * 抑制反射警告, 支持 JDK11, 默认: false ,
@@ -204,9 +204,10 @@ public class Auth2Properties {
     private Boolean autoSignUp = true;
 
     /**
-     * 第三方授权登录后如未注册用户不支持自动注册功能, 这跳转到此 url 进行注册逻辑, 此 url 必须开发者自己实现; 默认: "/signUp"
+     * 第三方授权登录后如未注册用户不支持自动注册功能, 这跳转到此 url 进行注册逻辑, 此 url 必须开发者自己实现; 默认: null; 例: "/signUp";
+     * 添加该字段则跳转指定url进行注册, 否则执行默认认证流程; 想传自定义 json 数据到前端, 这里要设置 null , 在成功处理器上处理返回 json
      */
-    private String signUpUrl = "/signUp";
+    private String signUpUrl;
 
     /**
      * 第三方登录回调的域名, 例如:https://localhost 默认为 "http://127.0.0.1",
@@ -283,7 +284,7 @@ public class Auth2Properties {
      * @since 1.15.5
      */
     private HttpConfigProperties proxy = new HttpConfigProperties();
-    
+
 
     @Getter
     @Setter
@@ -711,4 +712,4 @@ public class Auth2Properties {
         private String providerId = "aliyun";
 
     }
-}
\ No newline at end of file
+}
-- 
Gitee