我通过
在一个VM中运行了密钥斗篷keycloak.domain.com
我有运行在另一个VM上的客户端应用程序,而另一个VM则在Tomcat上运行,例如
app.domain.com
哪个正在使用Spring Security,所以我在keycloak.json中完成了以下配置
{
"realm": "demo",
"auth-server-url": "http://keycloak.domain.com:8080/auth",
"ssl-required": "external",
"resource": "app-client",
"verify-token-audience": true,
"credentials": {
"secret": "9503a597-4c83-44ca-884e-e285891a2d32"
},
"use-resource-role-mappings": true,
"confidential-port": 0
}
,我们还有其他服务,因此我们已配置了
之类的Apache反向代理。main.domain.com
当我访问main.domain.com/app时,我们正在按以下方式进行代理
ProxyPass /app http://app.domain.com/app nocanon
ProxyPassReverse /app http://app.domain.com/app
我们能够重定向到密钥斗篷,但是redirect_uri
是http://app.domain.com/app/sso/login
,它应该通过代理
在哪里配置?还是我做错了方法?是他们为我的应用程序获得OAuth的其他方式吗?
答案 0 :(得分:0)
我们已经通过在apache配置中设置CASE WHEN (@column <> 0 OR @column IS NULL) then ...
ELSE 0 END
来解决了这个问题:
ProxyPreserveHost On
该集合是请求中的<VirtualHost *:80>
ProxyPreserveHost On
头,适配器负责其余部分。
我们正在使用Servlet Keycloak适配器,但是我想它也应该适用于其他适配器。