├── .maven.xml
├── .travis.yml
├── Dockerfile
├── LICENSE
├── README.md
├── config.yml
├── docker-build.sh
├── docker-compose-with-marathon.yml
├── docker-compose-with-no-marathon.yml
├── dump.sql
├── payloads
├── andro.json
├── arachni.json
├── bandit.json
├── brakeman.json
├── bundle-audit.json
├── dawn-scanner.json
├── exakat.json
├── find-sec-bugs.json
├── nmap.json
├── nsp.json
├── retire.json
├── truffle-hog.json
├── wpscan.json
└── xanitizer.json
├── pom.xml
└── src
├── main
└── java
│ └── com
│ └── olacabs
│ └── jackhammer
│ ├── application
│ ├── DBFactory.java
│ ├── JackhammerBinder.java
│ └── JackhammerService.java
│ ├── common
│ ├── Constants.java
│ ├── CustomErrorCodes.java
│ ├── EmailTemplate.java
│ ├── ExceptionMessages.java
│ ├── HttpKeys.java
│ ├── HttpResponseCodes.java
│ ├── HttpResponseMessages.java
│ └── ScanMailTemplate.java
│ ├── configuration
│ ├── ClientConfiguration.java
│ ├── FileConfiguration.java
│ ├── GitConfiguration.java
│ ├── JackhammerConfiguration.java
│ ├── JwtConfiguration.java
│ ├── MarathonConfiguration.java
│ ├── S3Configuration.java
│ ├── ScanMangerConfiguration.java
│ ├── ThreadPoolConfiguration.java
│ ├── ToolManagerConfiguration.java
│ └── WebSocketsConfiguration.java
│ ├── controllers
│ ├── ActionsController.java
│ ├── AnalyticsController.java
│ ├── ApplicationsController.java
│ ├── BaseController.java
│ ├── CommentsController.java
│ ├── DashboardsController.java
│ ├── DefaultRolesController.java
│ ├── FiltersController.java
│ ├── FindingsController.java
│ ├── GitController.java
│ ├── GroupsController.java
│ ├── HardcodeSecretsController.java
│ ├── JchTasksController.java
│ ├── JiraDetailsController.java
│ ├── LanguagesController.java
│ ├── PermissionsController.java
│ ├── ReposController.java
│ ├── ResetPasswordController.java
│ ├── RolesController.java
│ ├── SMTPDetailsController.java
│ ├── ScanTypesController.java
│ ├── ScansController.java
│ ├── ScheduleTypesController.java
│ ├── SeverityLevelsController.java
│ ├── TagsController.java
│ ├── TasksController.java
│ ├── ToolsController.java
│ ├── UploadsController.java
│ ├── UserAccountsController.java
│ └── UsersController.java
│ ├── db
│ ├── ActionDAO.java
│ ├── AnalyticsDAO.java
│ ├── ApplicationDAO.java
│ ├── BranchDAO.java
│ ├── CommentDAO.java
│ ├── CrudDAO.java
│ ├── DashboardDAO.java
│ ├── DefaultRoleDAO.java
│ ├── FilterDAO.java
│ ├── FindingDAO.java
│ ├── FindingTagDAO.java
│ ├── GitDAO.java
│ ├── GroupDAO.java
│ ├── GroupDAOJdbi.java
│ ├── GroupRoleDAO.java
│ ├── GroupUserDAO.java
│ ├── HardcodeSecretDAO.java
│ ├── JiraDetailDAO.java
│ ├── JwtTokenDAO.java
│ ├── LanguageDAO.java
│ ├── OwnerTypeDAO.java
│ ├── PermissionDAO.java
│ ├── PermissionRoleDAO.java
│ ├── RepoDAO.java
│ ├── RoleDAO.java
│ ├── RoleDAOJdbi.java
│ ├── RoleTaskDAO.java
│ ├── RoleUserDAO.java
│ ├── SMTPDetailDAO.java
│ ├── ScanDAO.java
│ ├── ScanToolDAO.java
│ ├── ScanTypeDAO.java
│ ├── ScheduleTypeDAO.java
│ ├── SeverityLevelDAO.java
│ ├── TagDAO.java
│ ├── TagDAOJdbi.java
│ ├── TaskDAO.java
│ ├── ToolDAO.java
│ ├── ToolInstanceDAO.java
│ ├── UploadDAO.java
│ ├── UserDAO.java
│ └── UserDAOJdbi.java
│ ├── enums
│ ├── Handler.java
│ └── Severities.java
│ ├── exceptions
│ ├── AbstractException.java
│ ├── DBConfigIntializationRequired.java
│ ├── DataServiceNotFoundException.java
│ ├── GitCloneException.java
│ ├── HandlerNotFoundException.java
│ ├── InternalException.java
│ ├── InvalidApplicationUrlException.java
│ ├── InvalidHostException.java
│ ├── InvalidSmtpHost.java
│ ├── InvalidTokenException.java
│ ├── InvalidcredentialException.java
│ ├── MarathonNotRunning.java
│ ├── OperationFailedException.java
│ ├── TempDirCreationException.java
│ ├── UserNotFoundException.java
│ ├── ValidationFailedException.java
│ ├── WritingFileException.java
│ └── handlers
│ │ ├── AbstractExceptionHandler.java
│ │ └── ExceptionHandler.java
│ ├── filters
│ ├── AuthenticationFilter.java
│ ├── AuthorizationFilter.java
│ └── CORSFilter.java
│ ├── git
│ └── manager
│ │ ├── GitPooler.java
│ │ └── ReposPuller.java
│ ├── handler
│ ├── AbstractHandler.java
│ ├── ActionsHandler.java
│ ├── AnalyticsHandler.java
│ ├── ApplicationsHandler.java
│ ├── ChangePasswordHandler.java
│ ├── CommentsHandler.java
│ ├── DashboardsHandler.java
│ ├── DefaultRolesHandler.java
│ ├── FiltersHandler.java
│ ├── FindingsHandler.java
│ ├── GitHandler.java
│ ├── GroupsHandler.java
│ ├── HardcodeSecretHandler.java
│ ├── JiraDetailsHandler.java
│ ├── LanguagesHandler.java
│ ├── PermissionsHandler.java
│ ├── ReposHandler.java
│ ├── ResetPasswordHandler.java
│ ├── RolesHandler.java
│ ├── SMTPDetailsHandler.java
│ ├── ScanTypesHandler.java
│ ├── ScansHandler.java
│ ├── ScheduleTypesHandler.java
│ ├── SeverityLevelsHandler.java
│ ├── TagsHandler.java
│ ├── TasksHandler.java
│ ├── ToolsHandler.java
│ ├── UploadsHandler.java
│ ├── UserAccountsHandler.java
│ ├── UsersHandler.java
│ └── factories
│ │ └── HandlerFactory.java
│ ├── models
│ ├── AbstractModel.java
│ ├── AbstractResponse.java
│ ├── Action.java
│ ├── Analytics.java
│ ├── Application.java
│ ├── Branch.java
│ ├── Command.java
│ ├── Comment.java
│ ├── Container.java
│ ├── Dashboard.java
│ ├── DefaultRole.java
│ ├── Docker.java
│ ├── ErrorResponseModel.java
│ ├── ExecutiveDashboard.java
│ ├── Filter.java
│ ├── Finding.java
│ ├── FindingTag.java
│ ├── Git.java
│ ├── GitGroup.java
│ ├── GitHubGroup.java
│ ├── GitHubProject.java
│ ├── GitLabGroup.java
│ ├── GitLabProject.java
│ ├── GitNamespace.java
│ ├── GitOwner.java
│ ├── GitPermission.java
│ ├── GitProject.java
│ ├── Group.java
│ ├── GroupRole.java
│ ├── GroupUser.java
│ ├── HardcodeSecret.java
│ ├── HealthCheck.java
│ ├── JiraDetail.java
│ ├── JiraField.java
│ ├── JiraIssue.java
│ ├── JiraIssueType.java
│ ├── JiraProject.java
│ ├── JwtToken.java
│ ├── Language.java
│ ├── MarathonModel.java
│ ├── MobileScanRequest.java
│ ├── NotificationMails.java
│ ├── OwnerType.java
│ ├── PagedResponse.java
│ ├── Permission.java
│ ├── PermissionRole.java
│ ├── PortMapping.java
│ ├── Repo.java
│ ├── RepoToolResult.java
│ ├── Role.java
│ ├── RoleTask.java
│ ├── RoleUser.java
│ ├── SMTPDetail.java
│ ├── Scan.java
│ ├── ScanTool.java
│ ├── ScanType.java
│ ├── ScanTypeCount.java
│ ├── ScheduleType.java
│ ├── SeverityCount.java
│ ├── SeverityCountChart.java
│ ├── SeverityLevel.java
│ ├── SuccessResponseModel.java
│ ├── Tag.java
│ ├── Task.java
│ ├── Tool.java
│ ├── ToolInstance.java
│ ├── ToolManifest.java
│ ├── TopVulnerabilityRepo.java
│ ├── TopVulnerableApplication.java
│ ├── TopVulnerableRepo.java
│ ├── TopVulnerableType.java
│ ├── Upload.java
│ ├── User.java
│ ├── UserResponse.java
│ ├── VulnerabilityTrend.java
│ ├── VulnerableType.java
│ └── mapper
│ │ ├── ActionMapper.java
│ │ ├── ApplicationMapper.java
│ │ ├── BranchMapper.java
│ │ ├── CommentMapper.java
│ │ ├── DefaultRoleMapper.java
│ │ ├── FindingMapper.java
│ │ ├── FindingTagMapper.java
│ │ ├── GitMapper.java
│ │ ├── GroupMapper.java
│ │ ├── GroupRoleMapper.java
│ │ ├── GroupUserMapper.java
│ │ ├── HardcodeSecretMapper.java
│ │ ├── JiraDetailMapper.java
│ │ ├── JwtTokenMapper.java
│ │ ├── LanguageMapper.java
│ │ ├── OwnerTypeMapper.java
│ │ ├── PermissionMapper.java
│ │ ├── RepoMapper.java
│ │ ├── RepoToolResultMapper.java
│ │ ├── RoleMapper.java
│ │ ├── RolePermissionMapper.java
│ │ ├── RoleTaskMapper.java
│ │ ├── RoleUserMapper.java
│ │ ├── SMTPDetailMapper.java
│ │ ├── ScanMapper.java
│ │ ├── ScanToolMapper.java
│ │ ├── ScanTypeMapper.java
│ │ ├── ScheduleTypeMapper.java
│ │ ├── SeverityCountChartMapper.java
│ │ ├── SeverityLevelMapper.java
│ │ ├── TagMapper.java
│ │ ├── TaskMapper.java
│ │ ├── ToolInstanceMapper.java
│ │ ├── ToolMapper.java
│ │ ├── TopVulnerabilityApplicationMapper.java
│ │ ├── TopVulnerabilityRepoMapper.java
│ │ ├── TopVulnerableTypeMapper.java
│ │ ├── UploadMapper.java
│ │ ├── UserMapper.java
│ │ ├── VulnerabilityTrendMapper.java
│ │ └── VulnerableTypeMapper.java
│ ├── response
│ └── builder
│ │ ├── AbstractResponseBuilder.java
│ │ ├── ActionResponseBuilder.java
│ │ ├── AnalyticsResponseBuilder.java
│ │ ├── ApplicationResponseBuilder.java
│ │ ├── ChangePasswordResponseBuilder.java
│ │ ├── CommentResponseBuilder.java
│ │ ├── DashboardResponseBuilder.java
│ │ ├── DefaultRoleResponseBuilder.java
│ │ ├── FindingResponseBuilder.java
│ │ ├── GitResponseBuilder.java
│ │ ├── GroupResponseBuilder.java
│ │ ├── HardcodeSecretResponseBuilder.java
│ │ ├── JiraDetailResponseBuilder.java
│ │ ├── LanguageResponseBuilder.java
│ │ ├── PermissionResponseBuilder.java
│ │ ├── RepoResponseBuilder.java
│ │ ├── ResetPasswordResponseBuilder.java
│ │ ├── RoleResponseBuilder.java
│ │ ├── SMTPDetailResponseBuilder.java
│ │ ├── ScanResponseBuilder.java
│ │ ├── ScanTypeResponseBuilder.java
│ │ ├── ScheduleTypeResponseBuilder.java
│ │ ├── SeverityLevelResponseBuilder.java
│ │ ├── TagResponseBuilder.java
│ │ ├── TaskResponseBuilder.java
│ │ ├── ToolResponseBuilder.java
│ │ ├── UploadResponseBuilder.java
│ │ ├── UserResponseBuilder.java
│ │ └── factories
│ │ └── ResponseBuilderFactory.java
│ ├── scan
│ └── manager
│ │ ├── ScanPicker.java
│ │ ├── ScanPooler.java
│ │ ├── ScheduledScanPicker.java
│ │ ├── ScheduledScanPooler.java
│ │ ├── WpScanSchedulerPicker.java
│ │ └── WpScanSchedulerPooler.java
│ ├── security
│ ├── AES.java
│ └── JwtSecurity.java
│ ├── service
│ ├── AbstractDataService.java
│ ├── ActionDataService.java
│ ├── AnalyticsDataService.java
│ ├── ApplicationDataService.java
│ ├── ChangePasswordDataService.java
│ ├── CommentDataService.java
│ ├── DashboardDataService.java
│ ├── DefaultRoleDataService.java
│ ├── FilterDataService.java
│ ├── FindingDataService.java
│ ├── GitDataService.java
│ ├── GroupDataService.java
│ ├── HardcodeSecretDataService.java
│ ├── JiraDetailDataService.java
│ ├── JwtDataService.java
│ ├── LanguageDataService.java
│ ├── PermissionDataService.java
│ ├── RepoDataService.java
│ ├── ResetPasswordDataService.java
│ ├── RoleDataService.java
│ ├── SMTPDetailDataService.java
│ ├── ScanDataService.java
│ ├── ScanTypeDataService.java
│ ├── ScheduleTypeDataService.java
│ ├── SeverityLevelDataService.java
│ ├── TagDataService.java
│ ├── TaskDataService.java
│ ├── ToolDataService.java
│ ├── UploadDataService.java
│ ├── UserDataService.java
│ └── factories
│ │ └── DataServiceBuilderFactory.java
│ ├── tool
│ └── interfaces
│ │ ├── container
│ │ └── manager
│ │ │ ├── ActiveToolInstanceHealthCheck.java
│ │ │ ├── ActiveToolInstanceManager.java
│ │ │ ├── AutoScalingManager.java
│ │ │ ├── AutoScalingTool.java
│ │ │ ├── DockerContainer.java
│ │ │ ├── DockerHealthCheck.java
│ │ │ ├── HangedToolInstanceCheck.java
│ │ │ ├── HangedToolInstanceManager.java
│ │ │ └── MarathonClientManager.java
│ │ ├── request
│ │ ├── ScanRequest.java
│ │ └── ScanRequestEncoder.java
│ │ ├── response
│ │ ├── ScanResponse.java
│ │ ├── ScanResponseDecoder.java
│ │ └── ToolResponse.java
│ │ └── sdk
│ │ └── bridge
│ │ └── SdkCommunicator.java
│ ├── utilities
│ ├── DockerUtil.java
│ ├── EmailOperations.java
│ ├── FileOperations.java
│ ├── GitUtil.java
│ ├── JiraClient.java
│ ├── ScanUtil.java
│ └── ToolUtil.java
│ └── validations
│ ├── AbstractValidator.java
│ ├── ChangePasswordValidator.java
│ ├── DefaultRoleValidator.java
│ ├── GitValidator.java
│ ├── GroupValidator.java
│ ├── HardcodeSecretValidator.java
│ ├── JiraDetailValidator.java
│ ├── PermissionValidator.java
│ ├── RepoValidator.java
│ ├── ResetPasswordValidator.java
│ ├── RoleValidator.java
│ ├── SMTPDetailValidator.java
│ ├── ScanTypeValidator.java
│ ├── ScanValidator.java
│ ├── SchedulTypeValidator.java
│ ├── SeverityLevelValidator.java
│ ├── ToolValidator.java
│ ├── UserValidator.java
│ └── factories
│ └── ValidatorBuilderFactory.java
└── test
└── java
└── com
└── olacabs
└── jackhammer
└── AppTest.java
/.maven.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 | ossrh
7 | ${env.SONATYPE_USERNAME}
8 | ${env.SONATYPE_PASSWORD}
9 |
10 |
11 |
12 |
13 |
14 | ossrh
15 |
16 | true
17 |
18 |
19 | ${env.GPG_EXECUTABLE}
20 | ${env.GPG_PASSPHRASE}
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: java
2 | install: mvn clean install -DskipTests=true -Dgpg.skip -Dmaven.javadoc.skip=true -B -V
3 | jdk:
4 | - openjdk8
5 | branches:
6 | only:
7 | - jch-v2
8 | deploy:
9 | provider: script
10 | script: "cp .maven.xml $HOME/.m2/settings.xml && mvn deploy"
11 | skip_cleanup: true
12 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:18.04
2 |
3 | RUN rm -rf /var/lib/apt/lists/* && apt-get clean && apt-get update \
4 | && apt-get install -y --no-install-recommends curl ca-certificates \
5 | && apt-get install -y --no-install-recommends git \
6 | && apt-get install -y --no-install-recommends openjdk-8-jdk \
7 | && apt-get install -y --no-install-recommends maven \
8 | && rm -rf /var/lib/apt/lists/*
9 |
10 | #RUN apt-get update
11 | #RUN apt-get install -y openjdk-8-jdk
12 |
13 | #RUN apt-get -y update
14 | #RUN apt-get install -y maven
15 | RUN apt-get update -qq && apt-get install -qqy \
16 | apt-transport-https \
17 | ca-certificates \
18 | curl \
19 | lxc \
20 | iptables
21 | RUN curl -sSL https://get.docker.com/ | sh
22 | RUN mkdir -p /home/src/jch_server
23 | ENV WORKSPACE /home/src/jch_server
24 | WORKDIR $WORKSPACE
25 | COPY . /home/src/jch_server/
26 | RUN mvn clean install
27 | EXPOSE 8080
28 | CMD java -jar -Xms500m -Xmx2920m $WORKSPACE/target/jch-server.jar server config.yml
29 |
--------------------------------------------------------------------------------
/config.yml:
--------------------------------------------------------------------------------
1 | server:
2 | type: simple
3 | applicationContextPath: /
4 | connector:
5 | type: http
6 | port: 8080
7 | swagger:
8 | resourcePackage: com.olacabs.jackhammer.controllers
9 | database:
10 | driverClass: com.mysql.jdbc.Driver
11 | user: jch
12 | password: jch
13 | url: jdbc:mysql://mysqldb:3306/jackhammer
14 | logging:
15 | level: INFO
16 | jwtConfiguration:
17 | tokenExpirationTime: 60 # Number of minutes
18 | refreshTokenExpTime: 60 # Minutes
19 | tokenSigningKey: fgcahblofbemojbccicfnnggf
20 | tokenIssuer: jackhammer
21 | scanManagerConfiguration:
22 | threadPoolSize: 5 # 5 threads
23 | initialDelay: 60 # 30 seconds delay on startup
24 | period: 60 #seconds
25 | alertMails:
26 | wpScanAlerts: true
27 | webScanAlerts: false
28 | staticCodeScanAlerts: false
29 | hardcodeSecretScanAlerts: false
30 | networkScanAlerts: false
31 | mobileScanAlerts: false
32 | toolManagerConfiguration:
33 | threadPoolSize: 5 # 5 threads
34 | initialDelay: 60 # 30 seconds delay on startup
35 | period: 60 #seconds
36 | enableAutoScaling: true
37 | gitConfiguration:
38 | threadPoolSize: 5 # 5 threads
39 | initialDelay: 0 # 0 days delay on startup
40 | period: 1 #one day
41 | internalUrl:
42 | externalUrl:
43 | marathonConfiguration:
44 | endpoint: http://marathon:8080
45 | jchAppId: orc/jch-auth
46 | fileConfiguration:
47 | targetDirectory: uploads
48 | toolsDir: tools
49 | fileLimitSize: 1
50 | s3Configuration:
51 | accessKey:
52 | secretKey:
53 | bucketName:
54 | region:
55 | clientConfiguration:
56 | clientUrl: http://localhost:3004
57 |
--------------------------------------------------------------------------------
/docker-build.sh:
--------------------------------------------------------------------------------
1 | if [ $# -eq 0 ]; then
2 | echo "Building project with out marathon configuraiton..."
3 | docker-compose -f docker-compose-with-no-marathon.yml build
4 | docker-compose -f docker-compose-with-no-marathon.yml up -d
5 | else
6 | echo "Building project with marathon configuraiton..."
7 | docker-compose -f docker-compose-with-marathon.yml build
8 | docker-compose -f docker-compose-with-marathon.yml up -d
9 | fi
10 |
--------------------------------------------------------------------------------
/docker-compose-with-no-marathon.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 | volumes:
3 | # We'll define a volume that will store the data from the mysql databases:
4 | mysql-data:
5 | driver: local
6 | services:
7 | mysqldb:
8 | image: mysql/mysql-server:5.7
9 | container_name: jackhammer-db
10 | environment:
11 | MYSQL_ROOT_PASSWORD: root
12 | MYSQL_USER: jch
13 | MYSQL_PASSWORD: jch
14 | MYSQL_DATABASE: jackhammer
15 | ports:
16 | - "3306:3306"
17 | networks:
18 | - jch_net
19 | volumes:
20 | - mysql-data:/var/lib/mysql
21 | - ./dump.sql:/docker-entrypoint-initdb.d/dump.sql
22 | restart: always
23 | jch-server:
24 | build: .
25 | ports:
26 | - "8081:8080"
27 | depends_on:
28 | - mysqldb
29 | links:
30 | - mysqldb
31 | networks:
32 | - jch_net
33 | environment:
34 | ENABLED_MARATHON: 'false'
35 | volumes:
36 | - /var/run/docker.sock:/var/run/docker.sock
37 | jch-client:
38 | image: jackhammer/jackhammer-client
39 | ports:
40 | - "5005:8080"
41 | links:
42 | - jch-server:jch-server
43 | depends_on:
44 | - jch-server
45 | networks:
46 | - jch_net
47 | networks:
48 | jch_net:
49 | driver: bridge
50 | ipam:
51 | driver: default
52 | config:
53 | -
54 | subnet: 172.16.121.0/24
55 |
--------------------------------------------------------------------------------
/payloads/andro.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/andro",
3 | "cpus": 1,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/andro-scan-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | {
14 | "containerPort": 8080,
15 | "hostPort": 0,
16 | "protocol": "tcp"
17 | }
18 | ]
19 | }
20 | },
21 | "mem": 4096,
22 | "healthChecks": [
23 | {
24 | "protocol": "COMMAND",
25 | "command": {
26 | "value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"
27 | },
28 | "gracePeriodSeconds": 300,
29 | "intervalSeconds": 60,
30 | "timeoutSeconds": 20,
31 | "maxConsecutiveFailures": 3,
32 | "ignoreHttp1xx": false
33 | }
34 | ],
35 | "env": {
36 | "SUPPORTED_PLATFORM": "Mobile",
37 | "MAX_ALLOWED_SCANS": "5",
38 | "S3_ACCESS_KEY": "S3_ACCESS_KEY",
39 | "S3_SECRET_KEY": "S3_SECRET_KEY",
40 | "S3_BUCKET": "your-s3-bucket",
41 | "S3_REGION": "bucket-region",
42 | "localSetup": "true"
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/payloads/arachni.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/arachni",
3 | "cpus": 4.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/arachni-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 6144,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "Web",
29 | "MAX_ALLOWED_SCANS": "4",
30 | "localSetup": "true"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/payloads/bandit.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/bandit",
3 | "cpus": 4.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/bandit-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 4096,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "Python",
29 | "MAX_ALLOWED_SCANS": "4",
30 | "localSetup": "true"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/payloads/brakeman.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/brakeman",
3 | "cpus": 1.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/brakeman-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 2048,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "Ruby",
29 | "MAX_ALLOWED_SCANS": "5",
30 | "localSetup": "true"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/payloads/bundle-audit.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/bundle-audit",
3 | "cpus": 1.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/bundle-audit-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 2048,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "Ruby",
29 | "MAX_ALLOWED_SCANS": "5",
30 | "OsType": "windows",
31 | "localSetup": "true",
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/payloads/dawn-scanner.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/dawn-scanner",
3 | "cpus": 1.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/dawn-scanner-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 2048,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "Ruby",
29 | "MAX_ALLOWED_SCANS": "5",
30 | "localSetup": "true"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/payloads/exakat.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/exakat",
3 | "cpus": 1.0,
4 | "instances": 1,
5 | "initialInstances": 1,
6 | "minInstances": 0,
7 | "maxInstances": 2,
8 | "container": {
9 | "type": "DOCKER",
10 | "docker": {
11 | "image": "jackhammer/exakat-provider",
12 | "network": "BRIDGE",
13 | "portMappings": [
14 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
15 | ]
16 | }
17 | },
18 | "mem": 4096,
19 | "healthChecks": [{
20 | "protocol": "COMMAND",
21 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
22 | "gracePeriodSeconds": 300,
23 | "intervalSeconds": 60,
24 | "timeoutSeconds": 20,
25 | "maxConsecutiveFailures": 3,
26 | "ignoreHttp1xx": false
27 | }],
28 | "env": {
29 | "SUPPORTED_PLATFORM": "PHP",
30 | "MAX_ALLOWED_SCANS": "3",
31 | "localSetup": true
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/payloads/find-sec-bugs.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/findsecbugs",
3 | "cpus": 2.0,
4 | "initialInstances": 2,
5 | "minInstances": 1,
6 | "maxInstances": 3,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/findsecbug-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 4096,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "Java",
29 | "MAX_ALLOWED_SCANS": "1",
30 | "localSetup": "true"
31 | "MAX_HEAP_SIZE": 3000
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/payloads/nmap.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/nmap",
3 | "cpus": 1.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/nmap-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 2048,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "Network",
29 | "MAX_ALLOWED_SCANS": "5",
30 | "localSetup": "true"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/payloads/nsp.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/nsp",
3 | "cpus": 1.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/nsp-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 2048,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "JavaScript",
29 | "MAX_ALLOWED_SCANS": "5",
30 | "localSetup": "true"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/payloads/retire.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/retire",
3 | "cpus": 1.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/retirejs-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 2048,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "JavaScript",
29 | "MAX_ALLOWED_SCANS": "5",
30 | "localSetup": "true"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/payloads/truffle-hog.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/truffle-hog",
3 | "cpus": 1.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/truffle-hog-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [{
13 | "containerPort": 8080,
14 | "hostPort": 0,
15 | "protocol": "tcp"
16 | }]
17 | }
18 | },
19 | "mem": 4064,
20 | "healthChecks": [{
21 | "protocol": "COMMAND",
22 | "command": {
23 | "value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"
24 | },
25 | "gracePeriodSeconds": 300,
26 | "intervalSeconds": 60,
27 | "timeoutSeconds": 20,
28 | "maxConsecutiveFailures": 3,
29 | "ignoreHttp1xx": false
30 | }],
31 | "env": {
32 | "SUPPORTED_PLATFORM": "Hardcoded Secret",
33 | "MAX_ALLOWED_SCANS": "3",
34 | "localSetup": "true"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/payloads/wpscan.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/wpscan",
3 | "cpus": 1.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "jackhammer/wp-scan-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 2048,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "Wordpress",
29 | "MAX_ALLOWED_SCANS": "5",
30 | "localSetup": "true"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/payloads/xanitizer.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "jackhammer/xanitizer",
3 | "cpus": 4.0,
4 | "initialInstances": 1,
5 | "minInstances": 0,
6 | "maxInstances": 2,
7 | "container": {
8 | "type": "DOCKER",
9 | "docker": {
10 | "image": "localhost:5000/xanitizer-provider",
11 | "network": "BRIDGE",
12 | "portMappings": [
13 | { "containerPort": 8080, "hostPort": 0,"protocol": "tcp" }
14 | ]
15 | }
16 | },
17 | "mem": 4096,
18 | "healthChecks": [{
19 | "protocol": "COMMAND",
20 | "command": {"value": "curl -f -X GET http://127.0.0.1:8080/admin/healthcheck"},
21 | "gracePeriodSeconds": 300,
22 | "intervalSeconds": 60,
23 | "timeoutSeconds": 20,
24 | "maxConsecutiveFailures": 3,
25 | "ignoreHttp1xx": false
26 | }],
27 | "env": {
28 | "SUPPORTED_PLATFORM": "Java",
29 | "MAX_ALLOWED_SCANS": "3",
30 | "localSetup": true
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/application/DBFactory.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.application;
2 |
3 | import org.skife.jdbi.v2.DBI;
4 |
5 | import com.olacabs.jackhammer.exceptions.DBConfigIntializationRequired;
6 |
7 | public class DBFactory {
8 | private static DBI dbi;
9 | protected DBFactory(DBI dbi) {
10 | DBFactory.dbi = dbi;
11 | }
12 | public static DBI getDBI(){
13 | if(null != dbi){
14 | return dbi;
15 | }
16 | throw new DBConfigIntializationRequired();
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/common/HttpKeys.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.common;
2 |
3 | public class HttpKeys {
4 | public static final String ACCESS_TOKEN = "accessToken";
5 | public static final String AUTHORIZATION = "Authorization";
6 | }
7 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/common/HttpResponseCodes.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.common;
2 |
3 | public class HttpResponseCodes {
4 |
5 | public static final int BAD_REQUEST = 400;
6 | public static final int FORBIDDEN = 403;
7 | public static final int UNAUTHORIZED = 401;
8 | public static final int FAILED = 424;
9 | public static final int INTERNAL_ERROR = 500;
10 | public static int HTTP_RESPONSE_SUCCESS = 200;
11 | public static int HTTP_RESPONSE_LOCKED = 423;
12 | public static int HTTP_CONTINUE = 100;
13 | public static int REDIRECT = 302;
14 | public static int ACCEPTED = 202;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/common/HttpResponseMessages.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.common;
2 |
3 | public class HttpResponseMessages {
4 | public static final String FORBIDDEN = "Access Denied";
5 | public static final String LOCKED = "Resource Access locked";
6 | public static final String UNAUTHORIZED = "The Credential provided is not valid or expired";
7 | public static final String FAILED = "Request failed please retry";
8 | public static String HTTP_RESPONSE_SUCCESS = "The Request is completed Successfully";
9 | public static String HTTP_RESPONSE_REDIRECT = "The Request is completed Successfully but server requires the client redirect";
10 | public static String QUERY_FAILED = "The requested data is not available";
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/configuration/ClientConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.configuration;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | import javax.validation.constraints.NotNull;
6 |
7 | public class ClientConfiguration {
8 | @NotNull
9 | @JsonProperty
10 | private String clientUrl;
11 |
12 |
13 | public String getClientUrl() {
14 | return clientUrl;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/configuration/FileConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.configuration;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | import javax.validation.constraints.NotNull;
6 |
7 | public class FileConfiguration {
8 |
9 | @NotNull
10 | @JsonProperty
11 | private String targetDirectory;
12 |
13 | @NotNull
14 | @JsonProperty
15 | float fileLimitSize;
16 |
17 | @NotNull
18 | @JsonProperty
19 | String toolsDir;
20 |
21 | public String getTargetDirectory() {
22 | return targetDirectory;
23 | }
24 | public float getFileLimitSize() { return fileLimitSize;}
25 | public String getToolsDir() { return toolsDir;}
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/configuration/GitConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.configuration;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | import javax.validation.constraints.NotNull;
6 |
7 | public class GitConfiguration extends ThreadPoolConfiguration {
8 | @NotNull
9 | @JsonProperty
10 | private String internalUrl;
11 |
12 | @NotNull
13 | @JsonProperty
14 | private String externalUrl;
15 |
16 | public String getExternalUrl() {
17 | return externalUrl;
18 | }
19 |
20 | public String getInternalUrl() {
21 | return internalUrl;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/configuration/JwtConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.configuration;
2 |
3 | import javax.validation.constraints.NotNull;
4 |
5 | import com.fasterxml.jackson.annotation.JsonProperty;
6 |
7 | public class JwtConfiguration {
8 |
9 | @NotNull
10 | @JsonProperty
11 | private Integer tokenExpirationTime;
12 |
13 | @NotNull
14 | @JsonProperty
15 | private String tokenSigningKey;
16 |
17 | @NotNull
18 | @JsonProperty
19 | private Integer refreshTokenExpTime;
20 |
21 | @NotNull
22 | @JsonProperty
23 | private String tokenIssuer;
24 |
25 |
26 |
27 | public Integer getRefreshTokenExpTime() {
28 | return refreshTokenExpTime;
29 | }
30 |
31 | public Integer getTokenExpirationTime() {
32 | return tokenExpirationTime;
33 | }
34 |
35 | public String getTokenSigningKey() {
36 | return tokenSigningKey;
37 | }
38 |
39 | public String getTokenIssuer() {
40 | return tokenIssuer;
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/configuration/MarathonConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.configuration;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | import javax.validation.constraints.NotNull;
6 |
7 | public class MarathonConfiguration {
8 |
9 | @NotNull
10 | @JsonProperty
11 | private String endpoint;
12 |
13 | @NotNull
14 | @JsonProperty
15 | private String jchAppId;
16 |
17 | public String getEndpoint() {
18 | return endpoint;
19 | }
20 | public String getJchAppId() {return jchAppId; }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/configuration/S3Configuration.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.configuration;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | import javax.validation.constraints.NotNull;
6 |
7 | public class S3Configuration {
8 |
9 | @NotNull
10 | @JsonProperty
11 | private String accessKey;
12 |
13 | @NotNull
14 | @JsonProperty
15 | private String secretKey;
16 |
17 | @NotNull
18 | @JsonProperty
19 | private String bucketName;
20 |
21 | @NotNull
22 | @JsonProperty
23 | private String region;
24 |
25 |
26 | public String getAccessKey() {
27 | return accessKey;
28 | }
29 |
30 | public String getSecretKey() {
31 | return secretKey;
32 | }
33 |
34 | public String getBucketName() {
35 | return bucketName;
36 | }
37 |
38 | public String getRegion() {
39 | return region;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/configuration/ScanMangerConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.configuration;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | import javax.validation.constraints.NotNull;
6 |
7 | public class ScanMangerConfiguration extends ThreadPoolConfiguration {
8 |
9 | @NotNull
10 | @JsonProperty
11 | private String alertMails;
12 |
13 | @NotNull
14 | @JsonProperty
15 | private Boolean wpScanAlerts;
16 |
17 | @NotNull
18 | @JsonProperty
19 | private Boolean webScanAlerts;
20 |
21 | @NotNull
22 | @JsonProperty
23 | private Boolean staticCodeScanAlerts;
24 |
25 |
26 | @NotNull
27 | @JsonProperty
28 | private Boolean hardcodeSecretScanAlerts;
29 |
30 | @NotNull
31 | @JsonProperty
32 | private Boolean mobileScanAlerts;
33 |
34 |
35 | @NotNull
36 | @JsonProperty
37 | private Boolean networkScanAlerts;
38 |
39 | public String getAlertMails() {
40 | return alertMails;
41 | }
42 |
43 | public Boolean getStaticCodeScanAlerts() {
44 | return staticCodeScanAlerts;
45 | }
46 |
47 | public Boolean getHardcodeSecretScanAlerts() {
48 | return hardcodeSecretScanAlerts;
49 | }
50 |
51 | public Boolean getNetworkScanAlerts() {
52 | return networkScanAlerts;
53 | }
54 |
55 | public Boolean getMobileScanAlerts() {
56 | return mobileScanAlerts;
57 | }
58 |
59 | public Boolean getWebScanAlerts() {
60 | return webScanAlerts;
61 | }
62 |
63 | public Boolean getWpScanAlerts() {
64 | return wpScanAlerts;
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/configuration/ThreadPoolConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.configuration;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | import javax.validation.constraints.NotNull;
6 |
7 | public class ThreadPoolConfiguration {
8 |
9 | @NotNull
10 | @JsonProperty
11 | private Integer threadPoolSize;
12 |
13 | @NotNull
14 | @JsonProperty
15 | private Integer initialDelay;
16 |
17 | @NotNull
18 | @JsonProperty
19 | private Integer period;
20 |
21 | public Integer getThreadPoolSize() {
22 | return threadPoolSize;
23 | }
24 |
25 | public Integer getInitialDelay() {
26 | return initialDelay;
27 | }
28 |
29 | public Integer getPeriod() {
30 | return period;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/configuration/ToolManagerConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.configuration;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | import javax.validation.constraints.NotNull;
6 |
7 | public class ToolManagerConfiguration extends ThreadPoolConfiguration {
8 | @NotNull
9 | @JsonProperty
10 | private Boolean enableAutoScaling;
11 |
12 | public Boolean getEnableAutoScaling() {
13 | return enableAutoScaling;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/configuration/WebSocketsConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.configuration;
2 |
3 | import com.google.inject.Inject;
4 | import com.google.inject.Injector;
5 |
6 | import javax.websocket.server.ServerEndpointConfig.Configurator;
7 |
8 |
9 | public class WebSocketsConfiguration extends Configurator {
10 |
11 | @Inject
12 | private static Injector injector;
13 |
14 | @Override
15 | public T getEndpointInstance(Class endpointClass) throws InstantiationException {
16 | return injector.getInstance(endpointClass);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/controllers/AnalyticsController.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.controllers;
2 |
3 | import com.olacabs.jackhammer.common.HttpKeys;
4 | import com.olacabs.jackhammer.enums.Handler;
5 | import com.olacabs.jackhammer.models.Analytics;
6 | import lombok.extern.slf4j.Slf4j;
7 |
8 | import javax.validation.Valid;
9 | import javax.ws.rs.*;
10 | import javax.ws.rs.core.MediaType;
11 | import javax.ws.rs.core.Response;
12 |
13 | @Path("/api/v1/app/analytics")
14 | @Consumes(MediaType.APPLICATION_JSON)
15 | @Produces(MediaType.APPLICATION_JSON)
16 | @Slf4j
17 | public class AnalyticsController extends BaseController {
18 |
19 | @POST
20 | @Path("/view")
21 | public Response getAll(@Valid Analytics analytics,@HeaderParam(HttpKeys.AUTHORIZATION) String userToken) {
22 | try {
23 | analytics.setUserToken(userToken);
24 | return this.getHandlerFactory().getHandler(Handler.ANALYTICS_SERVICE).getAllRecords(analytics);
25 | } catch (Exception e){
26 | log.error("Error while getting analytics =>" , e);
27 | return this.getExceptionHandler().handle(e);
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/controllers/BaseController.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.controllers;
2 |
3 | import javax.ws.rs.Consumes;
4 | import javax.ws.rs.Produces;
5 | import javax.ws.rs.core.MediaType;
6 |
7 |
8 | import com.google.inject.Inject;
9 |
10 | import com.olacabs.jackhammer.exceptions.handlers.ExceptionHandler;
11 | import com.olacabs.jackhammer.handler.factories.HandlerFactory;
12 |
13 | import lombok.Data;
14 | import lombok.extern.slf4j.Slf4j;
15 |
16 | @Data
17 | @Produces(MediaType.APPLICATION_JSON)
18 | @Consumes(MediaType.APPLICATION_JSON)
19 | @Slf4j
20 | public abstract class BaseController {
21 |
22 | @Inject
23 | private HandlerFactory handlerFactory;
24 |
25 | @Inject
26 | private ExceptionHandler exceptionHandler;
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/controllers/FiltersController.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.controllers;
2 |
3 |
4 | import com.olacabs.jackhammer.common.HttpKeys;
5 | import com.olacabs.jackhammer.enums.Handler;
6 | import com.olacabs.jackhammer.models.Filter;
7 | import com.olacabs.jackhammer.models.Finding;
8 | import com.wordnik.swagger.annotations.Api;
9 | import lombok.extern.slf4j.Slf4j;
10 |
11 | import javax.validation.Valid;
12 | import javax.ws.rs.*;
13 | import javax.ws.rs.core.MediaType;
14 | import javax.ws.rs.core.Response;
15 |
16 | @Api
17 | @Path("/api/v1/app/filters")
18 | @Produces(MediaType.APPLICATION_JSON)
19 | @Consumes(MediaType.APPLICATION_JSON)
20 | @Slf4j
21 | public class FiltersController extends BaseController {
22 |
23 | @POST
24 | @Path("/list")
25 | public Response getAll(@Valid Filter filter,@HeaderParam(HttpKeys.AUTHORIZATION) String userToken) {
26 | try {
27 | filter.setUserToken(userToken);
28 | return this.getHandlerFactory().getHandler(Handler.FILTER_SERVICE).getAllRecords(filter);
29 | } catch (Exception e) {
30 | log.error("Error while getting filter results =>", e);
31 | return this.getExceptionHandler().handle(e);
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/ActionDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.Action;
4 | import com.olacabs.jackhammer.models.mapper.ActionMapper;
5 | import org.skife.jdbi.v2.sqlobject.*;
6 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
7 |
8 | import java.util.List;
9 |
10 | @RegisterMapper(ActionMapper.class)
11 | public interface ActionDAO extends CrudDAO {
12 | @SqlQuery("select * from actions")
13 | List getAll();
14 |
15 | @SqlQuery("select * from actions where id=:id")
16 | Action get(@Bind("id") long id);
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/BranchDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.Branch;
4 | import com.olacabs.jackhammer.models.mapper.BranchMapper;
5 | import org.skife.jdbi.v2.sqlobject.*;
6 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
7 |
8 | import java.util.List;
9 |
10 | @RegisterMapper(BranchMapper.class)
11 | public interface BranchDAO extends CrudDAO {
12 |
13 | @SqlUpdate("insert into branches(name,repoId) " +
14 | "values(:name,:userId,:groupId,:repoId,:branchId,:scanType)")
15 | @GetGeneratedKeys
16 | int insert(@BindBean Branch branch);
17 |
18 | @SqlQuery("select * from branches")
19 | List getAll();
20 |
21 | @SqlQuery("select * from branches where id=:id")
22 | Branch get(@Bind("id") long id);
23 |
24 | @SqlUpdate("delete from branches where id=:id")
25 | void delete(@Bind("id") long id);
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/CrudDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.AbstractModel;
4 |
5 | public interface CrudDAO {
6 |
7 | T get(long id);
8 |
9 | T save(T instance);
10 |
11 | void delete(long id);
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/DefaultRoleDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.DefaultRole;
4 | import com.olacabs.jackhammer.models.mapper.DefaultRoleMapper;
5 | import org.skife.jdbi.v2.sqlobject.BindBean;
6 | import org.skife.jdbi.v2.sqlobject.GetGeneratedKeys;
7 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
8 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
9 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
10 |
11 |
12 | @RegisterMapper(DefaultRoleMapper.class)
13 | public interface DefaultRoleDAO extends CrudDAO {
14 |
15 | @SqlUpdate("insert into defaultRole(roleId) " +
16 | "values(:roleId)")
17 | @GetGeneratedKeys
18 | int insert(@BindBean DefaultRole defaultRole);
19 |
20 | @SqlQuery("select * from defaultRole limit 1")
21 | DefaultRole get();
22 |
23 | @SqlUpdate("update defaultRole set roleId=:roleId")
24 | void update(@BindBean DefaultRole defaultRole);
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/FindingTagDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.FindingTag;
4 | import com.olacabs.jackhammer.models.mapper.FindingTagMapper;
5 | import org.skife.jdbi.v2.sqlobject.Bind;
6 | import org.skife.jdbi.v2.sqlobject.BindBean;
7 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
8 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
9 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
10 |
11 | import java.util.List;
12 |
13 |
14 | @RegisterMapper(FindingTagMapper.class)
15 | public interface FindingTagDAO {
16 |
17 | @SqlUpdate("insert into findingsTags (findingId, tagId) values (:ft.findingId, :ft.tagId)")
18 | long insert(@BindBean("ft") FindingTag findingTag);
19 |
20 | @SqlQuery("select * from findingsTags where findingId=:findingId and isDeleted=false")
21 | List findByFindingId(@Bind("findingId") long findingId);
22 |
23 | @SqlUpdate("update findingsTags set isDeleted=true where findingId = :ft.findingId and tagId = :ft.tagId")
24 | void delete(@BindBean("ft") FindingTag findingTag);
25 |
26 | @SqlUpdate("update findingsTags set isDeleted=true where findingId= :findingId")
27 | void deleteByFindingId(@Bind("findingId") long findingId);
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/GitDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.Git;
4 | import com.olacabs.jackhammer.models.mapper.GitMapper;
5 | import org.skife.jdbi.v2.sqlobject.*;
6 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
7 |
8 |
9 | @RegisterMapper(GitMapper.class)
10 | public interface GitDAO extends CrudDAO {
11 |
12 | @SqlUpdate("insert into git(userName,gitEndPoint,apiAccessToken,gitType,organizationName) " +
13 | "values(:userName,:gitEndPoint,:apiAccessToken,:gitType,:organizationName)")
14 | @GetGeneratedKeys
15 | int insert(@BindBean Git git);
16 |
17 | @SqlQuery("select * from git limit 1")
18 | Git get();
19 |
20 | @SqlUpdate("update git set gitType=:gitType,organizationName=:organizationName," +
21 | "userName=:userName,gitEndPoint=:gitEndPoint,apiAccessToken=:apiAccessToken")
22 | void update(@BindBean Git git);
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/GroupRoleDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.GroupRole;
4 | import com.olacabs.jackhammer.models.mapper.GroupRoleMapper;
5 | import org.skife.jdbi.v2.sqlobject.Bind;
6 | import org.skife.jdbi.v2.sqlobject.BindBean;
7 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
8 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
9 |
10 | import java.util.List;
11 |
12 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
13 |
14 | @RegisterMapper(GroupRoleMapper.class)
15 | public interface GroupRoleDAO {
16 |
17 | @SqlUpdate("insert into groupsRoles (groupId, roleId) values (:rp.groupId, :rp.roleId)")
18 | long insert(@BindBean("rp") GroupRole groupRole);
19 |
20 | @SqlQuery("select * from groupsRoles where groupId=:groupId and isDeleted=true")
21 | List findByGroupId(@Bind("groupId") long groupId);
22 |
23 | @SqlUpdate("update groupsRoles set isDeleted=true where roleId = :g.roleId and groupId = :g.groupId")
24 | void delete(@BindBean("g") GroupRole groupRole);
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/GroupUserDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.GroupUser;
4 | import com.olacabs.jackhammer.models.mapper.GroupUserMapper;
5 | import org.skife.jdbi.v2.sqlobject.Bind;
6 | import org.skife.jdbi.v2.sqlobject.BindBean;
7 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
8 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
9 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
10 |
11 | import java.util.List;
12 |
13 |
14 | @RegisterMapper(GroupUserMapper.class)
15 | public interface GroupUserDAO {
16 |
17 | @SqlUpdate("insert into groupsUsers (groupId, userId) values (:gu.groupId, :gu.userId)")
18 | long insert(@BindBean("gu") GroupUser groupUser);
19 |
20 | @SqlQuery("select * from groupsUsers where userId=:userId and isDeleted=false")
21 | List findByUserId(@Bind("userId") long userId);
22 |
23 | @SqlUpdate("update groupsUsers set isDeleted=true where groupId = :gu.groupId and userId = :gu.userId")
24 | void delete(@BindBean("gu") GroupUser groupUser);
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/HardcodeSecretDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.HardcodeSecret;
4 | import com.olacabs.jackhammer.models.mapper.HardcodeSecretMapper;
5 | import org.skife.jdbi.v2.sqlobject.BindBean;
6 | import org.skife.jdbi.v2.sqlobject.GetGeneratedKeys;
7 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
8 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
9 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
10 |
11 |
12 | @RegisterMapper(HardcodeSecretMapper.class)
13 | public interface HardcodeSecretDAO extends CrudDAO {
14 |
15 | @SqlUpdate("insert into hardcodeSecrets(commitsDepth,commitsStartDate,regex) " +
16 | "values(:commitsDepth,:commitsStartDate,:regex)")
17 | @GetGeneratedKeys
18 | int insert(@BindBean HardcodeSecret hardcodeSecret);
19 |
20 | @SqlQuery("select * from hardcodeSecrets limit 1")
21 | HardcodeSecret get();
22 |
23 | @SqlUpdate("update hardcodeSecrets set commitsDepth=:commitsDepth,commitsStartDate=:commitsStartDate,regex=:regex")
24 | void update(@BindBean HardcodeSecret hardcodeSecret);
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/JiraDetailDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.JiraDetail;
4 |
5 | import com.olacabs.jackhammer.models.mapper.JiraDetailMapper;
6 | import org.skife.jdbi.v2.sqlobject.BindBean;
7 | import org.skife.jdbi.v2.sqlobject.GetGeneratedKeys;
8 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
9 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
10 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
11 |
12 | @RegisterMapper(JiraDetailMapper.class)
13 | public interface JiraDetailDAO extends CrudDAO {
14 |
15 | @SqlUpdate("insert into jira(host,userName,password,defaultProject) " +
16 | "values(:host,:userName,:password,:defaultProject)")
17 | @GetGeneratedKeys
18 | int insert(@BindBean JiraDetail jiraDetail);
19 |
20 | @SqlQuery("select * from jira limit 1")
21 | JiraDetail get();
22 |
23 | @SqlUpdate("update jira set host=:host,userName=:userName," +
24 | "password=:password,defaultProject=:defaultProject")
25 | void update(@BindBean JiraDetail jiraDetail);
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/JwtTokenDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.JwtToken;
4 |
5 | import com.olacabs.jackhammer.models.mapper.JwtTokenMapper;
6 | import org.skife.jdbi.v2.sqlobject.*;
7 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
8 |
9 |
10 | @RegisterMapper(JwtTokenMapper.class)
11 | public interface JwtTokenDAO extends CrudDAO {
12 |
13 | @SqlUpdate("insert into jwtTokens (id,tokenValidFrom,tokenValidUntil,userId,createdAt,updatedAt,deleted,version) " +
14 | "values (:id, :tokenValidFrom,:tokenValidUntil,:userId,:createdAt,:updatedAt,:deleted,:version)")
15 | @GetGeneratedKeys
16 | int insert(@BindBean JwtToken jwtToken);
17 |
18 | @SqlQuery("select * from jwttokens where id=:id")
19 | JwtToken get(@Bind("id") long id);
20 |
21 | @SqlUpdate("update jwtTokens set deleted=true where userId=:userId")
22 | void delete(@Bind("userId") long userId);
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/OwnerTypeDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.OwnerType;
4 | import com.olacabs.jackhammer.models.mapper.OwnerTypeMapper;
5 | import org.skife.jdbi.v2.sqlobject.Bind;
6 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
7 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
8 |
9 | import java.util.List;
10 |
11 | @RegisterMapper(OwnerTypeMapper.class)
12 | public interface OwnerTypeDAO extends CrudDAO {
13 | @SqlQuery("select * from ownerTypes")
14 | List getAll();
15 |
16 | @SqlQuery("select * from ownerTypes where id=:id")
17 | OwnerType get(@Bind("id") long id);
18 |
19 |
20 | @SqlQuery("select * from ownerTypes where name=:name")
21 | OwnerType getByName(@Bind("name") String name);
22 |
23 | @SqlQuery("select * from ownerTypes where isDefault=true")
24 | OwnerType getDefaultOwnerType();
25 |
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/PermissionRoleDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.PermissionRole;
4 | import com.olacabs.jackhammer.models.mapper.RolePermissionMapper;
5 | import org.skife.jdbi.v2.sqlobject.Bind;
6 | import org.skife.jdbi.v2.sqlobject.BindBean;
7 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
8 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
9 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
10 |
11 | import java.util.List;
12 |
13 |
14 | @RegisterMapper(RolePermissionMapper.class)
15 | public interface PermissionRoleDAO {
16 |
17 | @SqlUpdate("insert into permissionsRoles (roleId, permissionId) values (:rp.roleId, :rp.permissionId)")
18 | long insert(@BindBean("rp") PermissionRole rolePermission);
19 |
20 | @SqlQuery("select * from permissionsRoles where roleId=:roleId")
21 | List findByRoleId(@Bind("roleId") long roleId);
22 |
23 | @SqlUpdate("delete from permissionsRoles where roleId = :rp.roleId and permissionId = :rp.permissionId")
24 | void delete(@BindBean("rp") PermissionRole rolePermission);
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/RoleTaskDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.RoleTask;
4 | import com.olacabs.jackhammer.models.mapper.RoleTaskMapper;
5 | import org.skife.jdbi.v2.sqlobject.Bind;
6 | import org.skife.jdbi.v2.sqlobject.BindBean;
7 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
8 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
9 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
10 |
11 | import java.util.List;
12 |
13 | @RegisterMapper(RoleTaskMapper.class)
14 | public interface RoleTaskDAO {
15 | @SqlQuery("select * from rolesTasks where roleId=:roleId and isDeleted=false")
16 | List findByRoleId(@Bind("roleId") long roleId);
17 |
18 | @SqlUpdate("insert into rolesTasks(roleId,taskId) values(:rt.roleId,:rt.taskId)")
19 | void insert(@BindBean("rt") RoleTask roleTask);
20 |
21 | @SqlUpdate("update rolesTasks set isDeleted=true where roleId = :rt.roleId and taskId = :rt.taskId")
22 | void delete(@BindBean("rt") RoleTask roleTask);
23 | }
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/RoleUserDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.RoleUser;
4 | import com.olacabs.jackhammer.models.mapper.RoleUserMapper;
5 | import org.skife.jdbi.v2.sqlobject.Bind;
6 | import org.skife.jdbi.v2.sqlobject.BindBean;
7 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
8 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
9 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
10 |
11 | import java.util.List;
12 |
13 | @RegisterMapper(RoleUserMapper.class)
14 | public interface RoleUserDAO {
15 |
16 | @SqlUpdate("insert into rolesUsers(roleId,userId) values(:roleId,:userId)")
17 | int insert(@BindBean RoleUser roleUser);
18 |
19 | @SqlQuery("select * from rolesUsers where userId=:userId and isDeleted=false")
20 | List findByUserId(@Bind("userId") long userId);
21 |
22 | @SqlUpdate("update rolesUsers set isDeleted=true where roleId = :ru.roleId and userId = :ru.userId")
23 | void delete(@BindBean("ru") RoleUser roleUser);
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/SMTPDetailDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.SMTPDetail;
4 | import com.olacabs.jackhammer.models.mapper.SMTPDetailMapper;
5 |
6 | import org.skife.jdbi.v2.sqlobject.BindBean;
7 | import org.skife.jdbi.v2.sqlobject.GetGeneratedKeys;
8 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
9 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
10 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
11 |
12 |
13 | @RegisterMapper(SMTPDetailMapper.class)
14 | public interface SMTPDetailDAO extends CrudDAO {
15 |
16 | @SqlUpdate("insert into smtp(applicationUrl,smtpHost,smtpUserName,smtpPassword,smtpPort) " +
17 | "values(:applicationUrl,:smtpHost,:smtpUserName,:smtpPassword,:smtpPort)")
18 | @GetGeneratedKeys
19 | int insert(@BindBean SMTPDetail smtpDetail);
20 |
21 | @SqlQuery("select * from smtp limit 1")
22 | SMTPDetail get();
23 |
24 | @SqlUpdate("update smtp set applicationUrl=:applicationUrl,smtpHost=:smtpHost," +
25 | "smtpUserName=:smtpUserName,smtpPassword=:smtpPassword,smtpPort=:smtpPort")
26 | void update(@BindBean SMTPDetail smtpDetail);
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/ScheduleTypeDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.ScheduleType;
4 | import com.olacabs.jackhammer.models.mapper.ScheduleTypeMapper;
5 | import org.skife.jdbi.v2.sqlobject.*;
6 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
7 |
8 | import java.util.List;
9 |
10 |
11 | @RegisterMapper(ScheduleTypeMapper.class)
12 | public interface ScheduleTypeDAO extends CrudDAO {
13 |
14 | @SqlUpdate("insert into scheduleTypes(id,name,days) " +
15 | "values(:id, :name,:days)")
16 | @GetGeneratedKeys
17 | int insert(@BindBean ScheduleType scheduleType);
18 |
19 | @SqlQuery("select * from scheduleTypes")
20 | List getAll();
21 |
22 | @SqlQuery("select * from scheduleTypes where name=:name")
23 | ScheduleType findScheduleByName(@Bind("name") String name);
24 |
25 | @SqlUpdate("delete from scheduleTypes where id=:id")
26 | void update(@BindBean ScheduleType scheduleType);
27 |
28 | @SqlUpdate("delete from scheduleTypes where id=:id")
29 | void delete(@Bind("id") long id);
30 |
31 | @SqlQuery("select * from scheduleTypes where id=:id")
32 | ScheduleType get(@Bind("id") long id);
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/SeverityLevelDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.SeverityLevel;
4 | import com.olacabs.jackhammer.models.mapper.SeverityLevelMapper;
5 | import org.skife.jdbi.v2.sqlobject.BindBean;
6 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
7 | import org.skife.jdbi.v2.sqlobject.SqlUpdate;
8 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
9 |
10 | import java.util.List;
11 |
12 |
13 | @RegisterMapper(SeverityLevelMapper.class)
14 | public interface SeverityLevelDAO extends CrudDAO {
15 |
16 | @SqlQuery("select * from severityLevels limit 1")
17 | SeverityLevel get();
18 |
19 |
20 | @SqlQuery("select * from severityLevels")
21 | List getAll();
22 |
23 | @SqlUpdate("update severityLevels set enabled=:enabled where id=:id")
24 | void updateSeverityStatus(@BindBean SeverityLevel severityLevel);
25 |
26 | @SqlUpdate("update severityLevels set threshHoldCount=:threshHoldCount,mailIds=:mailIds where name=:name")
27 | void updateSeverityMailConfig(@BindBean SeverityLevel severityLevel);
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/TagDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.Tag;
4 | import com.olacabs.jackhammer.models.mapper.TagMapper;
5 | import org.skife.jdbi.v2.sqlobject.*;
6 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
7 | import org.skife.jdbi.v2.sqlobject.stringtemplate.UseStringTemplate3StatementLocator;
8 |
9 | import java.util.List;
10 |
11 | @UseStringTemplate3StatementLocator
12 | @RegisterMapper(TagMapper.class)
13 | public interface TagDAO extends CrudDAO {
14 |
15 | @SqlUpdate("insert into tags(name,userId) " +
16 | "values(:name,:userId)")
17 | @GetGeneratedKeys
18 | int insert(@BindBean Tag tag);
19 |
20 | @SqlQuery("select * from tags order by createdAt")
21 | List getAll();
22 |
23 | @SqlQuery("select * from tags order by createdAt")
24 | List getFindingTags();
25 |
26 | @SqlQuery("select * from tags where id=:id")
27 | Tag get(@Bind("id") long id);
28 |
29 | @SqlQuery("select * from tags where name=:name")
30 | Tag findTagByName(@Bind("name") String name);
31 |
32 | @SqlUpdate("update roles set name=:name where id=:id ")
33 | void update(@BindBean Tag tag);
34 |
35 | @SqlUpdate("update tags set isDeleted=true where id=:id")
36 | void delete(@Bind("id") long id);
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/TagDAOJdbi.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | public class TagDAOJdbi {
4 | }
5 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/TaskDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.Task;
4 | import com.olacabs.jackhammer.models.mapper.TaskMapper;
5 | import org.apache.commons.lang3.StringUtils;
6 | import org.skife.jdbi.v2.sqlobject.Bind;
7 | import org.skife.jdbi.v2.sqlobject.SqlQuery;
8 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
9 |
10 | import java.util.List;
11 | import java.util.Set;
12 |
13 | @RegisterMapper(TaskMapper.class)
14 | public interface TaskDAO extends CrudDAO {
15 | @SqlQuery("select * from tasks where actionId=:actionId and parentId is null and hideFromUi=false order by id")
16 | List getParentTasks(@Bind("actionId") long actionId);
17 |
18 | @SqlQuery("select * from tasks where actionId=:actionId and parentId is null")
19 | List getRolesPageParentTasks(@Bind("actionId") long actionId);
20 |
21 | @SqlQuery("select * from tasks where parentId=:parentId")
22 | List getChildTasks(@Bind("parentId") long parentId);
23 |
24 | @SqlQuery("select * from tasks where id=:parentId")
25 | Task getParentTask(@Bind("parentId") long parentId);
26 |
27 | @SqlQuery("select * from tasks where id=:id")
28 | Task getTask(@Bind("id") long id);
29 |
30 | @SqlQuery("select * from tasks")
31 | List getAll();
32 |
33 | @SqlQuery("select * from tasks where accessToAll=true")
34 | List defaultTasks();
35 |
36 | @SqlQuery("select * from tasks where ownerTypeId=:ownerTypeId and name like concat('%', :name,'%')")
37 | Task getCurrentTask(@Bind("name") String name,@Bind("ownerTypeId") long ownerTypeId);
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/db/UploadDAO.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.db;
2 |
3 | import com.olacabs.jackhammer.models.Finding;
4 | import com.olacabs.jackhammer.models.Upload;
5 | import com.olacabs.jackhammer.models.mapper.UploadMapper;
6 | import org.skife.jdbi.v2.sqlobject.*;
7 | import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
8 |
9 | import java.util.List;
10 |
11 | @RegisterMapper(UploadMapper.class)
12 | public interface UploadDAO extends CrudDAO {
13 |
14 | @SqlUpdate("insert into uploads(name,userId,findingId) " +
15 | "values(:name,:userId,:findingId)")
16 | int insert(@BindBean Upload upload);
17 |
18 | @SqlQuery("select * from uploads where id=:id")
19 | Upload get(@Bind("id") long id);
20 |
21 | @SqlQuery("select * from uploads where findingId=:findingId and isDeleted=false")
22 | List getAll(@BindBean Upload upload);
23 |
24 | @SqlUpdate("update uploads set id=:id where id=:id")
25 | void update(@BindBean Finding finding);
26 |
27 |
28 | @SqlUpdate("update uploads set isDeleted=true where findingId=:findingId")
29 | void deleteFindingUploads(@Bind("findingId") long findingId);
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/enums/Handler.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.enums;
2 |
3 | public enum Handler {
4 | USER_ACCOUNT_SERVICE,
5 | CHANGE_PASSWORD_SERVICE,
6 | RESET_PASSWORD_SERVICE,
7 | USER_SERVICE,
8 | GROUP_SERVICE,
9 | JWT_SERVICE,
10 | ROLE_SERVICE,
11 | PERMISSION_SERVICE,
12 | REPO_SERVICE,
13 | SCAN_SERVICE,
14 | FINDING_SERVICE,
15 | SCHEDULE_TYPE_SERVICE,
16 | LANGUAGE_SERVICE,
17 | TOOL_SERVICE,
18 | COMMENT_SERVICE,
19 | TAG_SERVICE,
20 | UPLOAD_SERVICE,
21 | SCAN_TYPE_SERVICE,
22 | FILTER_SERVICE,
23 | ACTION_SERVICE,
24 | TASK_SERVICE,
25 | GIT_SERVICE,
26 | SMTP_SERVICE,
27 | JIRA_SERVICE,
28 | DEFAULT_ROLE_SERVICE,
29 | SEVERITY_LEVEL_SERVICE,
30 | HARD_CODE_SECRET_SERVICE,
31 | DASHBOARD_SERVICE,
32 | APPLICATION_SERVICE,
33 | ANALYTICS_SERVICE
34 | }
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/enums/Severities.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.enums;
2 |
3 | public enum Severities {
4 | CRITICAL,
5 | HIGH,
6 | MEDIUM,
7 | LOW,
8 | INFO
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/AbstractException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import lombok.Data;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | public class AbstractException extends Exception {
11 | private CustomErrorCodes code;
12 | public AbstractException(String message, Throwable t,CustomErrorCodes code) {
13 | super(message,t);
14 | this.code = code;
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/DBConfigIntializationRequired.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | public class DBConfigIntializationRequired extends RuntimeException {
4 | }
5 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/DataServiceNotFoundException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class DataServiceNotFoundException extends AbstractException {
6 | public DataServiceNotFoundException(String message, Throwable t, CustomErrorCodes code) {
7 | super(message, t, code);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/GitCloneException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class GitCloneException extends AbstractException {
6 |
7 | public GitCloneException(String message, Throwable t, CustomErrorCodes code) {
8 | super(message, t, code);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/HandlerNotFoundException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class HandlerNotFoundException extends AbstractException {
6 |
7 | public HandlerNotFoundException(String message, Throwable t, CustomErrorCodes code) {
8 | super(message, t, code);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/InternalException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class InternalException extends AbstractException {
6 |
7 | public InternalException(String message, Throwable t, CustomErrorCodes code) {
8 | super(message, t, code);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/InvalidApplicationUrlException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class InvalidApplicationUrlException extends AbstractException {
6 | public InvalidApplicationUrlException(String message, Throwable t, CustomErrorCodes code) {
7 | super(message, t, code);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/InvalidHostException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class InvalidHostException extends AbstractException {
6 | public InvalidHostException(String message, Throwable t, CustomErrorCodes code) {
7 | super(message, t, code);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/InvalidSmtpHost.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class InvalidSmtpHost extends AbstractException {
6 | public InvalidSmtpHost(String message, Throwable t, CustomErrorCodes code) {
7 | super(message, t, code);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/InvalidTokenException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class InvalidTokenException extends AbstractException {
6 |
7 | public InvalidTokenException(String message, Throwable t, CustomErrorCodes code) {
8 | super(message, t, code);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/InvalidcredentialException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class InvalidcredentialException extends AbstractException {
6 | public InvalidcredentialException(String message, Throwable t, CustomErrorCodes code) {
7 | super(message, t, code);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/MarathonNotRunning.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class MarathonNotRunning extends AbstractException {
6 | public MarathonNotRunning(String message, Throwable t, CustomErrorCodes code) {
7 | super(message, t, code);
8 | }
9 | }
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/OperationFailedException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class OperationFailedException extends AbstractException {
6 |
7 | public OperationFailedException(String message, Throwable t, CustomErrorCodes code) {
8 | super(message, t, code);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/TempDirCreationException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class TempDirCreationException extends AbstractException {
6 | public TempDirCreationException(String message, Throwable t, CustomErrorCodes code) {
7 | super(message, t, code);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/UserNotFoundException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class UserNotFoundException extends AbstractException {
6 | public UserNotFoundException(String message, Throwable t, CustomErrorCodes code) {
7 | super(message, t, code);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/ValidationFailedException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class ValidationFailedException extends AbstractException {
6 |
7 | public ValidationFailedException(String message, Throwable t, CustomErrorCodes code) {
8 | super(message, t, code);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/WritingFileException.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 |
5 | public class WritingFileException extends AbstractException {
6 | public WritingFileException(String message, Throwable t, CustomErrorCodes code) {
7 | super(message, t, code);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/handlers/AbstractExceptionHandler.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions.handlers;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.exceptions.AbstractException;
5 | import com.olacabs.jackhammer.models.ErrorResponseModel;
6 | import lombok.extern.slf4j.Slf4j;
7 |
8 | import javax.ws.rs.core.Response;
9 | @Slf4j
10 | public class AbstractExceptionHandler {
11 | public Response handle(AbstractException exception) {
12 | ErrorResponseModel model = new ErrorResponseModel();
13 | model.setErrorCode(exception.getCode());
14 | model.setMessage(exception.getCode().name());
15 | log.error("Unknown error...", exception);
16 | return Response.status(CustomErrorCodes.INTERNAL_ERROR.getValue()).entity(model).build();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/exceptions/handlers/ExceptionHandler.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.exceptions.handlers;
2 |
3 | import javax.ws.rs.core.Response;
4 |
5 | import lombok.extern.slf4j.Slf4j;
6 |
7 | import com.olacabs.jackhammer.models.ErrorResponseModel;
8 | import com.olacabs.jackhammer.common.CustomErrorCodes;
9 | import com.olacabs.jackhammer.common.ExceptionMessages;
10 |
11 | @Slf4j
12 | public class ExceptionHandler {
13 |
14 | public Response handle(Throwable exception) {
15 | ErrorResponseModel model = new ErrorResponseModel();
16 | model.setErrorCode(CustomErrorCodes.SERVICE_INTERNAL_EXCEPTION);
17 | model.setMessage(ExceptionMessages.INTERNAL_ERROR);
18 | log.error("Unknown error...", exception);
19 | return Response.status(CustomErrorCodes.INTERNAL_ERROR.getValue()).entity(model).build();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/git/manager/GitPooler.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.git.manager;
2 |
3 | import com.google.inject.Inject;
4 |
5 | import io.dropwizard.lifecycle.Managed;
6 |
7 | import lombok.extern.slf4j.Slf4j;
8 |
9 | import java.util.concurrent.ScheduledThreadPoolExecutor;
10 | import java.util.concurrent.TimeUnit;
11 |
12 | import com.olacabs.jackhammer.configuration.JackhammerConfiguration;
13 |
14 | @Slf4j
15 | public class GitPooler implements Managed {
16 |
17 | @Inject
18 | JackhammerConfiguration jackhammerConfiguration;
19 |
20 | @Inject
21 | ReposPuller reposPuller;
22 |
23 | public void start() throws Exception {
24 |
25 | //setting thread pool
26 | int threadPoolSize = jackhammerConfiguration.getGitConfiguration().getThreadPoolSize();
27 | int initialDelay = jackhammerConfiguration.getGitConfiguration().getInitialDelay();
28 | int period = jackhammerConfiguration.getGitConfiguration().getPeriod();
29 | ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(threadPoolSize);
30 | executor.scheduleAtFixedRate(reposPuller, initialDelay, period, TimeUnit.MINUTES);
31 | }
32 |
33 | public void stop() throws Exception {
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/git/manager/ReposPuller.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.git.manager;
2 |
3 | import com.google.inject.Inject;
4 | import com.olacabs.jackhammer.utilities.GitUtil;
5 | import lombok.AllArgsConstructor;
6 | import lombok.NoArgsConstructor;
7 | import lombok.extern.slf4j.Slf4j;
8 |
9 |
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | @Slf4j
13 | public class ReposPuller implements Runnable {
14 |
15 |
16 | @Inject
17 | GitUtil gitUtil;
18 |
19 | public void run() {
20 | log.info("repos puller getting started..");
21 | gitUtil.pullGitRepos();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/handler/ActionsHandler.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.handler;
2 |
3 | import com.olacabs.jackhammer.enums.Handler;
4 | import com.olacabs.jackhammer.exceptions.AbstractException;
5 | import com.olacabs.jackhammer.exceptions.HandlerNotFoundException;
6 | import com.olacabs.jackhammer.models.Action;
7 | import com.olacabs.jackhammer.models.User;
8 | import lombok.extern.slf4j.Slf4j;
9 |
10 | import javax.ws.rs.core.Response;
11 |
12 | @Slf4j
13 | public class ActionsHandler extends AbstractHandler {
14 | public Response getAllRecords(Action action) throws HandlerNotFoundException {
15 | try {
16 | User user = currentUser(action.getUserToken());
17 | action.setUser(user);
18 | paginationRecords = dataServiceBuilderFactory.getService(Handler.ACTION_SERVICE).getAllRecords(action);
19 | return responseBuilderFactory.getResponseBuilder(Handler.ACTION_SERVICE).buildFetchAllRecordsResponse(paginationRecords);
20 | } catch(AbstractException e){
21 | log.error("Exception while fetching roles");
22 | return responseBuilderFactory.getResponseBuilder(Handler.ACTION_SERVICE).buildErrorResponse(e);
23 | }
24 | }
25 |
26 | public Response createRecord(Action model) throws HandlerNotFoundException {
27 | return null;
28 | }
29 |
30 | public Response getRecord(long id) throws HandlerNotFoundException {
31 | return null;
32 | }
33 |
34 | public Response updateRecord(Action model) throws HandlerNotFoundException {
35 | return null;
36 | }
37 |
38 | public Response deleteRecord(long id) throws HandlerNotFoundException {
39 | return null;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/handler/TasksHandler.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.handler;
2 |
3 | import com.olacabs.jackhammer.enums.Handler;
4 | import com.olacabs.jackhammer.exceptions.AbstractException;
5 | import com.olacabs.jackhammer.exceptions.HandlerNotFoundException;
6 | import com.olacabs.jackhammer.models.Task;
7 | import com.olacabs.jackhammer.models.User;
8 | import lombok.extern.slf4j.Slf4j;
9 |
10 | import javax.ws.rs.core.Response;
11 |
12 | @Slf4j
13 | public class TasksHandler extends AbstractHandler {
14 | public Response getAllRecords(Task task) throws HandlerNotFoundException {
15 | try {
16 | User user = currentUser(task.getUserToken());
17 | task.setUser(user);
18 | paginationRecords = dataServiceBuilderFactory.getService(Handler.TASK_SERVICE).getAllRecords(task);
19 | return responseBuilderFactory.getResponseBuilder(Handler.TASK_SERVICE).buildFetchAllRecordsResponse(paginationRecords);
20 | } catch(AbstractException e){
21 | log.error("Exception while fetching roles");
22 | return responseBuilderFactory.getResponseBuilder(Handler.TASK_SERVICE).buildErrorResponse(e);
23 | }
24 | }
25 |
26 | public Response createRecord(Task model) throws HandlerNotFoundException {
27 | return null;
28 | }
29 |
30 | public Response getRecord(long id) throws HandlerNotFoundException {
31 | return null;
32 | }
33 |
34 | public Response updateRecord(Task model) throws HandlerNotFoundException {
35 | return null;
36 | }
37 |
38 | public Response deleteRecord(long id) throws HandlerNotFoundException {
39 | return null;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/AbstractModel.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import com.fasterxml.jackson.annotation.JsonInclude.Include;
5 |
6 | import java.io.Serializable;
7 | import java.sql.Timestamp;
8 |
9 |
10 | import lombok.Getter;
11 | import lombok.Setter;
12 |
13 | @Getter
14 | @Setter
15 | @JsonInclude(value=Include.NON_NULL)
16 | public class AbstractModel implements Serializable {
17 |
18 | protected long id;
19 | protected String name;
20 | protected Timestamp createdAt;
21 | protected Timestamp updatedAt;
22 |
23 | private String userToken;
24 |
25 | //pagination fields
26 | private long totalSize;
27 | private long offset;
28 | private long limit;
29 | private long taskId;
30 | private long ownerTypeId;
31 | private long scanTypeId;
32 | private String orderBy;
33 | private String sortDirection;
34 | private String searchTerm;
35 | private Boolean createAllowed = false;
36 | private Boolean readAllowed = false;
37 | private Boolean updateAllowed = false;
38 | private Boolean deleteAllowed = false;
39 | private User user;
40 | }
41 |
42 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/AbstractResponse.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.common.HttpResponseCodes;
5 |
6 | import lombok.Getter;
7 | import lombok.Setter;
8 |
9 | @Getter
10 | @Setter
11 | public class AbstractResponse {
12 |
13 | private String message;
14 | private int successCode;
15 | private int errorCode;
16 |
17 | public void setErrorCode(CustomErrorCodes code) {
18 | this.errorCode = code.getValue();
19 | }
20 |
21 | public void setSuccessCode(int code) {
22 | this.successCode = code;
23 | }
24 |
25 | public void setMessage(String message) {
26 | this.message = message;
27 | }
28 |
29 | public int getErrorCode(){
30 | return errorCode;
31 | }
32 | public int getSuccessCode(){
33 | return errorCode;
34 | }
35 |
36 | public String getMessage(){
37 | return message;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Action.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.ArrayList;
9 | import java.util.HashSet;
10 | import java.util.List;
11 | import java.util.Set;
12 |
13 | @Setter
14 | @Getter
15 | @AllArgsConstructor
16 | @NoArgsConstructor
17 | public class Action extends AbstractModel {
18 | private String iconClass;
19 | private List tasks;
20 | private Boolean isScanTypeModule;
21 | private Boolean rolesPage;
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Analytics.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.ArrayList;
9 | import java.util.List;
10 |
11 | @Getter
12 | @Setter
13 | @AllArgsConstructor
14 | @NoArgsConstructor
15 | public class Analytics extends AbstractModel {
16 | SeverityCount severityCount;
17 | private long runningScans;
18 | private long queuedScans;
19 | private long totalScans;
20 | private long completedScans;
21 | private long newFindings;
22 | private long userId;
23 | private List repoList = new ArrayList();
24 | private List topVulnerableTypes = new ArrayList();
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Application.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class Application extends SeverityCount {
13 | private long id;
14 | private String name;
15 | private Group repoGroup;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Branch.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Setter
11 | @Getter
12 | public class Branch extends AbstractModel {
13 | private long repoId;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Command.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 | import mesosphere.marathon.client.utils.ModelUtils;
8 |
9 | @Getter
10 | @Setter
11 | @AllArgsConstructor
12 | @NoArgsConstructor
13 | public class Command {
14 | private String value;
15 |
16 | @Override
17 | public String toString() {
18 | return ModelUtils.toString(this);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Comment.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Getter
11 | @Setter
12 | public class Comment extends AbstractModel {
13 | long findingId;
14 | long userId;
15 | String userName;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Container.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 | import mesosphere.marathon.client.model.v2.Volume;
8 | import mesosphere.marathon.client.utils.ModelUtils;
9 | import java.util.List;
10 |
11 | @Getter
12 | @Setter
13 | @AllArgsConstructor
14 | @NoArgsConstructor
15 | public class Container {
16 | private Docker docker;
17 | private String type;
18 | private List volumes;
19 | @Override
20 | public String toString() {
21 | return ModelUtils.toString(this);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Dashboard.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.List;
9 |
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | @Getter
13 | @Setter
14 | public class Dashboard extends AbstractModel {
15 | private SeverityCount severityCount;
16 | private VulnerabilityTrend vulnerabilityTrend;
17 | private List topVulnerableTypes;
18 | private List topVulnerableRepos;
19 | private Boolean isExecutiveDashboard;
20 | private long userId;
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/DefaultRole.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class DefaultRole extends AbstractModel {
13 | private long roleId;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Docker.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 | import mesosphere.marathon.client.utils.ModelUtils;
8 |
9 | import java.util.List;
10 |
11 | @Getter
12 | @Setter
13 | @AllArgsConstructor
14 | @NoArgsConstructor
15 | public class Docker {
16 | private List portMappings;
17 | private String image;
18 | private String network;
19 | @Override
20 | public String toString() {
21 | return ModelUtils.toString(this);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/ErrorResponseModel.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.ToString;
4 |
5 | @ToString
6 | public class ErrorResponseModel extends AbstractResponse {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/ExecutiveDashboard.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 |
4 | import lombok.AllArgsConstructor;
5 | import lombok.Getter;
6 | import lombok.NoArgsConstructor;
7 | import lombok.Setter;
8 |
9 | import java.util.List;
10 |
11 | @AllArgsConstructor
12 | @NoArgsConstructor
13 | @Getter
14 | @Setter
15 | public class ExecutiveDashboard {
16 | private SeverityCount severityCount;
17 | private ScanTypeCount scanTypeCount;
18 | private List groups;
19 | private List criticalVulnerabilityTrend;
20 | private List highVulnerabilityTrend;
21 | private VulnerabilityTrend bugsClosingTrend;
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Filter.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.sql.Date;
9 | import java.util.ArrayList;
10 | import java.util.List;
11 |
12 | @AllArgsConstructor
13 | @NoArgsConstructor
14 | @Setter
15 | @Getter
16 | public class Filter extends AbstractModel {
17 |
18 | //dropdown values
19 | private List tags;
20 | private List groups;
21 | private List repos;
22 | private List tools;
23 | private List vulnerableTypes;
24 | private String tool;
25 |
26 | //selected values
27 | private List tagIds = new ArrayList();
28 | private List groupIds = new ArrayList();
29 | private List repoIds = new ArrayList();
30 | private List toolNames = new ArrayList();
31 | private List vulnerabilities = new ArrayList();
32 | private String status;
33 | private String severity;
34 | private long aging;
35 | private Date fromDate;
36 | private Date toDate;
37 |
38 | //other fields
39 | private long userId;
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/FindingTag.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Getter
11 | @Setter
12 | public class FindingTag {
13 | long findingId;
14 | long tagId;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Git.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Getter
11 | @Setter
12 | public class Git extends AbstractModel {
13 | private String gitType;
14 | private String userName;
15 | private String gitEndPoint;
16 | private String apiAccessToken;
17 | private String organizationName;
18 | }
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/GitGroup.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnore;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 |
11 | @Getter
12 | @Setter
13 | public class GitGroup extends AbstractModel {
14 | @JsonIgnore
15 | private String visibility_level;
16 | @JsonIgnore
17 | private boolean lfs_enabled;
18 | @JsonIgnore
19 | private String avatar_url;
20 | @JsonIgnore
21 | private boolean request_access_enabled;
22 | @JsonIgnore
23 | private String path;
24 | @JsonIgnore
25 | private String description;
26 |
27 | private String web_url;
28 | List gitProjects = new ArrayList();
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/GitHubGroup.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.List;
9 |
10 | @Getter
11 | @Setter
12 | @AllArgsConstructor
13 | @NoArgsConstructor
14 | public class GitHubGroup {
15 | private String id;
16 | private String description;
17 | private String name;
18 | private String members_url;
19 | private String privacy;
20 | private String permission;
21 | private String slug;
22 | private String repositories_url;
23 | private String url;
24 | private String node_id;
25 | private String html_url;
26 | List gitHubProjects;
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/GitLabGroup.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnore;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 |
11 | @Getter
12 | @Setter
13 | public class GitLabGroup extends AbstractModel {
14 | @JsonIgnore
15 | private String visibility_level;
16 | @JsonIgnore
17 | private boolean lfs_enabled;
18 | @JsonIgnore
19 | private String avatar_url;
20 | @JsonIgnore
21 | private boolean request_access_enabled;
22 | @JsonIgnore
23 | private String path;
24 | @JsonIgnore
25 | private String description;
26 |
27 | private String web_url;
28 | List gitLabProjects = new ArrayList();
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/GitNamespace.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnore;
4 | import lombok.AllArgsConstructor;
5 | import lombok.Getter;
6 | import lombok.NoArgsConstructor;
7 | import lombok.Setter;
8 |
9 | import java.util.Map;
10 |
11 | @AllArgsConstructor
12 | @NoArgsConstructor
13 | @Getter
14 | @Setter
15 | public class GitNamespace extends AbstractModel {
16 | @JsonIgnore
17 | private String path;
18 | @JsonIgnore
19 | private String kind;
20 | @JsonIgnore
21 | private String fullPath;
22 | @JsonIgnore
23 | private String owner_id;
24 | @JsonIgnore
25 | private String created_at;
26 | @JsonIgnore
27 | private String updated_at;
28 | @JsonIgnore
29 | private String description;
30 | @JsonIgnore
31 | private boolean share_with_group_lock;
32 | @JsonIgnore
33 | private long visibility_level;
34 | @JsonIgnore
35 | private boolean request_access_enabled;
36 | @JsonIgnore
37 | private String deleted_at;
38 | @JsonIgnore
39 | private boolean lfs_enabled;
40 | @JsonIgnore
41 | private Map avatar;
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/GitOwner.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Getter
11 | @Setter
12 | public class GitOwner {
13 | private String received_events_url;
14 | private String organizations_url;
15 | private String avatar_url;
16 | private String gravatar_id;
17 | private String gists_url;
18 | private String starred_url;
19 | private String site_admin;
20 | private String type;
21 | private String url;
22 | private String node_id;
23 | private String id;
24 | private String html_url;
25 | private String following_url;
26 | private String events_url;
27 | private String login;
28 | private String subscriptions_url;
29 | private String repos_url;
30 | private String followers_url;
31 | }
32 |
33 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/GitPermission.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 |
9 | @AllArgsConstructor
10 | @NoArgsConstructor
11 | @Setter
12 | @Getter
13 | public class GitPermission {
14 | private String admin;
15 | private String pull;
16 | private String push;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Group.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 | import com.google.common.collect.Lists;
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.List;
9 |
10 | @Setter
11 | @Getter
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class Group extends AbstractModel {
15 | private SeverityCount severityCount;
16 | private Boolean isDefault;
17 | private List roles = Lists.newArrayList();
18 | private List roleIds = Lists.newArrayList();
19 |
20 | public void addRole(Role p) {
21 | if (!roles.contains(p)) roles.add(p);
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/GroupRole.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Setter
9 | @Getter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class GroupRole {
13 | private Long groupId;
14 | private Long roleId;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/GroupUser.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class GroupUser {
13 | private Long groupId;
14 | private Long userId;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/HardcodeSecret.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.sql.Date;
9 |
10 | @Getter
11 | @Setter
12 | @AllArgsConstructor
13 | @NoArgsConstructor
14 | public class HardcodeSecret extends AbstractModel {
15 | private long commitsDepth;
16 | private Date commitsStartDate;
17 | private String regex;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/HealthCheck.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 | import mesosphere.marathon.client.utils.ModelUtils;
8 |
9 | @AllArgsConstructor
10 | @NoArgsConstructor
11 | @Getter
12 | @Setter
13 | public class HealthCheck {
14 |
15 | private Command command;
16 | private Integer gracePeriodSeconds;
17 | private Integer intervalSeconds;
18 | private Integer maxConsecutiveFailures;
19 | private Integer portIndex;
20 | private Integer timeoutSeconds;
21 | private boolean ignoreHttp1xx;
22 | private String path;
23 | private String protocol;
24 |
25 | @Override
26 | public String toString() {
27 | return ModelUtils.toString(this);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/JiraDetail.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @Setter
10 | @Getter
11 | @NoArgsConstructor
12 | public class JiraDetail extends AbstractModel {
13 | private String host;
14 | private String userName;
15 | private String password;
16 | private String defaultProject;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/JiraField.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Setter
11 | @Getter
12 | public class JiraField {
13 | private String summary;
14 | private JiraProject project;
15 | private JiraIssueType issuetype;
16 | private String description;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/JiraIssue.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Getter
11 | @Setter
12 | public class JiraIssue {
13 | private JiraField fields;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/JiraIssueType.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Setter
11 | @Getter
12 | public class JiraIssueType {
13 | private String name;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/JiraProject.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Setter
11 | @Getter
12 | public class JiraProject {
13 | private String key;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/JwtToken.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.Date;
9 |
10 | @Getter
11 | @Setter
12 | @AllArgsConstructor
13 | @NoArgsConstructor
14 | public class JwtToken extends AbstractModel {
15 |
16 | private Date tokenValidFrom;
17 | private Date tokenValidUntil;
18 | private String token;
19 | private Long userId;
20 | private boolean Deleted;
21 | private Long version;
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Language.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class Language extends AbstractModel {
13 | private String fileExtension;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/MarathonModel.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import mesosphere.marathon.client.model.v2.App;
9 |
10 | import java.util.List;
11 |
12 | @AllArgsConstructor
13 | @NoArgsConstructor
14 | @Getter
15 | @Setter
16 | public class MarathonModel extends App {
17 | private List healthChecks;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/MobileScanRequest.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 |
6 | import java.io.File;
7 |
8 | @Getter
9 | @Setter
10 | public class MobileScanRequest extends File {
11 | private String scanId;
12 | public MobileScanRequest(String pathname) {
13 | super(pathname);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/NotificationMails.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class NotificationMails {
13 | private long count;
14 | private String mails;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/OwnerType.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class OwnerType extends AbstractModel {
13 | private Boolean isDefault;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/PagedResponse.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.List;
9 |
10 | @Getter
11 | @Setter
12 | @AllArgsConstructor
13 | @NoArgsConstructor
14 | public class PagedResponse {
15 | private List items;
16 | private long total;
17 | private T item;
18 | private OwnerType ownerType;
19 | private ScanType scanType;
20 | private Boolean createAllowed = false;
21 | private Boolean readAllowed = false;
22 | private Boolean updateAllowed = false;
23 | private Boolean deleteAllowed = false;
24 | private Boolean readFindingsAllowed = false;
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Permission.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | public class Permission extends AbstractModel {
4 | }
5 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/PermissionRole.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Setter
9 | @Getter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class PermissionRole {
13 | private Long roleId;
14 | private Long permissionId;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/PortMapping.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 | import mesosphere.marathon.client.utils.ModelUtils;
8 |
9 | @AllArgsConstructor
10 | @NoArgsConstructor
11 | @Setter
12 | @Getter
13 | public class PortMapping {
14 | private String protocol;
15 | private Integer hostPort;
16 | private Integer containerPort;
17 |
18 | @Override
19 | public String toString() {
20 | return ModelUtils.toString(this);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Repo.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 | import java.util.List;
8 |
9 | @AllArgsConstructor
10 | @NoArgsConstructor
11 | @Getter
12 | @Setter
13 | public class Repo extends AbstractModel {
14 | private String target;
15 | private long groupId;
16 | private long userId;
17 | private long branchId;
18 | private long ownerTypeId;
19 | private long scanTypeId;
20 | private Group group;
21 | private List groupIds;
22 | private SeverityCount severityCount;
23 | private VulnerabilityTrend vulnerabilityTrend;
24 | private List repoToolResults;
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/RepoToolResult.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Getter
11 | @Setter
12 | public class RepoToolResult {
13 | private String toolName;
14 | private long count;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Role.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import com.google.common.collect.Lists;
5 | import lombok.AllArgsConstructor;
6 | import lombok.Getter;
7 | import lombok.NoArgsConstructor;
8 | import lombok.Setter;
9 |
10 | import java.util.List;
11 |
12 |
13 | @Getter
14 | @Setter
15 | @AllArgsConstructor
16 | @NoArgsConstructor
17 | @JsonInclude(JsonInclude.Include.NON_NULL)
18 | public class Role extends AbstractModel {
19 |
20 | private List tasks = Lists.newArrayList();
21 |
22 | private List taskIds = Lists.newArrayList();
23 |
24 |
25 | //permissions are deprecated
26 | private List permissions = Lists.newArrayList();
27 |
28 | private List permissionIds = Lists.newArrayList();
29 |
30 | public void addTask(Task t) {
31 | if (!tasks.contains(t)) tasks.add(t);
32 | }
33 |
34 | public void addPermission(Permission p) {
35 | if (!permissions.contains(p)) permissions.add(p);
36 | }
37 |
38 | }
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/RoleTask.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Setter
9 | @Getter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class RoleTask {
13 | private long roleId;
14 | private long taskId;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/RoleUser.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Setter
9 | @Getter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class RoleUser {
13 | private Long roleId;
14 | private Long userId;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/SMTPDetail.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Getter
11 | @Setter
12 | public class SMTPDetail extends AbstractModel {
13 | private String applicationUrl;
14 | private String smtpHost;
15 | private String smtpUserName;
16 | private String smtpPassword;
17 | private int smtpPort;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/ScanTool.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @NoArgsConstructor
11 | @AllArgsConstructor
12 | public class ScanTool extends AbstractModel {
13 | private Long scanId;
14 | private Long toolId;
15 | private Long toolInstanceId;
16 | private String status;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/ScanType.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class ScanType extends AbstractModel {
13 | private Boolean isStatic;
14 | private Boolean isWeb;
15 | private Boolean isWordpress;
16 | private Boolean isMobile;
17 | private Boolean isNetwork;
18 | private Boolean isHardCodeSecret;
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/ScanTypeCount.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Getter
11 | @Setter
12 | public class ScanTypeCount {
13 | private SeverityCount sourceCodeCount;
14 | private SeverityCount wordpressCount;
15 | private SeverityCount networkCount;
16 | private SeverityCount mobileCount;
17 | private SeverityCount webCount;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/ScheduleType.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Setter
11 | @Getter
12 | public class ScheduleType extends AbstractModel {
13 | private int days;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/SeverityCount.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Getter
11 | @Setter
12 | public class SeverityCount {
13 | private long totalCount;
14 | private long criticalCount;
15 | private long highCount;
16 | private long mediumCount;
17 | private long lowCount;
18 | private long infoCount;
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/SeverityCountChart.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @AllArgsConstructor
9 | @NoArgsConstructor
10 | @Getter
11 | @Setter
12 | public class SeverityCountChart {
13 | private long count;
14 | private String severity;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/SeverityLevel.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.Map;
9 |
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | @Getter
13 | @Setter
14 | public class SeverityLevel extends AbstractModel {
15 | private Boolean enabled;
16 | private long threshHoldCount;
17 | private String mailIds;
18 | private Boolean requestFromNotificationMail;
19 | private Map notificationMailsConfiguration;
20 | private Map severitiesStatus;
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/SuccessResponseModel.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.ToString;
4 |
5 | @ToString
6 | public class SuccessResponseModel extends AbstractResponse{
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Tag.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.List;
9 |
10 | @NoArgsConstructor
11 | @AllArgsConstructor
12 | @Getter
13 | @Setter
14 | public class Tag extends AbstractModel {
15 | long findingId;
16 | long userId;
17 | List tagList;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Tool.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.io.InputStream;
9 |
10 | @Setter
11 | @Getter
12 | @AllArgsConstructor
13 | @NoArgsConstructor
14 | public class Tool extends AbstractModel {
15 | private String manifestJson;
16 | private String status;
17 | private long instanceCount;
18 | private long languageId;
19 | InputStream uploadedInputStream;
20 | Boolean isEnabled;
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/ToolInstance.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @NoArgsConstructor
9 | @AllArgsConstructor
10 | @Getter
11 | @Setter
12 | public class ToolInstance extends AbstractModel {
13 | private long toolId;
14 | private long maxAllowedScans;
15 | private long currentRunningScans;
16 | private int port;
17 | private String status;
18 | private String sessionId;
19 | private String platform;
20 | private String containerId;
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/ToolManifest.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.List;
9 | import java.util.Map;
10 |
11 | @Setter
12 | @Getter
13 | @AllArgsConstructor
14 | @NoArgsConstructor
15 | public class ToolManifest {
16 | private String id;
17 | private Double cpus;
18 | private Container container;
19 | private Double mem;
20 | private Integer initialInstances;
21 | private Integer minInstances;
22 | private Integer maxInstances;
23 | private List healthChecks;
24 | private Map env;
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/TopVulnerabilityRepo.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class TopVulnerabilityRepo {
13 | private long repoId;
14 | private long count;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/TopVulnerableApplication.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class TopVulnerableApplication {
13 | private long groupId;
14 | private long count;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/TopVulnerableRepo.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class TopVulnerableRepo {
13 | private long repoId;
14 | private long count;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/TopVulnerableType.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | @Getter
9 | @Setter
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | public class TopVulnerableType {
13 | private String vulnerabilityType;
14 | private String severity;
15 | private long count;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/Upload.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 | import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
6 |
7 | import java.io.InputStream;
8 |
9 | @Getter
10 | @Setter
11 | public class Upload extends AbstractModel {
12 | long findingId;
13 | long userId;
14 | String userName;
15 | private InputStream uploadedInputStream;
16 | private FormDataContentDisposition fileDetail;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/User.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 |
5 | import com.google.common.collect.Lists;
6 | import com.google.inject.Inject;
7 | import com.google.inject.name.Named;
8 | import com.olacabs.jackhammer.common.Constants;
9 | import lombok.Getter;
10 | import lombok.Setter;
11 | import lombok.AllArgsConstructor;
12 | import lombok.NoArgsConstructor;
13 | import lombok.extern.slf4j.Slf4j;
14 | import org.springframework.security.crypto.password.PasswordEncoder;
15 |
16 | import java.sql.Timestamp;
17 | import java.util.List;
18 |
19 | @Setter
20 | @Getter
21 | @AllArgsConstructor
22 | @NoArgsConstructor
23 | @JsonInclude(JsonInclude.Include.NON_NULL)
24 | @Slf4j
25 | public class User extends AbstractModel {
26 |
27 | private String email;
28 | private String password;
29 | private String newPassword;
30 | private Boolean allowedExecutiveDashboard;
31 | private Boolean allowedCorporateDashboard;
32 | private Boolean allowedTeamDashboard;
33 | private Boolean allowedPersonalDashboard;
34 |
35 | private List ownerTypes = Lists.newArrayList();
36 | private List groups = Lists.newArrayList();
37 | private List groupIds = Lists.newArrayList();
38 | private List roles = Lists.newArrayList();
39 | private List roleIds = Lists.newArrayList();
40 |
41 | public void addGroup(Group g) {
42 | if (!groups.contains(g)) groups.add(g);
43 | }
44 |
45 | public void addRole(Role r) {
46 | if (!roles.contains(r)) {
47 | roles.add(r);
48 | }
49 | }
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/UserResponse.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import com.google.common.collect.Lists;
4 | import lombok.*;
5 |
6 | import java.util.List;
7 |
8 | @Builder
9 | @NoArgsConstructor
10 | @AllArgsConstructor
11 | @Setter
12 | @Getter
13 | public class UserResponse extends AbstractResponse {
14 | private String username;
15 | private String email;
16 | private String userToken;
17 | private Boolean allowedExecutiveDashboard;
18 | private Boolean allowedCorporateDashboard;
19 | private Boolean allowedTeamDashboard;
20 | private Boolean allowedPersonalDashboard;
21 | private List ownerTypes;
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/VulnerabilityTrend.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 | import lombok.NoArgsConstructor;
6 | import lombok.Setter;
7 |
8 | import java.util.Map;
9 |
10 | @AllArgsConstructor
11 | @NoArgsConstructor
12 | @Setter
13 | @Getter
14 | public class VulnerabilityTrend extends SeverityCountChart {
15 | private String month;
16 | private Map> vulnerabilityTrendResult;
17 | private String groupName;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/VulnerableType.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models;
2 |
3 | public class VulnerableType extends AbstractModel {
4 | }
5 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/ActionMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Action;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class ActionMapper implements ResultSetMapper {
11 | public Action map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | Action action = new Action();
13 | action.setId(resultSet.getLong("id"));
14 | action.setName(resultSet.getString("name"));
15 | action.setIconClass(resultSet.getString("iconClass"));
16 | action.setIsScanTypeModule(resultSet.getBoolean("isScanTypeModule"));
17 | return action;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/ApplicationMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Application;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class ApplicationMapper implements ResultSetMapper {
11 | public Application map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | Application application = new Application();
13 | application.setId(resultSet.getLong("id"));
14 | application.setName(resultSet.getString("name"));
15 | application.setTotalCount(resultSet.getLong("totalCount"));
16 | application.setCriticalCount(resultSet.getLong("criticalCount"));
17 | application.setCriticalCount(resultSet.getLong("highCount"));
18 | application.setMediumCount(resultSet.getLong("mediumCount"));
19 | application.setLowCount(resultSet.getLong("lowCount"));
20 | application.setInfoCount(resultSet.getLong("infoCount"));
21 | return application;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/BranchMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Branch;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class BranchMapper implements ResultSetMapper {
12 | public Branch map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | Branch branch = new Branch();
14 | branch.setId(resultSet.getLong("id"));
15 | branch.setName(resultSet.getString("name"));
16 | branch.setRepoId(resultSet.getLong("repoId"));
17 | return branch;
18 | }
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/CommentMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Comment;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class CommentMapper implements ResultSetMapper {
11 |
12 | public Comment map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | Comment comment = new Comment();
14 | comment.setId(resultSet.getLong("id"));
15 | comment.setName(resultSet.getString("name"));
16 | comment.setFindingId(resultSet.getLong("findingId"));
17 | comment.setUserId(resultSet.getLong("userId"));
18 | comment.setCreatedAt(resultSet.getTimestamp("createdAt"));
19 | comment.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
20 | return comment;
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/DefaultRoleMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.DefaultRole;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class DefaultRoleMapper implements ResultSetMapper {
11 |
12 | public DefaultRole map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | DefaultRole defaultRole = new DefaultRole();
14 | defaultRole.setId(resultSet.getLong("id"));
15 | defaultRole.setRoleId(resultSet.getLong("roleId"));
16 | return defaultRole;
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/FindingTagMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.FindingTag;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class FindingTagMapper implements ResultSetMapper {
11 | public FindingTag map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | FindingTag findingTag = new FindingTag();
13 | findingTag.setFindingId(resultSet.getLong("findingId"));
14 | findingTag.setTagId(resultSet.getLong("tagId"));
15 | return findingTag;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/GitMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Git;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class GitMapper implements ResultSetMapper {
11 | public Git map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | Git git = new Git();
13 | git.setId(resultSet.getLong("id"));
14 | git.setUserName(resultSet.getString("userName"));
15 | git.setGitEndPoint(resultSet.getString("gitEndPoint"));
16 | git.setApiAccessToken(resultSet.getString("apiAccessToken"));
17 | git.setGitType(resultSet.getString("gitType"));
18 | git.setOrganizationName(resultSet.getString("organizationName"));
19 | return git;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/GroupMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Group;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class GroupMapper implements ResultSetMapper {
12 | public Group map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException
13 | {
14 | Group group = new Group();
15 | group.setId(resultSet.getLong("id"));
16 | group.setName(resultSet.getString("name"));
17 | group.setScanTypeId(resultSet.getLong("scanTypeId"));
18 | group.setCreatedAt(resultSet.getTimestamp("createdAt"));
19 | group.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
20 | return group;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/GroupRoleMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.GroupRole;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class GroupRoleMapper implements ResultSetMapper {
12 |
13 | public GroupRole map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException
14 | {
15 | GroupRole groupRole = new GroupRole();
16 | groupRole.setGroupId(resultSet.getLong("groupId"));
17 | groupRole.setRoleId(resultSet.getLong("roleId"));
18 | return groupRole;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/GroupUserMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.GroupUser;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class GroupUserMapper implements ResultSetMapper {
12 | public GroupUser map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | return new GroupUser(resultSet.getLong("groupId"),
14 | resultSet.getLong("userId"));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/HardcodeSecretMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.HardcodeSecret;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class HardcodeSecretMapper implements ResultSetMapper {
11 |
12 | public HardcodeSecret map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | HardcodeSecret hardcodeSecret = new HardcodeSecret();
14 | hardcodeSecret.setCommitsDepth(resultSet.getLong("commitsDepth"));
15 | hardcodeSecret.setCommitsStartDate(resultSet.getDate("commitsStartDate"));
16 | hardcodeSecret.setRegex(resultSet.getString("regex"));
17 | return hardcodeSecret;
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/JiraDetailMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.JiraDetail;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class JiraDetailMapper implements ResultSetMapper {
11 |
12 | public JiraDetail map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | JiraDetail jiraDetail = new JiraDetail();
14 | jiraDetail.setHost(resultSet.getString("host"));
15 | jiraDetail.setUserName(resultSet.getString("userName"));
16 | jiraDetail.setPassword(resultSet.getString("password"));
17 | jiraDetail.setDefaultProject(resultSet.getString("defaultProject"));
18 | return jiraDetail;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/JwtTokenMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.JwtToken;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class JwtTokenMapper implements ResultSetMapper {
12 | public JwtToken map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException
13 | {
14 | JwtToken jwtToken = new JwtToken();
15 | jwtToken.setId(resultSet.getLong("id"));
16 | jwtToken.setTokenValidFrom(resultSet.getDate("tokenValidFrom"));
17 | jwtToken.setTokenValidUntil(resultSet.getDate("tokenValidUntil"));
18 | jwtToken.setCreatedAt(resultSet.getTimestamp("createdAt"));
19 | jwtToken.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
20 | jwtToken.setDeleted(resultSet.getBoolean("deleted"));
21 | jwtToken.setVersion(resultSet.getLong("version"));
22 | return jwtToken;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/LanguageMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Language;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class LanguageMapper implements ResultSetMapper {
11 |
12 | public Language map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | Language language = new Language();
14 | language.setId(resultSet.getLong("id"));
15 | language.setName(resultSet.getString("name"));
16 | language.setCreatedAt(resultSet.getTimestamp("createdAt"));
17 | language.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
18 | language.setFileExtension(resultSet.getString("fileExtension"));
19 | return language;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/OwnerTypeMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.OwnerType;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class OwnerTypeMapper implements ResultSetMapper {
11 | public OwnerType map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | OwnerType ownerType = new OwnerType();
13 | ownerType.setId(resultSet.getLong("id"));
14 | ownerType.setName(resultSet.getString("name"));
15 | ownerType.setIsDefault(resultSet.getBoolean("isDefault"));
16 | return ownerType;
17 | }
18 | }
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/PermissionMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Permission;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class PermissionMapper implements ResultSetMapper {
12 | public Permission map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | Permission permission = new Permission();
14 | permission.setId(resultSet.getLong("id"));
15 | permission.setName(resultSet.getString("name"));
16 | permission.setCreatedAt(resultSet.getTimestamp("createdAt"));
17 | permission.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
18 | return permission;
19 | }
20 | }
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/RepoMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Repo;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class RepoMapper implements ResultSetMapper {
12 | public Repo map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | Repo repo = new Repo();
14 | repo.setId(resultSet.getLong("id"));
15 | repo.setName(resultSet.getString("name"));
16 | repo.setTarget(resultSet.getString("target"));
17 | repo.setGroupId(resultSet.getLong("groupId"));
18 | repo.setUserId(resultSet.getLong("userId"));
19 | repo.setOwnerTypeId(resultSet.getLong("ownerTypeId"));
20 | repo.setScanTypeId(resultSet.getLong("scanTypeId"));
21 | return repo;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/RepoToolResultMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.RepoToolResult;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class RepoToolResultMapper implements ResultSetMapper {
11 | public RepoToolResult map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | RepoToolResult repoToolResult = new RepoToolResult();
13 | repoToolResult.setCount(resultSet.getLong("count"));
14 | repoToolResult.setToolName(resultSet.getString("toolName"));
15 | return repoToolResult;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/RoleMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Role;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class RoleMapper implements ResultSetMapper {
12 | public Role map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException
13 | {
14 | Role role = new Role();
15 | role.setId(resultSet.getLong("id"));
16 | role.setName(resultSet.getString("name"));
17 | role.setCreatedAt(resultSet.getTimestamp("createdAt"));
18 | role.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
19 | return role;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/RolePermissionMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.PermissionRole;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class RolePermissionMapper implements ResultSetMapper {
12 | public PermissionRole map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | PermissionRole rolePermission = new PermissionRole();
14 | rolePermission.setRoleId(resultSet.getLong("roleId"));
15 | rolePermission.setPermissionId(resultSet.getLong("permissionId"));
16 | return rolePermission;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/RoleTaskMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.RoleTask;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 |
11 | public class RoleTaskMapper implements ResultSetMapper {
12 | public RoleTask map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | RoleTask roleTask = new RoleTask();
14 | roleTask.setRoleId(resultSet.getLong("roleId"));
15 | roleTask.setTaskId(resultSet.getLong("taskId"));
16 | return roleTask;
17 | }
18 | }
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/RoleUserMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.RoleUser;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class RoleUserMapper implements ResultSetMapper {
12 |
13 | public RoleUser map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
14 | return new RoleUser(resultSet.getLong("roleId"), resultSet.getLong("userId"));
15 | }
16 | }
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/SMTPDetailMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.SMTPDetail;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class SMTPDetailMapper implements ResultSetMapper {
11 |
12 | public SMTPDetail map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | SMTPDetail smtpDetail = new SMTPDetail();
14 | smtpDetail.setApplicationUrl(resultSet.getString("applicationUrl"));
15 | smtpDetail.setSmtpHost(resultSet.getString("smtpHost"));
16 | smtpDetail.setSmtpUserName(resultSet.getString("smtpUserName"));
17 | smtpDetail.setSmtpPassword(resultSet.getString("smtpPassword"));
18 | smtpDetail.setSmtpPort(resultSet.getInt("smtpPort"));
19 | return smtpDetail;
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/ScanToolMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import org.skife.jdbi.v2.StatementContext;
4 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
5 |
6 | import java.sql.ResultSet;
7 | import java.sql.SQLException;
8 |
9 | import com.olacabs.jackhammer.models.ScanTool;
10 |
11 | public class ScanToolMapper implements ResultSetMapper {
12 |
13 | public ScanTool map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
14 | ScanTool scanTool = new ScanTool();
15 | scanTool.setToolId(resultSet.getLong("toolId"));
16 | scanTool.setScanId(resultSet.getLong("scanId"));
17 | scanTool.setStatus(resultSet.getString("status"));
18 | scanTool.setToolInstanceId(resultSet.getLong("toolInstanceId"));
19 | return scanTool;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/ScanTypeMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.ScanType;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class ScanTypeMapper implements ResultSetMapper {
11 |
12 | public ScanType map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | ScanType scanType = new ScanType();
14 | scanType.setId(resultSet.getLong("id"));
15 | scanType.setName(resultSet.getString("name"));
16 | scanType.setIsStatic(resultSet.getBoolean("isStatic"));
17 | scanType.setIsWeb(resultSet.getBoolean("isWeb"));
18 | scanType.setIsMobile(resultSet.getBoolean("isMobile"));
19 | scanType.setIsWordpress(resultSet.getBoolean("isWordpress"));
20 | scanType.setIsNetwork(resultSet.getBoolean("isNetwork"));
21 | scanType.setIsHardCodeSecret(resultSet.getBoolean("isHardCodeSecret"));
22 | scanType.setCreatedAt(resultSet.getTimestamp("createdAt"));
23 | scanType.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
24 | return scanType;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/ScheduleTypeMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.ScheduleType;
4 |
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | public class ScheduleTypeMapper implements ResultSetMapper {
12 | public ScheduleType map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
13 | ScheduleType scheduleType = new ScheduleType();
14 | scheduleType.setId(resultSet.getLong("id"));
15 | scheduleType.setName(resultSet.getString("name"));
16 | scheduleType.setDays(resultSet.getInt("days"));
17 | return scheduleType;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/SeverityCountChartMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.SeverityCountChart;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class SeverityCountChartMapper implements ResultSetMapper {
11 | public SeverityCountChart map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | SeverityCountChart severityCountDashboard = new SeverityCountChart();
13 | severityCountDashboard.setCount(resultSet.getLong("count"));
14 | severityCountDashboard.setSeverity(resultSet.getString("severity"));
15 | return severityCountDashboard;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/SeverityLevelMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.SeverityLevel;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 |
11 | public class SeverityLevelMapper implements ResultSetMapper {
12 |
13 | public SeverityLevel map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
14 | SeverityLevel severityLevel = new SeverityLevel();
15 | severityLevel.setId(resultSet.getLong("id"));
16 | severityLevel.setName(resultSet.getString("name"));
17 | severityLevel.setEnabled(resultSet.getBoolean("enabled"));
18 | severityLevel.setThreshHoldCount(resultSet.getLong("threshHoldCount"));
19 | severityLevel.setMailIds(resultSet.getString("mailIds"));
20 | return severityLevel;
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/TagMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Tag;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class TagMapper implements ResultSetMapper {
11 | public Tag map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | Tag tag = new Tag();
13 | tag.setId(resultSet.getLong("id"));
14 | tag.setName(resultSet.getString("name"));
15 | return tag;
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/TaskMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Task;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class TaskMapper implements ResultSetMapper {
11 | public Task map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | Task task = new Task();
13 | task.setId(resultSet.getLong("id"));
14 | task.setName(resultSet.getString("name"));
15 | task.setTaskRoute(resultSet.getString("taskRoute"));
16 | task.setActionId(resultSet.getLong("actionId"));
17 | task.setParentId(resultSet.getLong("parentId"));
18 | task.setOwnerTypeId(resultSet.getLong("ownerTypeId"));
19 | task.setApiUrl(resultSet.getString("apiUrl"));
20 | task.setMethod(resultSet.getString("method"));
21 | task.setAccessToAll(resultSet.getBoolean("accessToAll"));
22 | return task;
23 | }
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/ToolInstanceMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.ToolInstance;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class ToolInstanceMapper implements ResultSetMapper {
11 | public ToolInstance map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | ToolInstance toolInstance = new ToolInstance();
13 | toolInstance.setId(resultSet.getLong("id"));
14 | toolInstance.setToolId(resultSet.getLong("toolId"));
15 | toolInstance.setMaxAllowedScans(resultSet.getLong("maxAllowedScans"));
16 | toolInstance.setCurrentRunningScans(resultSet.getLong("currentRunningScans"));
17 | toolInstance.setStatus(resultSet.getString("status"));
18 | toolInstance.setSessionId(resultSet.getString("sessionId"));
19 | toolInstance.setPlatform(resultSet.getString("platform"));
20 | toolInstance.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
21 | toolInstance.setCreatedAt(resultSet.getTimestamp("createdAt"));
22 | toolInstance.setContainerId(resultSet.getString("containerId"));
23 | toolInstance.setPort(resultSet.getInt("port"));
24 | return toolInstance;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/ToolMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Tool;
4 | import lombok.extern.slf4j.Slf4j;
5 | import org.skife.jdbi.v2.StatementContext;
6 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
7 |
8 | import java.sql.ResultSet;
9 | import java.sql.SQLException;
10 |
11 | @Slf4j
12 | public class ToolMapper implements ResultSetMapper {
13 |
14 | public Tool map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
15 | Tool tool = new Tool();
16 | tool.setId(resultSet.getLong("id"));
17 | tool.setName(resultSet.getString("name"));
18 | tool.setCreatedAt(resultSet.getTimestamp("createdAt"));
19 | tool.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
20 | tool.setLanguageId(resultSet.getLong("languageId"));
21 | tool.setScanTypeId(resultSet.getLong("scanTypeId"));
22 | tool.setIsEnabled(resultSet.getBoolean("isEnabled"));
23 | tool.setManifestJson(resultSet.getString("manifestJson"));
24 | tool.setStatus(resultSet.getString("status"));
25 | tool.setInstanceCount(resultSet.getLong("instanceCount"));
26 | return tool;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/TopVulnerabilityApplicationMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.TopVulnerableApplication;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class TopVulnerabilityApplicationMapper implements ResultSetMapper {
11 | public TopVulnerableApplication map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | TopVulnerableApplication topVulnerableApplication = new TopVulnerableApplication();
13 | topVulnerableApplication.setCount(resultSet.getLong("count"));
14 | topVulnerableApplication.setGroupId(resultSet.getLong("groupId"));
15 | return topVulnerableApplication;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/TopVulnerabilityRepoMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.TopVulnerableRepo;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class TopVulnerabilityRepoMapper implements ResultSetMapper {
11 | public TopVulnerableRepo map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | TopVulnerableRepo topVulnerabilityRepo = new TopVulnerableRepo();
13 | topVulnerabilityRepo.setCount(resultSet.getLong("count"));
14 | topVulnerabilityRepo.setRepoId(resultSet.getLong("repoId"));
15 | return topVulnerabilityRepo;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/TopVulnerableTypeMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.TopVulnerableType;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class TopVulnerableTypeMapper implements ResultSetMapper {
11 | public TopVulnerableType map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | TopVulnerableType topVulnerableType = new TopVulnerableType();
13 | topVulnerableType.setCount(resultSet.getLong("count"));
14 | topVulnerableType.setVulnerabilityType(resultSet.getString( "vulnerabilityType"));
15 | topVulnerableType.setSeverity(resultSet.getString( "severity"));
16 | return topVulnerableType;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/UploadMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.Upload;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class UploadMapper implements ResultSetMapper {
11 | public Upload map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | Upload upload = new Upload();
13 | upload.setId(resultSet.getLong("id"));
14 | upload.setName(resultSet.getString("name"));
15 | upload.setFindingId(resultSet.getLong("findingId"));
16 | upload.setUserId(resultSet.getLong("userId"));
17 | upload.setCreatedAt(resultSet.getTimestamp("createdAt"));
18 | upload.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
19 | return upload;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/UserMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 |
4 |
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 | import org.skife.jdbi.v2.StatementContext;
7 |
8 | import com.olacabs.jackhammer.models.User;
9 |
10 | import java.sql.ResultSet;
11 | import java.sql.SQLException;
12 |
13 | import lombok.extern.slf4j.Slf4j;
14 |
15 | @Slf4j
16 | public class UserMapper implements ResultSetMapper {
17 |
18 | public User map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException
19 | {
20 | User user = new User();
21 | user.setId(resultSet.getLong("id"));
22 | user.setName(resultSet.getString("name"));
23 | user.setEmail(resultSet.getString("email"));
24 | user.setPassword(resultSet.getString("password"));
25 | user.setCreatedAt(resultSet.getTimestamp("createdAt"));
26 | user.setUpdatedAt(resultSet.getTimestamp("updatedAt"));
27 | return user;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/VulnerabilityTrendMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.VulnerabilityTrend;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class VulnerabilityTrendMapper implements ResultSetMapper {
11 | public VulnerabilityTrend map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | VulnerabilityTrend vulnerabilityTrend = new VulnerabilityTrend();
13 | vulnerabilityTrend.setMonth(resultSet.getString("month"));
14 | vulnerabilityTrend.setCount(resultSet.getLong("count"));
15 | vulnerabilityTrend.setSeverity(resultSet.getString("severity"));
16 | return vulnerabilityTrend;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/models/mapper/VulnerableTypeMapper.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.models.mapper;
2 |
3 | import com.olacabs.jackhammer.models.VulnerableType;
4 | import org.skife.jdbi.v2.StatementContext;
5 | import org.skife.jdbi.v2.tweak.ResultSetMapper;
6 |
7 | import java.sql.ResultSet;
8 | import java.sql.SQLException;
9 |
10 | public class VulnerableTypeMapper implements ResultSetMapper {
11 | public VulnerableType map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException {
12 | VulnerableType vulnerableType = new VulnerableType();
13 | vulnerableType.setName(resultSet.getString("name"));
14 | return vulnerableType;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/ActionResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.exceptions.OperationFailedException;
5 | import com.olacabs.jackhammer.models.Action;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | public class ActionResponseBuilder extends AbstractResponseBuilder {
10 | public Response buildFetchRecordResponse(Action action) throws OperationFailedException {
11 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(action).build();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/AnalyticsResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.models.Analytics;
5 | import lombok.extern.slf4j.Slf4j;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | @Slf4j
10 | public class AnalyticsResponseBuilder extends AbstractResponseBuilder {
11 |
12 | @Override
13 | public Response buildFetchRecordResponse(Analytics analytics) {
14 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(analytics).build();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/ApplicationResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.models.Group;
5 | import lombok.extern.slf4j.Slf4j;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | @Slf4j
10 | public class ApplicationResponseBuilder extends AbstractResponseBuilder {
11 |
12 | @Override
13 | public Response buildFetchRecordResponse(Group group) {
14 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(group).build();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/ChangePasswordResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.exceptions.OperationFailedException;
4 | import com.olacabs.jackhammer.models.User;
5 |
6 | import javax.ws.rs.core.Response;
7 |
8 | public class ChangePasswordResponseBuilder extends AbstractResponseBuilder {
9 | @Override
10 | public Response buildFetchRecordResponse(User model) throws OperationFailedException {
11 | return null;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/CommentResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.models.Comment;
5 | import lombok.extern.slf4j.Slf4j;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | @Slf4j
10 | public class CommentResponseBuilder extends AbstractResponseBuilder {
11 |
12 | @Override
13 | public Response buildFetchRecordResponse(Comment comment) {
14 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(comment).build();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/DashboardResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.models.Dashboard;
5 | import lombok.extern.slf4j.Slf4j;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | @Slf4j
10 | public class DashboardResponseBuilder extends AbstractResponseBuilder {
11 |
12 | @Override
13 | public Response buildFetchRecordResponse(Dashboard dashboard) {
14 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(dashboard).build();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/DefaultRoleResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.exceptions.OperationFailedException;
5 | import com.olacabs.jackhammer.models.DefaultRole;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | public class DefaultRoleResponseBuilder extends AbstractResponseBuilder {
10 | public Response buildFetchRecordResponse(DefaultRole defaultRole) throws OperationFailedException {
11 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(defaultRole).build();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/FindingResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.models.Finding;
5 |
6 | import javax.ws.rs.core.Response;
7 |
8 | public class FindingResponseBuilder extends AbstractResponseBuilder {
9 |
10 | @Override
11 | public Response buildFetchRecordResponse(Finding finding) {
12 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(finding).build();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/GitResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.exceptions.OperationFailedException;
5 | import com.olacabs.jackhammer.models.Git;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | public class GitResponseBuilder extends AbstractResponseBuilder {
10 | public Response buildFetchRecordResponse(Git git) throws OperationFailedException {
11 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(git).build();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/GroupResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.models.Group;
5 | import com.olacabs.jackhammer.models.PagedResponse;
6 |
7 | import javax.ws.rs.core.GenericEntity;
8 | import javax.ws.rs.core.Response;
9 | import java.util.List;
10 |
11 | public class GroupResponseBuilder extends AbstractResponseBuilder {
12 | @Override
13 | public Response buildFetchRecordResponse(Group group) {
14 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(group).build();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/HardcodeSecretResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.exceptions.OperationFailedException;
5 | import com.olacabs.jackhammer.models.HardcodeSecret;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | public class HardcodeSecretResponseBuilder extends AbstractResponseBuilder {
10 | public Response buildFetchRecordResponse(HardcodeSecret hardcodeSecret) throws OperationFailedException {
11 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(hardcodeSecret).build();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/JiraDetailResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.exceptions.OperationFailedException;
5 | import com.olacabs.jackhammer.models.JiraDetail;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | public class JiraDetailResponseBuilder extends AbstractResponseBuilder {
10 | public Response buildFetchRecordResponse(JiraDetail jiraDetail) throws OperationFailedException {
11 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(jiraDetail).build();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/LanguageResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.HttpResponseCodes;
4 | import com.olacabs.jackhammer.models.Tool;
5 |
6 | import javax.ws.rs.core.Response;
7 |
8 | public class LanguageResponseBuilder extends AbstractResponseBuilder {
9 |
10 | @Override
11 | public Response buildFetchRecordResponse(Tool tool) {
12 | return Response.status(HttpResponseCodes.HTTP_RESPONSE_SUCCESS).entity(tool).build();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/PermissionResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.HttpResponseCodes;
4 | import com.olacabs.jackhammer.models.Permission;
5 | import lombok.extern.slf4j.Slf4j;
6 |
7 | import javax.ws.rs.core.GenericEntity;
8 | import javax.ws.rs.core.Response;
9 | import java.util.List;
10 |
11 | @Slf4j
12 | public class PermissionResponseBuilder extends AbstractResponseBuilder {
13 |
14 | @Override
15 | public Response buildFetchRecordResponse(Permission permission) {
16 | return Response.status(HttpResponseCodes.HTTP_RESPONSE_SUCCESS).entity(permission).build();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/RepoResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.HttpResponseCodes;
4 | import com.olacabs.jackhammer.models.Repo;
5 |
6 | import javax.ws.rs.core.GenericEntity;
7 | import javax.ws.rs.core.Response;
8 | import java.util.List;
9 |
10 | public class RepoResponseBuilder extends AbstractResponseBuilder {
11 |
12 | @Override
13 | public Response buildFetchRecordResponse(Repo repo) {
14 | return Response.status(HttpResponseCodes.HTTP_RESPONSE_SUCCESS).entity(repo).build();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/ResetPasswordResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.exceptions.OperationFailedException;
4 | import com.olacabs.jackhammer.models.User;
5 |
6 | import javax.ws.rs.core.Response;
7 |
8 | public class ResetPasswordResponseBuilder extends AbstractResponseBuilder {
9 | @Override
10 | public Response buildFetchRecordResponse(User model) throws OperationFailedException {
11 | return null;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/RoleResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.models.Role;
5 |
6 | import lombok.extern.slf4j.Slf4j;
7 |
8 | import javax.ws.rs.core.GenericEntity;
9 |
10 | import javax.ws.rs.core.Response;
11 | import java.util.List;
12 |
13 | @Slf4j
14 | public class RoleResponseBuilder extends AbstractResponseBuilder {
15 |
16 | @Override
17 | public Response buildFetchRecordResponse(Role role) {
18 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(role).build();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/SMTPDetailResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.exceptions.OperationFailedException;
5 | import com.olacabs.jackhammer.models.SMTPDetail;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | public class SMTPDetailResponseBuilder extends AbstractResponseBuilder {
10 | public Response buildFetchRecordResponse(SMTPDetail smtpDetail) throws OperationFailedException {
11 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(smtpDetail).build();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/ScanResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.models.Scan;
5 |
6 | import javax.ws.rs.core.GenericEntity;
7 | import javax.ws.rs.core.Response;
8 | import java.util.List;
9 |
10 | public class ScanResponseBuilder extends AbstractResponseBuilder {
11 |
12 | @Override
13 | public Response buildFetchRecordResponse(Scan scan) {
14 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(scan).build();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/ScanTypeResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.HttpResponseCodes;
4 | import com.olacabs.jackhammer.models.ScanType;
5 | import com.olacabs.jackhammer.models.Tool;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | public class ScanTypeResponseBuilder extends AbstractResponseBuilder {
10 |
11 | @Override
12 | public Response buildFetchRecordResponse(ScanType scanType) {
13 | return Response.status(HttpResponseCodes.HTTP_RESPONSE_SUCCESS).entity(scanType).build();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/ScheduleTypeResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.HttpResponseCodes;
4 | import com.olacabs.jackhammer.models.ScheduleType;
5 |
6 | import javax.ws.rs.core.GenericEntity;
7 | import javax.ws.rs.core.Response;
8 | import java.util.List;
9 |
10 | public class ScheduleTypeResponseBuilder extends AbstractResponseBuilder {
11 |
12 | @Override
13 | public Response buildFetchRecordResponse(ScheduleType scheduleType) {
14 | return Response.status(HttpResponseCodes.HTTP_RESPONSE_SUCCESS).entity(scheduleType).build();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/SeverityLevelResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.exceptions.OperationFailedException;
5 | import com.olacabs.jackhammer.models.SeverityLevel;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | public class SeverityLevelResponseBuilder extends AbstractResponseBuilder {
10 | public Response buildFetchRecordResponse(SeverityLevel severityLevel) throws OperationFailedException {
11 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(severityLevel).build();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/TagResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.models.Tag;
5 | import lombok.extern.slf4j.Slf4j;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | @Slf4j
10 | public class TagResponseBuilder extends AbstractResponseBuilder {
11 |
12 | @Override
13 | public Response buildFetchRecordResponse(Tag tag) {
14 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(tag).build();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/TaskResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.CustomErrorCodes;
4 | import com.olacabs.jackhammer.exceptions.OperationFailedException;
5 | import com.olacabs.jackhammer.models.Task;
6 |
7 | import javax.ws.rs.core.Response;
8 |
9 | public class TaskResponseBuilder extends AbstractResponseBuilder {
10 | public Response buildFetchRecordResponse(Task task) throws OperationFailedException {
11 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(task).build();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/ToolResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.common.HttpResponseCodes;
4 | import com.olacabs.jackhammer.models.Tool;
5 |
6 | import javax.ws.rs.core.Response;
7 |
8 | public class ToolResponseBuilder extends AbstractResponseBuilder {
9 |
10 | @Override
11 | public Response buildFetchRecordResponse(Tool tool) {
12 | return Response.status(HttpResponseCodes.HTTP_RESPONSE_SUCCESS).entity(tool).build();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/UploadResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 | import com.olacabs.jackhammer.models.Upload;
4 | import lombok.extern.slf4j.Slf4j;
5 |
6 | import javax.ws.rs.core.HttpHeaders;
7 | import javax.ws.rs.core.Response;
8 |
9 | @Slf4j
10 | public class UploadResponseBuilder extends AbstractResponseBuilder {
11 |
12 | @Override
13 | public Response buildFetchRecordResponse(Upload upload) {
14 | return Response.ok(upload)
15 | .header(HttpHeaders.CONTENT_DISPOSITION,
16 | "attachment; filename=" + "\"" + upload.getName() + "\"")
17 | .build();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/response/builder/UserResponseBuilder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.response.builder;
2 |
3 |
4 | import javax.ws.rs.core.Response;
5 |
6 | import com.olacabs.jackhammer.common.*;
7 | import com.olacabs.jackhammer.models.*;
8 |
9 | import lombok.AllArgsConstructor;
10 | import lombok.extern.slf4j.Slf4j;
11 |
12 |
13 | @Slf4j
14 | @AllArgsConstructor
15 | public class UserResponseBuilder extends AbstractResponseBuilder {
16 |
17 | @Override
18 | public Response buildFetchRecordResponse(User user) {
19 | User responseUser = new User();
20 | responseUser.setGroups(user.getGroups());
21 | responseUser.setRoles(user.getRoles());
22 | responseUser.setEmail(user.getEmail());
23 | return Response.status(CustomErrorCodes.HTTP_RESPONSE_SUCCESS.getValue()).entity(responseUser).build();
24 | }
25 |
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/scan/manager/ScanPicker.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.scan.manager;
2 |
3 |
4 | import com.google.inject.Inject;
5 | import com.google.inject.name.Named;
6 |
7 | import com.olacabs.jackhammer.db.ScanDAO;
8 |
9 | import lombok.extern.slf4j.Slf4j;
10 |
11 | import java.util.List;
12 |
13 | import com.olacabs.jackhammer.common.Constants;
14 | import com.olacabs.jackhammer.models.Scan;
15 | import com.olacabs.jackhammer.utilities.ScanUtil;
16 |
17 | @Slf4j
18 | public class ScanPicker implements Runnable {
19 |
20 | @Inject
21 | ScanUtil scanUtil;
22 |
23 | @Inject
24 | @Named(Constants.SCAN_DAO)
25 | ScanDAO scanDAO;
26 |
27 | public void run() {
28 | List scanList = scanDAO.getQueuedScans();
29 | log.info("Pending scans count ==>{} {} ", scanList.size());
30 | for (Scan scan : scanList) {
31 | scanUtil.startScan(scan);
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/scan/manager/ScheduledScanPooler.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.scan.manager;
2 |
3 | import com.google.inject.Inject;
4 | import com.olacabs.jackhammer.configuration.JackhammerConfiguration;
5 | import io.dropwizard.lifecycle.Managed;
6 |
7 | import java.util.concurrent.ScheduledThreadPoolExecutor;
8 | import java.util.concurrent.TimeUnit;
9 |
10 | public class ScheduledScanPooler implements Managed {
11 | @Inject
12 | JackhammerConfiguration jackhammerConfiguration;
13 |
14 | @Inject
15 | ScheduledScanPicker scheduledScanPicker;
16 |
17 | public void start() throws Exception {
18 |
19 | //setting thread pool
20 | int threadPoolSize = jackhammerConfiguration.getScanMangerConfiguration().getThreadPoolSize();
21 | int initialDelay = jackhammerConfiguration.getScanMangerConfiguration().getInitialDelay();
22 | int period = jackhammerConfiguration.getScanMangerConfiguration().getPeriod();
23 | ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(threadPoolSize);
24 | executor.scheduleAtFixedRate(scheduledScanPicker, initialDelay, period, TimeUnit.SECONDS);
25 | }
26 |
27 | public void stop() throws Exception {
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/scan/manager/WpScanSchedulerPicker.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.scan.manager;
2 |
3 | import com.google.inject.Inject;
4 | import com.google.inject.name.Named;
5 | import com.olacabs.jackhammer.common.Constants;
6 | import com.olacabs.jackhammer.db.ScanDAO;
7 | import com.olacabs.jackhammer.db.ScanTypeDAO;
8 | import com.olacabs.jackhammer.models.Scan;
9 | import com.olacabs.jackhammer.models.ScanType;
10 | import com.olacabs.jackhammer.utilities.ScanUtil;
11 | import lombok.extern.slf4j.Slf4j;
12 |
13 | import java.util.List;
14 |
15 | @Slf4j
16 | public class WpScanSchedulerPicker implements Runnable {
17 |
18 | @Inject
19 | @Named(Constants.SCAN_DAO)
20 | ScanDAO scanDAO;
21 |
22 | @Inject
23 | ScanUtil scanUtil;
24 |
25 | @Inject
26 | @Named(Constants.SCAN_TYPE_DAO)
27 | ScanTypeDAO scanTypeDAO;
28 |
29 | public void run() {
30 | ScanType scanType = scanTypeDAO.getWpScanType();
31 | List scanList = scanDAO.getWordpressScans(scanType.getId());
32 | log.info("Total scheduled scans count ..{} {} ", scanList.size());
33 | for (Scan scan : scanList) {
34 | scanUtil.startScan(scan);
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/scan/manager/WpScanSchedulerPooler.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.scan.manager;
2 |
3 | import com.google.inject.Inject;
4 | import com.olacabs.jackhammer.configuration.JackhammerConfiguration;
5 | import io.dropwizard.lifecycle.Managed;
6 |
7 | import java.util.concurrent.ScheduledThreadPoolExecutor;
8 | import java.util.concurrent.TimeUnit;
9 |
10 | public class WpScanSchedulerPooler implements Managed {
11 |
12 | @Inject
13 | JackhammerConfiguration jackhammerConfiguration;
14 |
15 | @Inject
16 | WpScanSchedulerPicker wpScanSchedulerPicker;
17 |
18 | public void start() throws Exception {
19 | //setting thread pool
20 | int threadPoolSize = jackhammerConfiguration.getScanMangerConfiguration().getThreadPoolSize();
21 | int initialDelay = jackhammerConfiguration.getScanMangerConfiguration().getInitialDelay();
22 | ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(threadPoolSize);
23 | executor.scheduleAtFixedRate(wpScanSchedulerPicker, initialDelay, 1, TimeUnit.DAYS);
24 | }
25 |
26 | public void stop() throws Exception {
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/service/ChangePasswordDataService.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.service;
2 |
3 | import com.google.inject.Inject;
4 | import com.google.inject.name.Named;
5 | import com.olacabs.jackhammer.common.Constants;
6 | import com.olacabs.jackhammer.db.UserDAO;
7 | import com.olacabs.jackhammer.models.PagedResponse;
8 | import com.olacabs.jackhammer.models.User;
9 |
10 | public class ChangePasswordDataService extends AbstractDataService {
11 |
12 | @Inject
13 | @Named(Constants.USER_DAO)
14 | UserDAO userDAO;
15 |
16 | @Override
17 | public PagedResponse getAllRecords(User model) {
18 | return null;
19 | }
20 |
21 | @Override
22 | public User createRecord(User model) {
23 | return null;
24 | }
25 |
26 | @Override
27 | public User fetchRecordByname(User model) {
28 | return null;
29 | }
30 |
31 | @Override
32 | public User fetchRecordById(long id) {
33 | return null;
34 | }
35 |
36 | @Override
37 | public void updateRecord(User user) {
38 | userDAO.updatePassword(user);
39 | }
40 |
41 | @Override
42 | public void deleteRecord(long id) {
43 |
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/service/CommentDataService.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.service;
2 |
3 | import com.google.inject.Inject;
4 | import com.google.inject.name.Named;
5 | import com.olacabs.jackhammer.common.Constants;
6 | import com.olacabs.jackhammer.db.CommentDAO;
7 | import com.olacabs.jackhammer.models.*;
8 |
9 | import java.util.List;
10 |
11 |
12 | public class CommentDataService extends AbstractDataService {
13 |
14 | @Inject
15 | @Named(Constants.COMMENT_DAO)
16 | CommentDAO commentDAO;
17 |
18 | @Override
19 | public PagedResponse getAllRecords(Comment comment) {
20 | List commentList = commentDAO.getAll(comment);
21 | for(Comment eachComment : commentList) {
22 | User user = userDAOJdbi.get(eachComment.getUserId());
23 | eachComment.setUserName(user.getName());
24 | }
25 | paginationRecords.setItems(commentList);
26 | return paginationRecords;
27 | }
28 |
29 | @Override
30 | public Comment fetchRecordByname(Comment comment){
31 | return null;
32 | }
33 |
34 | @Override
35 | public Comment fetchRecordById(long id){
36 | return commentDAO.get(id);
37 | }
38 |
39 | @Override
40 | public Comment createRecord(Comment comment) {
41 | long id = commentDAO.insert(comment);
42 | return commentDAO.get(id);
43 | }
44 | @Override
45 | public void updateRecord(Comment comment){
46 | commentDAO.update(comment);
47 | }
48 | @Override
49 | public void deleteRecord(long id){
50 | roleDAOJdbi.delete(id);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/service/DefaultRoleDataService.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.service;
2 |
3 | import com.google.inject.Inject;
4 | import com.google.inject.name.Named;
5 | import com.olacabs.jackhammer.common.Constants;
6 | import com.olacabs.jackhammer.db.DefaultRoleDAO;
7 | import com.olacabs.jackhammer.models.DefaultRole;
8 | import com.olacabs.jackhammer.models.PagedResponse;
9 |
10 | public class DefaultRoleDataService extends AbstractDataService {
11 |
12 | @Inject
13 | @Named(Constants.DEFAULT_ROLE_DAO)
14 | DefaultRoleDAO defaultRoleDAO;
15 |
16 |
17 | public PagedResponse getAllRecords(DefaultRole defaultRole) {
18 | return null;
19 | }
20 |
21 | public DefaultRole createRecord(DefaultRole defaultRole) {
22 | DefaultRole dbDefaultRole = defaultRoleDAO.get();
23 | if (dbDefaultRole == null) {
24 | defaultRoleDAO.insert(defaultRole);
25 | }
26 | return dbDefaultRole;
27 | }
28 |
29 | public DefaultRole fetchRecordByname(DefaultRole model) {
30 | return null;
31 | }
32 |
33 | public DefaultRole fetchRecordById(long id) {
34 | DefaultRole defaultRole = defaultRoleDAO.get();
35 | return defaultRole;
36 | }
37 |
38 | public void updateRecord(DefaultRole defaultRole) {
39 | defaultRoleDAO.update(defaultRole);
40 | }
41 |
42 | public void deleteRecord(long id) {
43 |
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/service/HardcodeSecretDataService.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.service;
2 |
3 | import com.google.inject.Inject;
4 | import com.google.inject.name.Named;
5 | import com.olacabs.jackhammer.common.Constants;
6 | import com.olacabs.jackhammer.configuration.JackhammerConfiguration;
7 | import com.olacabs.jackhammer.db.HardcodeSecretDAO;
8 | import com.olacabs.jackhammer.models.PagedResponse;
9 | import com.olacabs.jackhammer.models.HardcodeSecret;
10 |
11 | public class HardcodeSecretDataService extends AbstractDataService {
12 |
13 | @Inject
14 | @Named(Constants.HARDCODE_SECRET_DAO)
15 | HardcodeSecretDAO hardcodeSecretDAO;
16 |
17 | @Inject
18 | JackhammerConfiguration jackhammerConfiguration;
19 |
20 | public PagedResponse getAllRecords(HardcodeSecret hardcodeSecret) {
21 | return null;
22 | }
23 |
24 | public HardcodeSecret createRecord(HardcodeSecret hardcodeSecret) {
25 | HardcodeSecret dbHardcodeSecret = hardcodeSecretDAO.get();
26 | if (dbHardcodeSecret == null) {
27 | hardcodeSecretDAO.insert(hardcodeSecret);
28 | }
29 | return dbHardcodeSecret;
30 | }
31 |
32 | public HardcodeSecret fetchRecordByname(HardcodeSecret model) {
33 | return null;
34 | }
35 |
36 | public HardcodeSecret fetchRecordById(long id) {
37 | HardcodeSecret hardcodeSecret = hardcodeSecretDAO.get();
38 | return hardcodeSecret;
39 | }
40 |
41 | public void updateRecord(HardcodeSecret hardcodeSecret) {
42 | hardcodeSecretDAO.update(hardcodeSecret);
43 | }
44 |
45 | public void deleteRecord(long id) {
46 |
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/service/ResetPasswordDataService.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.service;
2 |
3 | import com.google.inject.Inject;
4 | import com.google.inject.name.Named;
5 | import com.olacabs.jackhammer.common.Constants;
6 | import com.olacabs.jackhammer.db.UserDAO;
7 | import com.olacabs.jackhammer.models.PagedResponse;
8 | import com.olacabs.jackhammer.models.User;
9 |
10 | public class ResetPasswordDataService extends AbstractDataService {
11 | @Inject
12 | @Named(Constants.USER_DAO)
13 | UserDAO userDAO;
14 | @Override
15 | public PagedResponse getAllRecords(User user) { return null; }
16 |
17 | @Override
18 | public User createRecord(User user) {
19 | userDAOJdbi.updateResetPasswordToken(user);
20 | return user;
21 | }
22 |
23 | @Override
24 | public User fetchRecordByname(User model) {
25 | return null;
26 | }
27 |
28 | @Override
29 | public User fetchRecordById(long id) {
30 | return null;
31 | }
32 |
33 | @Override
34 | public void updateRecord(User user) {
35 | user.setNewPassword(user.getPassword());
36 | userDAO.updatePassword(user);
37 | }
38 |
39 | @Override
40 | public void deleteRecord(long id) {
41 |
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/service/ScheduleTypeDataService.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.service;
2 |
3 | import com.google.inject.Inject;
4 | import com.google.inject.name.Named;
5 | import com.olacabs.jackhammer.common.Constants;
6 | import com.olacabs.jackhammer.db.ScheduleTypeDAO;
7 | import com.olacabs.jackhammer.models.PagedResponse;
8 | import com.olacabs.jackhammer.models.ScheduleType;
9 |
10 | import java.util.List;
11 |
12 | public class ScheduleTypeDataService extends AbstractDataService {
13 |
14 | @Inject
15 | @Named(Constants.SCHEDULE_TYPE_DAO)
16 | ScheduleTypeDAO scheduleTypeDAO;
17 | @Override
18 | public PagedResponse getAllRecords(ScheduleType scheduleType) {
19 | paginationRecords.setItems(scheduleTypeDAO.getAll());
20 | // setCRUDPermissions(paginationRecords,scheduleType,null);
21 | setOwnerAndScanType(paginationRecords,scheduleType);
22 | return paginationRecords;
23 | }
24 | @Override
25 | public ScheduleType fetchRecordByname(ScheduleType scheduleType){
26 | return scheduleTypeDAO.findScheduleByName(scheduleType.getName());
27 | }
28 | @Override
29 | public ScheduleType fetchRecordById(long id){
30 | return scheduleTypeDAO.get(id);
31 | }
32 | @Override
33 | public ScheduleType createRecord(ScheduleType scheduleType) {
34 | return scheduleTypeDAO.save(scheduleType);
35 | }
36 | @Override
37 | public void updateRecord(ScheduleType scheduleType){
38 | scheduleTypeDAO.update(scheduleType);
39 | }
40 | @Override
41 | public void deleteRecord(long id){
42 | scheduleTypeDAO.delete(id);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/service/UploadDataService.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.service;
2 |
3 | import com.google.inject.Inject;
4 | import com.google.inject.name.Named;
5 | import com.olacabs.jackhammer.common.Constants;
6 | import com.olacabs.jackhammer.db.UploadDAO;
7 | import com.olacabs.jackhammer.models.PagedResponse;
8 | import com.olacabs.jackhammer.models.Upload;
9 | import com.olacabs.jackhammer.models.User;
10 | import lombok.extern.slf4j.Slf4j;
11 |
12 | import java.util.List;
13 |
14 |
15 | @Slf4j
16 | public class UploadDataService extends AbstractDataService {
17 |
18 | @Inject
19 | @Named(Constants.UPLOAD_DAO)
20 | UploadDAO uploadDAO;
21 |
22 | @Override
23 | public PagedResponse getAllRecords(Upload upload) {
24 |
25 | List uploadList = uploadDAO.getAll(upload);
26 | for(Upload eachUpload : uploadList) {
27 | User user = userDAOJdbi.get(eachUpload.getUserId());
28 | eachUpload.setUserName(user.getName());
29 | }
30 | paginationRecords.setItems(uploadList);
31 | return paginationRecords;
32 | }
33 |
34 | @Override
35 | public Upload fetchRecordByname(Upload upload){
36 | return null;
37 | }
38 |
39 | @Override
40 | public Upload fetchRecordById(long id){
41 | return uploadDAO.get(id);
42 | }
43 |
44 | @Override
45 | public Upload createRecord(Upload upload) {
46 | int id = uploadDAO.insert(upload);
47 | return uploadDAO.get(id);
48 | }
49 |
50 | @Override
51 | public void updateRecord(Upload upload){
52 |
53 | }
54 | @Override
55 | public void deleteRecord(long id){
56 | uploadDAO.delete(id);
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/tool/interfaces/container/manager/ActiveToolInstanceManager.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.tool.interfaces.container.manager;
2 |
3 | import com.google.inject.Inject;
4 | import lombok.extern.slf4j.Slf4j;
5 |
6 | import com.olacabs.jackhammer.configuration.JackhammerConfiguration;
7 | import io.dropwizard.lifecycle.Managed;
8 |
9 | import java.util.concurrent.ScheduledThreadPoolExecutor;
10 | import java.util.concurrent.TimeUnit;
11 |
12 | @Slf4j
13 | public class ActiveToolInstanceManager implements Managed {
14 |
15 | @Inject
16 | JackhammerConfiguration jackhammerConfiguration;
17 |
18 | @Inject
19 | ActiveToolInstanceHealthCheck activeToolInstanceHealthCheck;
20 |
21 |
22 | public void start() throws Exception {
23 | try {
24 | //setting thread pool
25 | int threadPoolSize = jackhammerConfiguration.getToolManagerConfiguration().getThreadPoolSize();
26 | int initialDelay = jackhammerConfiguration.getToolManagerConfiguration().getInitialDelay();
27 | int period = jackhammerConfiguration.getToolManagerConfiguration().getPeriod();
28 | ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(threadPoolSize);
29 | executor.scheduleAtFixedRate(activeToolInstanceHealthCheck, initialDelay, period, TimeUnit.SECONDS);
30 | } catch (Throwable th) {
31 | log.error("Error in Tool Pooler while pooling", th);
32 | }
33 | }
34 |
35 | public void stop() throws Exception {
36 |
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/tool/interfaces/container/manager/AutoScalingManager.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.tool.interfaces.container.manager;
2 |
3 | import com.google.inject.Inject;
4 | import lombok.extern.slf4j.Slf4j;
5 |
6 | import com.olacabs.jackhammer.configuration.JackhammerConfiguration;
7 | import io.dropwizard.lifecycle.Managed;
8 |
9 | import java.util.concurrent.ScheduledThreadPoolExecutor;
10 | import java.util.concurrent.TimeUnit;
11 |
12 | @Slf4j
13 | public class AutoScalingManager implements Managed {
14 |
15 | @Inject
16 | private JackhammerConfiguration jackhammerConfiguration;
17 |
18 | @Inject
19 | private AutoScalingTool autoScalingTool;
20 |
21 | public void start() throws Exception {
22 | try {
23 | //setting thread pool
24 | int threadPoolSize = jackhammerConfiguration.getToolManagerConfiguration().getThreadPoolSize();
25 | int initialDelay = jackhammerConfiguration.getToolManagerConfiguration().getInitialDelay();
26 | int period = jackhammerConfiguration.getToolManagerConfiguration().getPeriod();
27 | ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(threadPoolSize);
28 | executor.scheduleAtFixedRate(autoScalingTool, 0, period/4, TimeUnit.MINUTES);
29 | } catch (Throwable th) {
30 | log.error("Error in ToolPooler while pooling", th);
31 | }
32 | }
33 |
34 | public void stop() throws Exception {
35 |
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/tool/interfaces/container/manager/HangedToolInstanceManager.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.tool.interfaces.container.manager;
2 |
3 | import com.google.inject.Inject;
4 | import com.olacabs.jackhammer.configuration.JackhammerConfiguration;
5 | import io.dropwizard.lifecycle.Managed;
6 | import lombok.extern.slf4j.Slf4j;
7 |
8 | import java.util.concurrent.ScheduledThreadPoolExecutor;
9 | import java.util.concurrent.TimeUnit;
10 |
11 | @Slf4j
12 | public class HangedToolInstanceManager implements Managed {
13 |
14 |
15 | @Inject
16 | JackhammerConfiguration jackhammerConfiguration;
17 |
18 | @Inject
19 | HangedToolInstanceCheck hangedToolInstanceCheck;
20 |
21 |
22 | public void start() throws Exception {
23 | try {
24 | //setting thread pool
25 | int threadPoolSize = jackhammerConfiguration.getToolManagerConfiguration().getThreadPoolSize();
26 | int initialDelay = jackhammerConfiguration.getToolManagerConfiguration().getInitialDelay();
27 | int period = jackhammerConfiguration.getToolManagerConfiguration().getPeriod();
28 | ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(threadPoolSize);
29 | executor.scheduleAtFixedRate(hangedToolInstanceCheck, initialDelay, period/2, TimeUnit.MINUTES);
30 | } catch (Throwable th) {
31 | log.error("Error in ToolPooler while pooling", th);
32 | }
33 | }
34 |
35 | public void stop() throws Exception {
36 |
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/tool/interfaces/request/ScanRequest.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.tool.interfaces.request;
2 |
3 | import com.google.inject.Inject;
4 | import com.google.inject.name.Named;
5 | import com.olacabs.jackhammer.common.Constants;
6 | import com.olacabs.jackhammer.db.ScanDAO;
7 | import com.olacabs.jackhammer.models.Scan;
8 |
9 |
10 | public class ScanRequest {
11 |
12 |
13 | @Inject
14 | @Named(Constants.SCAN_DAO)
15 | ScanDAO scanDAO;
16 |
17 | public void changeScanStatus(Scan scan,String status) {
18 | scan.setStatus(Constants.SCAN_PROGRESS_STATUS);
19 | scan.setStatus(status);
20 | scanDAO.updateScanStatus(scan);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/tool/interfaces/request/ScanRequestEncoder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.tool.interfaces.request;
2 |
3 |
4 | import com.fasterxml.jackson.databind.ObjectMapper;
5 | import com.olacabs.jackhammer.models.Scan;
6 |
7 | import javax.websocket.EncodeException;
8 | import javax.websocket.Encoder;
9 | import javax.websocket.EndpointConfig;
10 | import java.io.IOException;
11 |
12 | public class ScanRequestEncoder implements Encoder.Text {
13 |
14 | private static final ObjectMapper MAPPER = new ObjectMapper();
15 |
16 | public void destroy() {
17 | // TODO Auto-generated method stub
18 |
19 | }
20 |
21 | public void init(EndpointConfig arg0) {
22 | // TODO Auto-generated method stub
23 |
24 | }
25 |
26 | public String encode(Scan scan) throws EncodeException {
27 | try {
28 | return MAPPER.writeValueAsString(scan);
29 | } catch (IOException e) {
30 | throw new EncodeException(scan, "Could not encode.", e);
31 | }
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/com/olacabs/jackhammer/tool/interfaces/response/ScanResponseDecoder.java:
--------------------------------------------------------------------------------
1 | package com.olacabs.jackhammer.tool.interfaces.response;
2 |
3 | import com.fasterxml.jackson.core.JsonFactory;
4 | import com.fasterxml.jackson.core.type.TypeReference;
5 | import com.fasterxml.jackson.databind.ObjectMapper;
6 | import lombok.extern.slf4j.Slf4j;
7 |
8 | import javax.websocket.DecodeException;
9 | import javax.websocket.Decoder;
10 | import javax.websocket.EndpointConfig;
11 | import java.io.StringReader;
12 | import java.util.HashMap;
13 | import java.util.Map;
14 |
15 |
16 | @Slf4j
17 | public class ScanResponseDecoder implements Decoder.Text