aboutsummaryrefslogtreecommitdiffstats
path: root/it
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2016-11-10 12:29:23 +0100
committerSimon Brandhof <simon.brandhof@sonarsource.com>2016-11-14 12:18:50 +0100
commit901b8810a4d2c237395eced14e467be415218249 (patch)
treeae86617a877d0fe59314b0d8df765f54743c6fad /it
parentac06fa8bd33accb93e36ede7084c64988d511c51 (diff)
downloadsonarqube-901b8810a4d2c237395eced14e467be415218249.tar.gz
sonarqube-901b8810a4d2c237395eced14e467be415218249.zip
SONAR-8247 Fix security headers
Diffstat (limited to 'it')
-rw-r--r--it/it-tests/src/test/java/it/Category4Suite.java2
-rw-r--r--it/it-tests/src/test/java/it/serverSystem/HttpHeadersTest.java (renamed from it/it-tests/src/test/java/it/http/HttpHeadersTest.java)43
2 files changed, 42 insertions, 3 deletions
diff --git a/it/it-tests/src/test/java/it/Category4Suite.java b/it/it-tests/src/test/java/it/Category4Suite.java
index 9d9c8b61501..41c4373f731 100644
--- a/it/it-tests/src/test/java/it/Category4Suite.java
+++ b/it/it-tests/src/test/java/it/Category4Suite.java
@@ -29,7 +29,7 @@ import it.duplication.CrossProjectDuplicationsOnRemoveFileTest;
import it.duplication.CrossProjectDuplicationsTest;
import it.duplication.DuplicationsTest;
import it.duplication.NewDuplicationsTest;
-import it.http.HttpHeadersTest;
+import it.serverSystem.HttpHeadersTest;
import it.projectComparison.ProjectComparisonTest;
import it.projectEvent.EventTest;
import it.projectSearch.SearchProjectsTest;
diff --git a/it/it-tests/src/test/java/it/http/HttpHeadersTest.java b/it/it-tests/src/test/java/it/serverSystem/HttpHeadersTest.java
index bf06af57216..79f539a8a80 100644
--- a/it/it-tests/src/test/java/it/http/HttpHeadersTest.java
+++ b/it/it-tests/src/test/java/it/serverSystem/HttpHeadersTest.java
@@ -17,8 +17,7 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-
-package it.http;
+package it.serverSystem;
import com.google.common.base.Throwables;
import com.sonar.orchestrator.Orchestrator;
@@ -77,6 +76,36 @@ public class HttpHeadersTest {
assertCacheInBrowser(httpResponse);
}
+ @Test
+ public void verify_security_headers_on_base_url() throws Exception {
+ verifySecurityHeaders(call(orchestrator.getServer().getUrl() + "/"));
+ }
+
+ @Test
+ public void verify_security_headers_on_ws() throws Exception {
+ verifySecurityHeaders(call(orchestrator.getServer().getUrl() + "/api/issues/search"));
+ }
+
+ @Test
+ public void verify_security_headers_on_ruby_ws() throws Exception {
+ verifySecurityHeaders(call(orchestrator.getServer().getUrl() + "/api/resources/index"));
+ }
+
+ @Test
+ public void verify_security_headers_on_images() throws Exception {
+ verifySecurityHeaders(call(orchestrator.getServer().getUrl() + "/images/logo.svg"));
+ }
+
+ @Test
+ public void verify_security_headers_on_css() throws Exception {
+ verifySecurityHeaders(call(orchestrator.getServer().getUrl() + "/css/sonar.css"));
+ }
+
+ @Test
+ public void verify_security_headers_on_js() throws Exception {
+ verifySecurityHeaders(call(orchestrator.getServer().getUrl() + "/js/bundles/main.js"));
+ }
+
private static void assertCacheInBrowser(Response httpResponse) {
CacheControl cacheControl = httpResponse.cacheControl();
assertThat(cacheControl.mustRevalidate()).isFalse();
@@ -91,6 +120,16 @@ public class HttpHeadersTest {
assertThat(cacheControl.noStore()).isTrue();
}
+ /**
+ * SONAR-8247
+ */
+ private static void verifySecurityHeaders(Response httpResponse) {
+ assertThat(httpResponse.isSuccessful()).isTrue();
+ assertThat(httpResponse.headers().get("X-Frame-Options")).isEqualTo("SAMEORIGIN");
+ assertThat(httpResponse.headers().get("X-XSS-Protection")).isEqualTo("1; mode=block");
+ assertThat(httpResponse.headers().get("X-Content-Type-Options")).isEqualTo("nosniff");
+ }
+
private static Response call(String url) {
Request request = new Request.Builder().get().url(url).build();
try {