我有以下配置,基本上是在grafana前面的反向代理。我将/ logout请求转发到具有重定向URL的/ authin服务器和/ login URL到/ login / generic_oauth。
仅在grafana ui发出请求时,我才想将/ logout重定向到auth服务器。
如果请求是由其他任何来源发出的,则应转到反向代理并返回。基本上,当我从我的角度应用程序注销用户时,我也要注销用户我的grafana应用程序。但是,由于我已经将/ logout链接到身份验证服务器重定向,因此在发出请求时会出现cors错误。
RewriteEngine on
RewriteRule ^/logout - [C]
I want to excute this rule only if the request is from http://grafana-ip:3001
RewriteRule . "https://auth-server-ip:31443/auth/realms/MDC/protocol/openid-connect/logout?redirect_uri=http://auth-server-ip:8081/login" [NE,R=302,CO=grafana_sess:INVALID:;]
RewriteRule ^/login$ /login/generic_oauth [L,R=302]
ProxyPass / http://grafana-ip:3001/
ProxyPassReverse / http://grafana-ip:3001/
RequestHeader set X-Forwarded-Proto "https"
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "*"
有什么方法可以执行该规则,就像当请求来自grafana-ip时一样,而不是它来自任何其他来源时
答案 0 :(得分:0)
由于您将/代理到后端,并且您的客户端仅在带有引用您的代理的引用的代理上请求URL,因此您确实没有理由将/ logout处理作为条件。这样做很好,因为您出于相同的原因无法区分任何事物。