【问题标题】:Proxy for Spring Security for React + OIDCReact + OIDC 的 Spring Security 代理
【发布时间】:2021-01-02 22:11:21
【问题描述】:

我按照此处的示例 (https://developer.okta.com/blog/2018/07/19/simple-crud-react-and-spring-boot) 使用我的公司 okta 发行人创建了一个 Spring + react 应用程序。当我没有连接到公司网络时工作正常。 当我连接到公司网络时,我收到以下错误:

引起:org.springframework.beans.factory.BeanCreationException: 创建定义名称为“clientRegistrationRepository”的 bean 时出错 在类路径资源中 [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: 通过工厂方法实例化 Bean 失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:失败 实例化 [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: 工厂方法“clientRegistrationRepository”抛出异常;嵌套的 异常是 java.lang.IllegalArgumentException: Unable to resolve 使用提供的颁发者进行配置 “” 原因: org.springframework.web.client.ResourceAccessException:I/O 错误 GET 请求 “https://corporate.issuer.okta.com/.well-known/openid-configuration”:操作 超时(连接超时);嵌套异常是 java.net.ConnectException:操作超时(连接超时)

由于此连接问题,应用程序甚至无法启动。我尝试在 VM Args 中传递公司代理

-Dhttp.proxyHost=proxy.corp.com -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.corp.com -Dhttps.proxyPort=8080

但它似乎没有采取代理。当我没有连接到我的公司网络时,我可以启动应用程序,并且可以看到 UI 重定向到 okta 登录等。

如何通过代理与 Okta 颁发者进行春季安全对话?

【问题讨论】:

    标签: java spring-security okta


    【解决方案1】:

    您的公司代理服务器可能还需要用户名和密码:

    -Dhttps.proxyHost=host
    -Dhttps.proxyPort=port
    -Dhttps.proxyUser="user"
    -Dhttps.proxyPassword="password"
    

    您可能想要检查并匹配您在浏览器中的代理设置/配置。

    此外,请检查您的公司代理是否为 socks 类型(在这种情况下,您必须使用 -Dsocks.proxyHost=host 等)。

    【讨论】:

      猜你喜欢
      • 2022-11-16
      • 2016-06-28
      • 2018-09-29
      • 2022-08-03
      • 2019-01-18
      • 2011-08-29
      • 2021-10-25
      • 2021-03-21
      • 2015-11-19
      相关资源
      最近更新 更多