use of org.eclipse.sw360.cvesearch.datasource.matcher.Match in project sw360portal by sw360.
the class ComponentPortlet method updateVulnerabilityVerification.
private void updateVulnerabilityVerification(ResourceRequest request, ResourceResponse response) throws IOException {
String[] releaseIds = request.getParameterValues(PortalConstants.RELEASE_IDS + "[]");
String[] vulnerabilityIds = request.getParameterValues(PortalConstants.VULNERABILITY_IDS + "[]");
User user = UserCacheHolder.getUserFromRequest(request);
VulnerabilityService.Iface vulClient = thriftClients.makeVulnerabilityClient();
RequestStatus requestStatus = RequestStatus.SUCCESS;
try {
if (vulnerabilityIds.length != releaseIds.length) {
throw new SW360Exception("Length of vulnerabilities (" + vulnerabilityIds.length + ") does not match the length of releases (" + releaseIds.length + ")!");
}
for (int i = 0; i < vulnerabilityIds.length; i++) {
String vulnerabilityId = vulnerabilityIds[i];
String releaseId = releaseIds[i];
Vulnerability dbVulnerability = vulClient.getVulnerabilityByExternalId(vulnerabilityId, user);
ReleaseVulnerabilityRelation dbRelation = vulClient.getRelationByIds(releaseId, dbVulnerability.getId(), user);
ReleaseVulnerabilityRelation resultRelation = ComponentPortletUtils.updateReleaseVulnerabilityRelationFromRequest(dbRelation, request);
requestStatus = vulClient.updateReleaseVulnerabilityRelation(resultRelation, user);
if (requestStatus != RequestStatus.SUCCESS) {
break;
}
}
} catch (TException e) {
log.error("Error updating vulnerability verification in backend.", e);
requestStatus = RequestStatus.FAILURE;
}
JSONObject responseData = JSONFactoryUtil.createJSONObject();
responseData.put(PortalConstants.REQUEST_STATUS, requestStatus.toString());
PrintWriter writer = response.getWriter();
writer.write(responseData.toString());
}
use of org.eclipse.sw360.cvesearch.datasource.matcher.Match in project sw360portal by sw360.
the class ProjectPortletUtils method updateProjectVulnerabilityRatingFromRequest.
public static ProjectVulnerabilityRating updateProjectVulnerabilityRatingFromRequest(Optional<ProjectVulnerabilityRating> projectVulnerabilityRatings, ResourceRequest request) throws SW360Exception {
String projectId = request.getParameter(PortalConstants.PROJECT_ID);
ProjectVulnerabilityRating projectVulnerabilityRating = projectVulnerabilityRatings.orElse(new ProjectVulnerabilityRating().setProjectId(projectId).setVulnerabilityIdToReleaseIdToStatus(new HashMap<>()));
if (!projectVulnerabilityRating.isSetVulnerabilityIdToReleaseIdToStatus()) {
projectVulnerabilityRating.setVulnerabilityIdToReleaseIdToStatus(new HashMap<>());
}
Map<String, Map<String, List<VulnerabilityCheckStatus>>> vulnerabilityIdToReleaseIdToStatus = projectVulnerabilityRating.getVulnerabilityIdToReleaseIdToStatus();
String[] vulnerabilityIds = request.getParameterValues(PortalConstants.VULNERABILITY_IDS + "[]");
String[] releaseIds = request.getParameterValues(PortalConstants.RELEASE_IDS + "[]");
if (vulnerabilityIds.length != releaseIds.length) {
String message = "Length of vulnerabilities (" + vulnerabilityIds.length + ") does not match the length of releases (" + releaseIds.length + ")!";
log.error(message);
throw new SW360Exception(message);
}
for (int i = 0; i < vulnerabilityIds.length; i++) {
String vulnerabilityId = vulnerabilityIds[i];
String releaseId = releaseIds[i];
Map<String, List<VulnerabilityCheckStatus>> releaseIdToStatus = vulnerabilityIdToReleaseIdToStatus.computeIfAbsent(vulnerabilityId, k -> new HashMap<>());
List<VulnerabilityCheckStatus> vulnerabilityCheckStatusHistory = releaseIdToStatus.computeIfAbsent(releaseId, k -> new ArrayList<>());
VulnerabilityCheckStatus vulnerabilityCheckStatus = newVulnerabilityCheckStatusFromRequest(request);
vulnerabilityCheckStatusHistory.add(vulnerabilityCheckStatus);
}
return projectVulnerabilityRating;
}
use of org.eclipse.sw360.cvesearch.datasource.matcher.Match in project sw360portal by sw360.
the class DatabaseConnectorTest method testUpdateDocument.
@Test
public void testUpdateDocument() throws Exception {
// Change something in the object
object.setText("Some new text");
// Update the document
connector.update(object);
// Checkt that the object's revision was updated
assertNotEquals(rev, object.getRevision());
// Fetch it again to check it was updated in the database
TestObject object1 = connector.get(TestObject.class, id);
assertEquals("Test", object1.getName());
assertEquals("Some new text", object1.getText());
// Check that both revision match
assertEquals(object.getRevision(), object1.getRevision());
// Check that revision has changed
assertNotEquals(rev, object1.getRevision());
rev = object1.getRevision();
}
Aggregations