我已经将Sonar网络服务器配置为让所有请求通过Microsoft IIS服务器。它被确认可以通过http协议处理请求。
- 但是,一旦启用了https,
成功登录后,Sonar网络应用程序将尝试重定向到非https网址,从而导致超时。如果我随后将网址更改为 https,它将显示为经过身份验证并继续正常工作。
当您尝试注销时,也会发生同样的问题 - 它不是重定向到 https 页面,而是转到 http。
需要做什么才能使Sonar登录后操作使用最初请求登录页面的相同协议?
sonar.properties具有:
sonar.web.host: 127.0.0.1
sonar.web.port: 9000
sonar.web.context: /sonar
IIS 插件具有:
<VirtualHostGroup Name="default_host">
<VirtualHost Name="*:80"/>
<VirtualHost Name="*:9443"/>
<VirtualHost Name="*:443"/>
<VirtualHost Name="*:9000"/>
</VirtualHostGroup>
<ServerGroup Name="sonar_group">
<Server Name="sonar_server">
<Transport Hostname="127.0.0.1" Port="9000" Protocol="http"/>
</Server>
</ServerGroup>
<UriGroup Name="sonar_host_URIs">
<Uri Name="/sonar*"/>
</UriGroup>
<Route ServerGroup="sonar_group" UriGroup="sonar_host_URIs" VirtualHostGroup="default_host"/>
谢谢。
在 Web UI 中(以管理员用户身份登录时),转到"设置"->"常规",并确保"服务器基本 URL"下列出的 URL 以"https"开头。 这也可以使用sonar.core.serverBaseURL在服务器的sonar.properties文件中设置。
这是Ruby堆栈的一个众所周知的问题,需要调整Web服务器配置,而不是Sonar的配置。在 Apache 上,您必须执行以下操作,我相信票证中的指针也会引导您找到 IIS 的解决方案:
RequestHeader set X_FORWARDED_PROTO "https"