我有一个非常简单的Spring Boot应用程序,具有社交单点登录功能。
看起来是这样的:
@Configuration
@EnableOAuth2Sso
class Application {
// beans
}
它在应用程序中有必需的条目。yml:
security:
oauth2:
client:
# clientId: ...
# clientSecret: ...
accessTokenUri: https://www.googleapis.com/oauth2/v3/token
userAuthorizationUri: https://accounts.google.com/o/oauth2/auth
tokenName: oauth_token
authenticationScheme: query
clientAuthenticationScheme: form
scope: email
resource:
userInfoUri: https://www.googleapis.com/userinfo/v2/me
preferTokenInfo: false
它在我的本地机器上运行得很好,并且只启动了一个实例。
当有多个实例隐藏在负载平衡器后面时,就会出现问题。
即使用户在第一个请求中进行身份验证,向负载均衡器发出的后续请求也会因401而被阻止。
与第一个应用程序实例相比,请求被路由到不同的应用程序实例。
我正在试图弄清楚,如何使用JWT或JDBC使其无状态,以便它跨多个实例工作。不幸的是,我在网上没有找到任何有效的例子。
其中有些需要启动授权服务器。但这不是我的情况,因为我想将授权完全转发给第三方提供商(如谷歌)。
在这种情况下,我应该怎么做才能使授权跨多个实例工作?
Spring仅在cookie中存储会话的ID,但数据位于Web服务器上的某个位置(tomcat?)并由此id获取。当您的请求击中其他tomcat实例时,它无法将id连接到数据。您可以做的是查看使用redis而不是特定实例文件系统的Spring会话项目。
另一种方法是在LB上使用粘性会话,我不建议这样做,但可能适合您的解决方案。LB会小心地将用户请求一次又一次地传递给同一服务器。当然,这不是安全的解决方案,因为当Web服务器死亡时,您的用户将丢失会话/从应用程序注销。
这意味着Zookeeper将负载均衡器理解为一个客户机,并与之建立联系。但是负载均衡器只是ping TCP2181就出来了。
我已经按照用户指南在库伯内特斯上实现了Traefik。这给了我一个入口控制器,我能够在80和8080上创建一个入口和traefik-ingress-service监听。 我还设置了“gce”入口: 这样做的目的是创建一个GCE负载平衡器,它终止我的TLS,并将所有请求转发给NodePort类型的traefik入口服务。 GCE负载平衡器需要进行健康检查。默认为路径“/”。我以为traefik有个“
我有一个在AWS上运行的项目。结构如下: 我已使用AWS证书管理器为负载平衡器创建了一个证书。所以现在的流量是: 但由于加载网页时实例上没有证书,因此会收到“站点不安全”警告。 如何创建从客户端到负载均衡器后面的任何实例的完整SSL连接? 编辑 以下是nginx配置(适用于所有实例)
我有两条溪流。一个是事件流,另一个是数据库更新流。我想用从DB更新流构建的信息丰富事件流。 事件流非常庞大,使用5个字段进行分区。这给了我很好的分配。DB流不那么喋喋不休,并且使用两个字段进行分区。我目前正在使用两个公共字段连接这两个流,并使用flapMap来丰富第一个流。flatMap运算符使用ValueState维护状态,状态由两个公共字段自动键入。 除了实现自定义逻辑来手动提取键并更新维护状
我有一个Wordpress网站在AWS EC2实例上运行。这是通过AWS弹性负载平衡器提供的,它使用我从Amazon获得的证书启用了HTTPS。 其目的是为该网站提供http和https版本。加载http版本可以正常工作。 然而,当我加载https版本时,会出现混合内容错误,因为总是返回http链接。负载平衡器的工作方式是TLS终止于LB,并通过端口80与实际EC2实例通信。因此,实例本身上没有H
试图自学如何使用库伯内特斯,但有一些问题。 我的下一步是尝试使用LoadBalancer类型的服务来访问nginx。 我建立了一个新的集群并部署了nginx映像。 然后,我为LoadBalancer设置服务 设置完成后,我尝试使用LoadBalancer入口(我在描述LoadBalancer服务时发现)访问nginx。我收到一个此页面无法工作的错误。 不太确定我哪里出错了。 kubectl获得sv