Browse Source

SONAR-14658 Show additional security-related rules are available in security reports

tags/9.2.0.49834
Zipeng WU 2 years ago
parent
commit
6bd7a4fd3a

+ 10
- 0
server/sonar-server-common/src/main/java/org/sonar/server/issue/index/SecurityStandardCategoryStatistics.java View File

@@ -34,6 +34,7 @@ public class SecurityStandardCategoryStatistics {
private final List<SecurityStandardCategoryStatistics> children;
private long activeRules;
private long totalRules;
private boolean hasMoreRules;

public SecurityStandardCategoryStatistics(String category, long vulnerabilities, OptionalInt vulnerabiliyRating, long toReviewSecurityHotspots,
long reviewedSecurityHotspots, Integer securityReviewRating, @Nullable List<SecurityStandardCategoryStatistics> children) {
@@ -44,6 +45,7 @@ public class SecurityStandardCategoryStatistics {
this.reviewedSecurityHotspots = reviewedSecurityHotspots;
this.securityReviewRating = securityReviewRating;
this.children = children;
this.hasMoreRules = false;
}

public String getCategory() {
@@ -89,4 +91,12 @@ public class SecurityStandardCategoryStatistics {
this.totalRules = totalRules;
return this;
}

public boolean hasMoreRules() {
return hasMoreRules;
}

public void setHasMoreRules(boolean hasMoreRules) {
this.hasMoreRules = hasMoreRules;
}
}

+ 48
- 0
server/sonar-server-common/src/test/java/org/sonar/server/issue/index/SecurityStandardCategoryStatisticsTest.java View File

@@ -0,0 +1,48 @@
/*
* SonarQube
* Copyright (C) 2009-2021 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package org.sonar.server.issue.index;

import org.junit.Test;

import static java.util.OptionalInt.empty;
import static org.assertj.core.api.Assertions.assertThat;

public class SecurityStandardCategoryStatisticsTest {

@Test
public void hasMoreRules_default_false() {
SecurityStandardCategoryStatistics standardCategoryStatistics = new SecurityStandardCategoryStatistics(
"cat", 0, empty(), 0,
0, 5, null
);
assertThat(standardCategoryStatistics.hasMoreRules()).isFalse();
}

@Test
public void hasMoreRules_is_updatable() {
SecurityStandardCategoryStatistics standardCategoryStatistics = new SecurityStandardCategoryStatistics(
"cat", 0, empty(), 0,
0, 5, null
);
standardCategoryStatistics.setHasMoreRules(true);
assertThat(standardCategoryStatistics.hasMoreRules()).isTrue();
}

}

+ 2
- 0
sonar-ws/src/main/protobuf/ws-security.proto View File

@@ -41,6 +41,7 @@ message SecurityStandardCategoryStatistics {
repeated CweStatistics distribution = 8;
optional int64 activeRules = 9;
optional int64 totalRules = 10;
optional bool hasMoreRules = 11;
}

message CweStatistics {
@@ -52,6 +53,7 @@ message CweStatistics {
optional int64 securityReviewRating = 7;
optional int64 activeRules = 8;
optional int64 totalRules = 9;
optional bool hasMoreRules = 10;
}



Loading…
Cancel
Save