我们目前正在开发一个使用Spring Boot 1.4和Keyclope 2.5.0(配置为openid连接服务)的微服务应用程序,使用Keyclope Spring适配器(而不是Spring Boot适配器)。
我们所有的微服务都放在一个负载平衡器和一个额外的反向代理之后,因为应用程序将托管在一个上下文根后面的现有域上(因此我们的应用程序的根是http://foo.bar/foobar/剩下的服务是http://foo.bar/foobar/rest/)。
在这个给定的场景中,我们面临着关键斗篷的几个问题:
我们已经尝试使用"Token-store":"cookie"
,但这并不能解决问题。
是否有解决这些问题的方法,或者Keyclope可能不是我们用例的正确解决方案?
更新05/05/2017:将我的答案从这里移动到答案
我们现在已经启动并运行了Keyclope,所以我将简要解释一下我们所做的工作。我们的应用程序的前端运行Angular2,我们在Angular应用程序本身中创建了一个自定义登录页面(因此它不是Keyclope的主题),该页面将直接查询Keyclope API以获取OAuth2承载令牌。前端将在授权标头中的每个请求上发送此令牌(根据OAuth标准)。在服务端,我们已经将key斗篷配置为仅承载解决方案(key斗篷.json中的仅承载:true),这样应用程序只返回401或403,而不是转发到登录页面。
使用此配置,用户将永远不会从 /sso/login页面看到任何内容,也不再存在重定向问题。
太长,读不下去了我描述的用例也不现实,调用REST URL然后转发到登录页面是一种糟糕的事情:)
我的Spring Boot服务在反向代理之后工作,并由外部KeyClope服务器保护。 成功登录Keycloak服务器后,它会将我重定向到我的服务,然后我被重定向到上下文路径的根,而不是初始url。 所以请求链看起来像: 初始url: 并重定向: http://~主机名//~服务名//rest/sso/login <代码>https://ext-keycloak.server/auth/realm
我们希望更改Tomcat Web应用程序的上下文根,并让旧URL将用户引导到新命名的应用程序。 一种方法是部署上下文根为newappname的应用程序和另一个上下文根为oldappname的应用程序,并让它引导用户找到新的URL。 这个简单的选项对我们不开放,公司内部政策禁止在同一个Tomcat实例中运行多个应用程序(不可协商)。 我记得GlassFish有一个“备用文档根”的概念,可用于为应用程
本文向大家介绍LINUX中NGINX反向代理下的TOMCAT集群(详解),包括了LINUX中NGINX反向代理下的TOMCAT集群(详解)的使用技巧和注意事项,需要的朋友参考一下 Nginx具有反向代理(注意和正向代理的区别)和负载均衡等特点。 这次Nginx安装在 192.168.1.108 这台linux 机器上。安装Nginx 先要装openssl库,gcc,PCRE,zlib库等。 Tom
本小节,我们继续学习 Nginx 在 七层反向代理中的其它几种比较常见的情况,比如 web 服务中的 WebSocket 协议的反向代理和 uwsgi 协议的反向代理。 1. WebSocket的反向代理 WebSocket 是目前比较成熟的技术了, WebSocket 协议为创建客户端和服务器端需要实时双向通讯的 webapp 提供了一个选择。服务器可以向浏览器推送相关消息,这样在前端实现的某个
Nginx 最强大的地方是在于其 HTTP 请求的反向代理,也即常说的七层反向代理。在这一层代理中,通过 Nginx 框架提供的相关配置,我们能在该层将发送过来的 http 协议转换成各种其他的协议比如 fastcgi 协议、uwsgi协议、grpc、http(高版本协议)、websocket协议等。这样使用 Nginx 框架,我们可以支持多种应用服务(java web、python web等)的
我想在代理之后提供Restful API,但我不知道如何将请求重定向到Spring Boot应用程序,以便可以使用域名访问它。 我的Spring Boot应用程序使用spring-boot-starter-tomcat运行,应用程序部署良好,我可以在服务器上使用java-jar myApplication.jar部署它。 该应用程序还可以通过写入远程访问https://1.2.3.4:8090在浏