From 3f80678626db5ba0461e92a7e37a1091064468cb Mon Sep 17 00:00:00 2001 From: 戈灵虎 <50576256@qq.com> Date: Sat, 28 Feb 2026 20:13:22 +0800 Subject: [PATCH] fix(justauth): 修复授权请求超时 --- urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/framework/justauth/core/AuthRequestFactory.java | 47 +++++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/framework/justauth/core/AuthRequestFactory.java b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/framework/justauth/core/AuthRequestFactory.java index 693a092..481e4b2 100644 --- a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/framework/justauth/core/AuthRequestFactory.java +++ b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/framework/justauth/core/AuthRequestFactory.java @@ -63,7 +63,7 @@ public class AuthRequestFactory { * * @return Oauth列表 */ - @SuppressWarnings({"unchecked", "rawtypes"}) + @SuppressWarnings({ "unchecked", "rawtypes" }) public List oauthList() { // 默认列表 List defaultList = new ArrayList<>(properties.getType().keySet()); @@ -100,9 +100,10 @@ public class AuthRequestFactory { AuthRequest authRequest = getDefaultRequest(source); // 如果获取不到则尝试取自定义的 -// if (authRequest == null) { -// authRequest = getExtendRequest(properties.getExtend().getEnumClass(), source); -// } + // if (authRequest == null) { + // authRequest = getExtendRequest(properties.getExtend().getEnumClass(), + // source); + // } if (authRequest == null) { throw new AuthException(AuthResponseStatus.UNSUPPORTED); @@ -118,7 +119,7 @@ public class AuthRequestFactory { * @param source {@link AuthSource} * @return {@link AuthRequest} */ - @SuppressWarnings({"unchecked", "rawtypes"}) + @SuppressWarnings({ "unchecked", "rawtypes" }) private AuthRequest getExtendRequest(Class clazz, String source) { String upperSource = source.toUpperCase(); try { @@ -151,7 +152,6 @@ public class AuthRequestFactory { return null; } - /** * 获取默认的 Request * @@ -272,13 +272,13 @@ public class AuthRequestFactory { case "OKTA": return new AuthOktaRequest(config, authStateCache); case "PROGINN": - return new AuthProginnRequest(config,authStateCache); + return new AuthProginnRequest(config, authStateCache); case "AFDIAN": - return new AuthAfDianRequest(config,authStateCache); + return new AuthAfDianRequest(config, authStateCache); case "APPLE": - return new AuthAppleRequest(config,authStateCache); + return new AuthAppleRequest(config, authStateCache); case "FIGMA": - return new AuthFigmaRequest(config,authStateCache); + return new AuthFigmaRequest(config, authStateCache); case "WECHAT_MINI_PROGRAM": config.setIgnoreCheckRedirectUri(true); config.setIgnoreCheckState(true); @@ -300,23 +300,26 @@ public class AuthRequestFactory { * @param authSource {@link AuthSource} * @param authConfig {@link AuthConfig} */ - private void configureHttpConfig(String authSource, AuthConfig authConfig, JustAuthProperties.JustAuthHttpConfig httpConfig) { + private void configureHttpConfig(String authSource, AuthConfig authConfig, + JustAuthProperties.JustAuthHttpConfig httpConfig) { if (null == httpConfig) { return; } - Map proxyConfigMap = httpConfig.getProxy(); - if (CollectionUtils.isEmpty(proxyConfigMap)) { - return; - } - JustAuthProperties.JustAuthProxyConfig proxyConfig = proxyConfigMap.get(authSource); - if (null == proxyConfig) { - return; + // 构建 HttpConfig,优先设置 timeout(独立于 proxy 配置) + HttpConfig.HttpConfigBuilder builder = HttpConfig.builder() + .timeout(httpConfig.getTimeout()); + + // 如果有代理配置,则设置代理 + Map proxyConfigMap = httpConfig.getProxy(); + if (!CollectionUtils.isEmpty(proxyConfigMap)) { + JustAuthProperties.JustAuthProxyConfig proxyConfig = proxyConfigMap.get(authSource); + if (null != proxyConfig) { + builder.proxy(new Proxy(Proxy.Type.valueOf(proxyConfig.getType()), + new InetSocketAddress(proxyConfig.getHostname(), proxyConfig.getPort()))); + } } - authConfig.setHttpConfig(HttpConfig.builder() - .timeout(httpConfig.getTimeout()) - .proxy(new Proxy(Proxy.Type.valueOf(proxyConfig.getType()), new InetSocketAddress(proxyConfig.getHostname(), proxyConfig.getPort()))) - .build()); + authConfig.setHttpConfig(builder.build()); } } -- libgit2 0.21.4