diff --git a/.gitignore b/.gitignore
index c256322..0d1798c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,3 @@
.DS_Store
target/
-
diff --git a/pom.xml b/pom.xml
index b9975d4..8746082 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.factionsecurity
faction-extender
- 2.5
+ 2.7
jar
Faction Extender API
API to interfaces for building extensions for Faction.
@@ -30,7 +30,7 @@
scm:git:https://github.com/factionsecurity/FactionExtender.git
scm:git:https://github.com/factionsecurity/FactionExtender.git
- 2.2
+ 2.6
2.18.16
@@ -124,6 +124,12 @@
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
org.junit.jupiter
junit-jupiter-api
diff --git a/pom.xml.releaseBackup b/pom.xml.releaseBackup
index 642f026..3c1c9db 100644
--- a/pom.xml.releaseBackup
+++ b/pom.xml.releaseBackup
@@ -1,8 +1,8 @@
4.0.0
- FactionSecurity
+ com.factionsecurity
faction-extender
- 2.3-SNAPSHOT
+ 2.6-SNAPSHOT
jar
Faction Extender API
API to interfaces for building extensions for Faction.
@@ -14,29 +14,92 @@
repo
+
+
+ Josh Summitt
+ develop@factionsecurity.com
+ Faction Security
+ https://www.factionsecurity.com
+
+
https://github.com/factionsecurity/FactionExtender.git
- scm:git:https://github.com/factionsecurity/FactionExtender.git
+
+ scm:git:https://github.com/factionsecurity/FactionExtender.git
scm:git:https://github.com/factionsecurity/FactionExtender.git
- 2.2
+ 2.6
2.18.16
github
github
-
-
- github
- Faction Extender
- https://maven.pkg.github.com/factionsecurity/FactionExtender
-
-
src/main/java
- src/test/java
+ src/test/java
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.3.0
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ net.ju-n.maven.plugins
+ checksum-maven-plugin
+ 1.2
+
+
+
+ artifacts
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 3.1.0
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+ org.sonatype.central
+ central-publishing-maven-plugin
+ 0.3.0
+ true
+
+ sonatype
+ true
+
+
org.apache.maven.plugins
maven-release-plugin
diff --git a/release.properties b/release.properties
index 42b52f7..0fe11f1 100644
--- a/release.properties
+++ b/release.properties
@@ -1,22 +1,22 @@
#release configuration
-#Sun Jan 14 16:44:12 CST 2024
-completedPhase=end-release
+#Fri Dec 20 14:11:30 CST 2024
+completedPhase=generate-release-poms
exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P github
exec.snapshotReleasePluginAllowed=false
preparationGoals=clean verify
-project.dev.FactionSecurity\:faction-extender=2.4-SNAPSHOT
-project.rel.FactionSecurity\:faction-extender=2.3
-project.scm.FactionSecurity\:faction-extender.connection=scm\:git\:https\://github.com/factionsecurity/FactionExtender.git
-project.scm.FactionSecurity\:faction-extender.developerConnection=scm\:git\:https\://github.com/factionsecurity/FactionExtender.git
-project.scm.FactionSecurity\:faction-extender.id=github
-project.scm.FactionSecurity\:faction-extender.tag=2.2
-project.scm.FactionSecurity\:faction-extender.url=https\://github.com/factionsecurity/FactionExtender.git
+project.dev.com.factionsecurity\:faction-extender=2.7-SNAPSHOT
+project.rel.com.factionsecurity\:faction-extender=2.6
+project.scm.com.factionsecurity\:faction-extender.connection=scm\:git\:https\://github.com/factionsecurity/FactionExtender.git
+project.scm.com.factionsecurity\:faction-extender.developerConnection=scm\:git\:https\://github.com/factionsecurity/FactionExtender.git
+project.scm.com.factionsecurity\:faction-extender.id=github
+project.scm.com.factionsecurity\:faction-extender.tag=2.6
+project.scm.com.factionsecurity\:faction-extender.url=https\://github.com/factionsecurity/FactionExtender.git
projectVersionPolicyId=default
pushChanges=true
remoteTagging=true
scm.commentPrefix=[maven-release-plugin]
scm.id=github
-scm.tag=2.3
+scm.tag=2.6
scm.tagNameFormat=@{project.version}
scm.url=scm\:git\:https\://github.com/factionsecurity/FactionExtender.git
scm.username=summitt
diff --git a/src/main/java/com/faction/elements/Assessment.java b/src/main/java/com/faction/elements/Assessment.java
index fd018e9..0255464 100644
--- a/src/main/java/com/faction/elements/Assessment.java
+++ b/src/main/java/com/faction/elements/Assessment.java
@@ -8,6 +8,9 @@
import com.faction.elements.User;
+
+import lombok.Data;
+
/**
* The Assessment Class is used to store all elements of a Faction Assessment
*/
@@ -34,175 +37,7 @@ public class Assessment {
private String status;
private Integer workflow;
private List customFields;
-
- public String getSummary() {
- return summary;
- }
-
- public String getRiskAnalysis() {
-
- return this.riskAnalysis;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getAppId() {
- return appId;
- }
-
- public void setAppId(String appId) {
- this.appId = appId;
- }
-
- public Date getStart() {
- return start;
- }
-
- public void setStart(Date start) {
- this.start = start;
- }
-
- public Date getEnd() {
- return end;
- }
-
- public void setEnd(Date end) {
- this.end = end;
- }
-
- public Date getCompleted() {
- return completed;
- }
-
- public void setCompleted(Date completed) {
- this.completed = completed;
- }
-
- public String getNotes() {
- return Notes;
- }
-
- public String getDistributionList() {
- return DistributionList;
- }
-
- public void setDistributionList(String distributionList) {
- DistributionList = distributionList;
- }
-
- public String getAccessNotes() {
- return AccessNotes;
- }
-
- public String getPr_sum_notes() {
- return pr_sum_notes;
- }
-
- public String getPr_risk_notes() {
- return pr_risk_notes;
- }
-
- public String getType() {
- return type;
- }
-
- public byte[] getFinalReport() {
- return finalReport;
- }
-
- public String getCampaign() {
- return campaign;
- }
-
- public User getEngagementContact() {
- return engagementContact;
- }
-
- public User getRemediationContact() {
- return remediationContact;
- }
-
- public void setEngagementContact(User engagementContact) {
- this.engagementContact = engagementContact;
- }
-
- public void setRemediationContact(User remediationContact) {
- this.remediationContact = remediationContact;
- }
-
- public List getAssessors() {
- return assessors;
- }
-
- public void setAssessors(List assessors) {
- this.assessors = assessors;
- }
-
- public String getStatus() {
- return status;
- }
-
- public Integer getWorkflow() {
- return workflow;
- }
-
- public void setSummary(String summary) {
- this.summary = summary;
- }
-
- public void setRiskAnalysis(String riskAnalysis) {
- this.riskAnalysis = riskAnalysis;
- }
-
- public void setNotes(String notes) {
- Notes = notes;
- }
-
- public void setAccessNotes(String accessNotes) {
- AccessNotes = accessNotes;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public void setFinalReport(byte[] finalReport) {
- this.finalReport = finalReport;
- }
-
- public void setCampaign(String campaign) {
- this.campaign = campaign;
- }
-
- public void setPr_sum_notes(String pr_sum_notes) {
- this.pr_sum_notes = pr_sum_notes;
- }
-
- public void setPr_risk_notes(String pr_risk_notes) {
- this.pr_risk_notes = pr_risk_notes;
- }
-
- public void setStatus(String status) {
- this.status = status;
- }
-
- public void setWorkflow(Integer workflow) {
- this.workflow = workflow;
- }
-
- public void setCustomFields(List fields) {
- this.customFields = fields;
- }
-
- public List getCustomFields() {
- return this.customFields;
- }
+ private List checklists;
}
diff --git a/src/main/java/com/faction/elements/CheckList.java b/src/main/java/com/faction/elements/CheckList.java
new file mode 100644
index 0000000..4244c3e
--- /dev/null
+++ b/src/main/java/com/faction/elements/CheckList.java
@@ -0,0 +1,12 @@
+package com.faction.elements;
+
+import java.util.List;
+
+import lombok.Data;
+
+@Data
+public class CheckList {
+ private String name;
+ private List checkListItems;
+
+}
diff --git a/src/main/java/com/faction/elements/CheckListItem.java b/src/main/java/com/faction/elements/CheckListItem.java
new file mode 100644
index 0000000..245aa40
--- /dev/null
+++ b/src/main/java/com/faction/elements/CheckListItem.java
@@ -0,0 +1,37 @@
+package com.faction.elements;
+
+import lombok.Data;
+
+@Data
+public class CheckListItem {
+
+ private String notes;
+ private String question;
+ private Answer answer;
+
+ public static enum Answer {
+ Pass(3), Fail(2), NA(1), Incomplete(0);
+
+ private final int value;
+ private Answer(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ public static Answer getAnswer(int value){
+ switch(value){
+ case 0 : return Incomplete;
+ case 1 : return NA;
+ case 2 : return Fail;
+ case 3 : return Pass;
+ default:
+ return Incomplete;
+ }
+ }
+
+ }
+
+
+}
diff --git a/src/main/java/com/faction/elements/Vulnerability.java b/src/main/java/com/faction/elements/Vulnerability.java
index 269d0a8..3ec035f 100644
--- a/src/main/java/com/faction/elements/Vulnerability.java
+++ b/src/main/java/com/faction/elements/Vulnerability.java
@@ -28,6 +28,9 @@ public class Vulnerability{
private Date opened;
private Date devClosed;
private String tracking;
+ private String cvssScore;
+ private String cvssString;
+ private String section;
private List customFields;
@@ -126,6 +129,40 @@ public void setCustomFields( List fields) {
public List getCustomFields(){
return this.customFields;
}
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getCvssScore() {
+ return cvssScore;
+ }
+
+ public void setCvssScore(String cvssScore) {
+ this.cvssScore = cvssScore;
+ }
+
+ public String getCvssString() {
+ return cvssString;
+ }
+
+ public void setCvssString(String cvssString) {
+ this.cvssString = cvssString;
+ }
+
+ public String getSection() {
+ return section;
+ }
+
+ public void setSection(String section) {
+ this.section = section;
+ }
+
+
diff --git a/src/test/java/com/faction/unittests/ExtenderTestCase.java b/src/test/java/com/faction/unittests/ExtenderTestCase.java
index d5c6df8..73dc6b3 100644
--- a/src/test/java/com/faction/unittests/ExtenderTestCase.java
+++ b/src/test/java/com/faction/unittests/ExtenderTestCase.java
@@ -15,6 +15,8 @@
import com.faction.elements.Assessment;
import com.faction.elements.BaseExtension;
+import com.faction.elements.CheckList;
+import com.faction.elements.CheckListItem;
import com.faction.elements.Vulnerability;
import com.faction.elements.results.AssessmentManagerResult;
import com.faction.elements.utils.Log;
@@ -42,15 +44,37 @@ void test() {
List vulns = new ArrayList<>();
vulns.add(vuln);
+ CheckList checklist = new CheckList();
+ CheckListItem item1 = new CheckListItem();
+ item1.setNotes("note1");
+ item1.setQuestion("question1");
+ item1.setAnswer(CheckListItem.Answer.Fail);
+ CheckListItem item2 = new CheckListItem();
+ item2.setNotes("note2");
+ item2.setQuestion("question2");
+ item2.setAnswer(CheckListItem.Answer.Pass);
+
+ checklist.setName("checklist1");
+ checklist.setCheckListItems(new ArrayList<>());
+ checklist.getCheckListItems().add(item1);
+ checklist.getCheckListItems().add(item2);
+
+ asmt.setChecklists(new ArrayList<>());
+ asmt.getChecklists().add(checklist);
+
+
+
+
AssessmentManagerResult result = asmtMgr.assessmentChange(asmt, vulns, Operation.Create);
assertTrue(result.getAssessment().getSummary().equals("This is a test"));
- assertTrue(asmtMgr.getLogs().size() == 2);
+ assertTrue(asmtMgr.getLogs().size() == 3);
List logs = asmtMgr.getLogs();
assertTrue(logs.stream().anyMatch( log -> log.getMessage().equals("Got Config1: Test Config 1")));
assertTrue(logs.stream().anyMatch( log -> log.getMessage().equals("Got Config2: Test Config 2")));
+ assertTrue(logs.stream().anyMatch( log -> log.getMessage().equals("Got Checklist: checklist1")));
@@ -71,6 +95,8 @@ public AssessmentManagerResult assessmentChange(Assessment asmt, List