我正在启用了通用oauth的grafana实例之前运行apache反向代理。
假设apache反向代理的IP为10.10.10.101 Grafana主机是10.10.10.102 和Keycloak服务器是10.10.10.103:31443
我在apache中有以下配置
<VirtualHost *:8081>
RewriteEngine on
RewriteRule ^/logout - [C]
RewriteRule . "https://10.10.10.103:31443/auth/realms/MDC/protocol/openid-connect/logout?redirect_uri=http://10.10.10.102:8081/login" [NE,R=302,CO=grafana_sess:INVALID:;]
RewriteRule ^/login$ /login/generic_oauth [L,R=302]
ProxyPass / http://10.10.10.102:3001/
ProxyPassReverse / http://10.10.10.102:3001/
RequestHeader set X-Forwarded-Proto "https"
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header set Access-Control-Max-Age "1000"
Header set Access-Control-Allow-Headers "*"
# Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
</VirtualHost>
我有一个嵌入式grafana iframe的角度应用程序。 Angular应用程序具有注销选项,单击该选项可向http://apache-r-proxy:8081/logout发出请求,该请求将重定向到Keycloak以注销用户。
当我从grafana中注销时,我不会收到CORS错误,因为该请求是向同一后端发出的。
但是,当我向http://10.10.10.101:8081/logout发出显式请求时,即使设置了CORS标头,也会收到CORS错误。
我需要在哪里设置cors标头,以便可以调用http://10.10.10.101:8081/logout并且不会收到CORS错误