├── .github └── workflows │ ├── deploy.yml │ └── deploybeta.yml ├── .gitignore ├── .mvn └── wrapper │ └── maven-wrapper.jar ├── CHANGELOG.md ├── Dockerfile ├── LICENSE ├── lombok.config ├── pom.xml ├── readme.md └── src ├── main ├── java │ └── io │ │ └── mixeway │ │ ├── MixeWayApp.java │ │ ├── api │ │ ├── admin │ │ │ ├── controller │ │ │ │ ├── AdminScannerRestController.java │ │ │ │ ├── AdminSettingsRestController.java │ │ │ │ └── AdminUserRestController.java │ │ │ ├── model │ │ │ │ ├── AuthSettingsModel.java │ │ │ │ ├── CronSettings.java │ │ │ │ ├── EditUserModel.java │ │ │ │ ├── SmtpSettingsModel.java │ │ │ │ ├── VulnAuditorEditSettings.java │ │ │ │ └── WebAppScanStrategyModel.java │ │ │ └── service │ │ │ │ ├── AdminScannerRestService.java │ │ │ │ ├── AdminSettingsRestService.java │ │ │ │ └── AdminUserRestService.java │ │ ├── auth │ │ │ ├── controller │ │ │ │ └── AuthController.java │ │ │ ├── model │ │ │ │ ├── Password.java │ │ │ │ ├── PasswordAuthModel.java │ │ │ │ └── StatusEntity.java │ │ │ └── service │ │ │ │ └── AuthService.java │ │ ├── cicd │ │ │ ├── controller │ │ │ │ └── CICDController.java │ │ │ ├── model │ │ │ │ ├── CodeProjectInfo.java │ │ │ │ └── LoadSCA.java │ │ │ └── service │ │ │ │ └── CICDService.java │ │ ├── cioperations │ │ │ ├── controller │ │ │ │ └── CiOperationsController.java │ │ │ ├── model │ │ │ │ ├── CIVulnManageResponse.java │ │ │ │ ├── CiResultModel.java │ │ │ │ ├── GetInfoRequest.java │ │ │ │ ├── InfoScanPerformed.java │ │ │ │ ├── LoadVulnModel.java │ │ │ │ ├── PrepareCIOperation.java │ │ │ │ ├── ScannerType.java │ │ │ │ ├── VulnManageResponse.java │ │ │ │ ├── VulnerabilityModel.java │ │ │ │ ├── ZapAlertModel.java │ │ │ │ ├── ZapInstancesModel.java │ │ │ │ ├── ZapReportModel.java │ │ │ │ └── ZapSiteModel.java │ │ │ └── service │ │ │ │ └── CiOperationsService.java │ │ ├── controller │ │ │ └── LegacyController.java │ │ ├── dashboard │ │ │ ├── controller │ │ │ │ └── DashboardController.java │ │ │ ├── model │ │ │ │ ├── DashboardStat.java │ │ │ │ ├── DashboardTopStatistics.java │ │ │ │ ├── ProjectStat.java │ │ │ │ ├── Projects.java │ │ │ │ ├── SearchRequest.java │ │ │ │ ├── SearchResponse.java │ │ │ │ ├── SessionOwner.java │ │ │ │ ├── StatisticCard.java │ │ │ │ ├── VulnResponse.java │ │ │ │ └── VulnStat.java │ │ │ └── service │ │ │ │ └── DashboardService.java │ │ ├── openscap │ │ │ ├── controller │ │ │ │ └── OpenscapController.java │ │ │ └── service │ │ │ │ └── OpenscapRestService.java │ │ ├── profile │ │ │ ├── controller │ │ │ │ └── ProfileController.java │ │ │ ├── model │ │ │ │ ├── UpdateProfileModel.java │ │ │ │ └── UserProfile.java │ │ │ └── service │ │ │ │ └── ProfileService.java │ │ ├── project │ │ │ ├── controller │ │ │ │ ├── ApiAccessController.java │ │ │ │ ├── AssetControler.java │ │ │ │ ├── AuditController.java │ │ │ │ ├── BugTrackerController.java │ │ │ │ ├── CodeController.java │ │ │ │ ├── IaasApiController.java │ │ │ │ ├── OpenSourceController.java │ │ │ │ ├── ProjectAudit.java │ │ │ │ ├── ProjectRestController.java │ │ │ │ └── WebAppController.java │ │ │ ├── model │ │ │ │ ├── ApiKeyResponse.java │ │ │ │ ├── AssetCard.java │ │ │ │ ├── AssetModel.java │ │ │ │ ├── AssetPutModel.java │ │ │ │ ├── AuditRequest.java │ │ │ │ ├── CodeCard.java │ │ │ │ ├── CodeGroupPutModel.java │ │ │ │ ├── CodeModel.java │ │ │ │ ├── CodeProjectPutModel.java │ │ │ │ ├── CodeProjectSearch.java │ │ │ │ ├── ContactList.java │ │ │ │ ├── DetailStats.java │ │ │ │ ├── EditCodeProjectModel.java │ │ │ │ ├── IaasApiPutModel.java │ │ │ │ ├── IaasModel.java │ │ │ │ ├── OpenSourceConfig.java │ │ │ │ ├── ProjectStats.java │ │ │ │ ├── ProjectUser.java │ │ │ │ ├── ProjectVulnTrendChart.java │ │ │ │ ├── ProjectVulnTrendChartSerie.java │ │ │ │ ├── RiskCards.java │ │ │ │ ├── RunScanForAssets.java │ │ │ │ ├── RunScanForCodeProject.java │ │ │ │ ├── RunScanForWebApps.java │ │ │ │ ├── SASTProject.java │ │ │ │ ├── SoftVuln.java │ │ │ │ ├── VulnAuditorSettings.java │ │ │ │ ├── WebAppCard.java │ │ │ │ ├── WebAppModel.java │ │ │ │ ├── WebAppPutModel.java │ │ │ │ └── WebAppVulnModel.java │ │ │ └── service │ │ │ │ ├── ApiAccessService.java │ │ │ │ ├── AssetService.java │ │ │ │ ├── AuditService.java │ │ │ │ ├── BugTrackerService.java │ │ │ │ ├── CodeService.java │ │ │ │ ├── IaasApiService.java │ │ │ │ ├── OpenSourceService.java │ │ │ │ ├── ProjectAuditService.java │ │ │ │ ├── ProjectRestService.java │ │ │ │ └── WebAppService.java │ │ ├── protocol │ │ │ ├── OpenSourceConfig.java │ │ │ ├── OverAllVulnTrendChartData.java │ │ │ ├── SourceDetectionChartData.java │ │ │ ├── cioperations │ │ │ │ ├── CiResultModel.java │ │ │ │ ├── GetInfoRequest.java │ │ │ │ ├── InfoScanPerformed.java │ │ │ │ ├── PrepareCIOperation.java │ │ │ │ ├── ScannerType.java │ │ │ │ └── VulnerabilityModel.java │ │ │ ├── rfw │ │ │ │ └── RfwModel.java │ │ │ ├── securitygateway │ │ │ │ └── SecurityGatewayResponse.java │ │ │ ├── user │ │ │ │ └── UserModel.java │ │ │ └── vulnerability │ │ │ │ └── Vuln.java │ │ ├── statistic │ │ │ ├── controller │ │ │ │ └── VulnsController.java │ │ │ └── service │ │ │ │ └── VulnsService.java │ │ └── vulnmanage │ │ │ ├── controller │ │ │ ├── ScanManagerController.java │ │ │ └── VulnManageApiController.java │ │ │ ├── model │ │ │ ├── CreateScanManageRequest.java │ │ │ ├── GlobalStatistic.java │ │ │ ├── InfraScanMetadata.java │ │ │ ├── InfraVulnListDto.java │ │ │ ├── NetworkService.java │ │ │ ├── RequestId.java │ │ │ ├── ScannedAddress.java │ │ │ ├── SecurityGatewayResponse.java │ │ │ ├── SecurityScans.java │ │ │ ├── Vuln.java │ │ │ └── Vulnerabilities.java │ │ │ └── service │ │ │ ├── GetVulnerabilitiesService.java │ │ │ └── ScanManagerService.java │ │ ├── config │ │ ├── Constants.java │ │ ├── DispatcherConfig.java │ │ ├── HstsHeaderPerventionFilter.java │ │ ├── Interceptor.java │ │ ├── JacksonConfiguration.java │ │ ├── JwtSecretConfig.java │ │ ├── MailConfig.java │ │ ├── MvcConfig.java │ │ ├── NoAuthConfigurationAdapter.java │ │ ├── RestTemplateClient.java │ │ ├── SchedulerConfig.java │ │ ├── SwaggerConfig.java │ │ └── TrustStoreConfig.java │ │ ├── db │ │ ├── entity │ │ │ ├── Activity.java │ │ │ ├── ApiPermision.java │ │ │ ├── ApiType.java │ │ │ ├── Apis.java │ │ │ ├── Asset.java │ │ │ ├── BugTracker.java │ │ │ ├── BugTrackerType.java │ │ │ ├── CiOperations.java │ │ │ ├── CisRequirement.java │ │ │ ├── CodeProject.java │ │ │ ├── CodeProjectBranch.java │ │ │ ├── CodeScan.java │ │ │ ├── CxBranch.java │ │ │ ├── FortifySingleApp.java │ │ │ ├── GitCredentials.java │ │ │ ├── IaasApi.java │ │ │ ├── IaasApiType.java │ │ │ ├── InfraScan.java │ │ │ ├── Interface.java │ │ │ ├── Journal.java │ │ │ ├── LoginSequence.java │ │ │ ├── NessusScanTemplate.java │ │ │ ├── NessusScanner.java │ │ │ ├── Node.java │ │ │ ├── NodeAudit.java │ │ │ ├── Project.java │ │ │ ├── ProjectVulnerability.java │ │ │ ├── ProjectVulnerabilityAudit.java │ │ │ ├── ProjectVulnerabilityAuditId.java │ │ │ ├── Proxies.java │ │ │ ├── Requirement.java │ │ │ ├── RoutingDomain.java │ │ │ ├── Scanner.java │ │ │ ├── ScannerType.java │ │ │ ├── SecurityGateway.java │ │ │ ├── SecurityGroup.java │ │ │ ├── SecurityGroupRule.java │ │ │ ├── Service.java │ │ │ ├── Settings.java │ │ │ ├── Software.java │ │ │ ├── SoftwarePacket.java │ │ │ ├── Status.java │ │ │ ├── User.java │ │ │ ├── VulnHistory.java │ │ │ ├── Vulnerability.java │ │ │ ├── VulnerabilitySource.java │ │ │ ├── WebApp.java │ │ │ ├── WebAppCookies.java │ │ │ ├── WebAppHeader.java │ │ │ ├── WebAppScan.java │ │ │ └── WebAppScanStrategy.java │ │ ├── projection │ │ │ ├── BarChartProjection.java │ │ │ ├── CommonVulns.java │ │ │ ├── SoftwareVulnProjection.java │ │ │ ├── VulnBarChartProjection.java │ │ │ └── VulnerableProjects.java │ │ └── repository │ │ │ ├── ActivityRepository.java │ │ │ ├── ApiPermisionRepository.java │ │ │ ├── ApiTypeRepository.java │ │ │ ├── ApisRepository.java │ │ │ ├── AssetRepository.java │ │ │ ├── BugTrackerRepository.java │ │ │ ├── BugTrackerTypeRepository.java │ │ │ ├── CiOperationsRepository.java │ │ │ ├── CisRequirementRepository.java │ │ │ ├── CodeProjectBranchRepository.java │ │ │ ├── CodeProjectRepository.java │ │ │ ├── CodeScanRepository.java │ │ │ ├── CxBranchRepository.java │ │ │ ├── FortifySingleAppRepository.java │ │ │ ├── GitCredentialsRepository.java │ │ │ ├── IaasApiRepository.java │ │ │ ├── IaasApiTypeRepisotory.java │ │ │ ├── InfraScanRepository.java │ │ │ ├── InterfaceRepository.java │ │ │ ├── JournalRepository.java │ │ │ ├── LoginSequenceRepository.java │ │ │ ├── NessusScanTemplateRepository.java │ │ │ ├── NessusScannerRepository.java │ │ │ ├── NodeAuditRepository.java │ │ │ ├── NodeRepository.java │ │ │ ├── ProjectRepository.java │ │ │ ├── ProjectVulnerabilityAuditRepository.java │ │ │ ├── ProjectVulnerabilityRepository.java │ │ │ ├── ProxiesRepository.java │ │ │ ├── RequirementRepository.java │ │ │ ├── RoutingDomainRepository.java │ │ │ ├── ScannerRepository.java │ │ │ ├── ScannerTypeRepository.java │ │ │ ├── SecurityGatewayRepository.java │ │ │ ├── SecurityGroupRepository.java │ │ │ ├── SecurityGroupRuleRepository.java │ │ │ ├── ServiceRepository.java │ │ │ ├── SettingsRepository.java │ │ │ ├── SoftwarePacketRepository.java │ │ │ ├── SoftwareRepository.java │ │ │ ├── StatusRepository.java │ │ │ ├── UserRepository.java │ │ │ ├── VulnHistoryRepository.java │ │ │ ├── VulnerabilityRepository.java │ │ │ ├── VulnerabilitySourceRepository.java │ │ │ ├── WebAppCookieRepository.java │ │ │ ├── WebAppHeaderRepository.java │ │ │ ├── WebAppRepository.java │ │ │ ├── WebAppScanRepository.java │ │ │ └── WebAppScanStrategyRepository.java │ │ ├── domain │ │ ├── exceptions │ │ │ ├── NotValidRoleException.java │ │ │ └── ScanException.java │ │ └── service │ │ │ ├── asset │ │ │ ├── FindAssetService.java │ │ │ ├── GetOrCreateAssetService.java │ │ │ └── UpdateAssetService.java │ │ │ ├── bugtracker │ │ │ ├── CreateBugTracker.java │ │ │ ├── DeleteBugTrackerService.java │ │ │ └── FindBugTrackerService.java │ │ │ ├── cioperations │ │ │ ├── CreateCiOperationsService.java │ │ │ ├── FindCiOperationsService.java │ │ │ └── UpdateCiOperationsService.java │ │ │ ├── gitcredentials │ │ │ ├── CreateGitCredentialsService.java │ │ │ ├── DeleteGitCredentialsService.java │ │ │ ├── FindGitCredentialsService.java │ │ │ └── UpdateGitCredentialsService.java │ │ │ ├── iaasapi │ │ │ ├── DeleteIaasApiService.java │ │ │ ├── GetOrCreateIaasApiService.java │ │ │ └── UpdateIaasApiService.java │ │ │ ├── infrascan │ │ │ ├── FindInfraScanService.java │ │ │ ├── GetOrCreateInfraScanService.java │ │ │ └── UpdateInfraScanService.java │ │ │ ├── intf │ │ │ ├── DeleteInterfaceService.java │ │ │ ├── FindInterfaceService.java │ │ │ ├── GetOrCreateInterfaceService.java │ │ │ ├── InterfaceOperations.java │ │ │ └── UpdateInterfaceService.java │ │ │ ├── nessusscantemplate │ │ │ └── FindNessusScanTemplateService.java │ │ │ ├── opensource │ │ │ └── CreateOpenSourceConfigService.java │ │ │ ├── project │ │ │ ├── CreateProjectService.java │ │ │ ├── DeleteProjectService.java │ │ │ ├── FindProjectService.java │ │ │ ├── GetOrCreateProjectService.java │ │ │ └── UpdateProjectService.java │ │ │ ├── projectvulnerability │ │ │ ├── DeleteProjectVulnerabilityService.java │ │ │ ├── FindProjectVulnerabilityAuditService.java │ │ │ ├── GetProjectVulnerabilitiesService.java │ │ │ └── UpdateProjectVulnerabilityService.java │ │ │ ├── proxy │ │ │ ├── DeleteProxyService.java │ │ │ └── GetOrCreateProxyService.java │ │ │ ├── routingdomain │ │ │ ├── CreateOrGetRoutingDomainService.java │ │ │ ├── DeleteRoutingDomainService.java │ │ │ └── FindRoutingDomainService.java │ │ │ ├── scan │ │ │ └── GetScanNumberService.java │ │ │ ├── scanmanager │ │ │ ├── code │ │ │ │ ├── CreateCodeProjectBranchService.java │ │ │ │ ├── CreateOrGetCodeProjectService.java │ │ │ │ ├── FindCodeProjectService.java │ │ │ │ ├── GetOrCreateCodeProjectBranchService.java │ │ │ │ ├── OperateOnCodeProject.java │ │ │ │ ├── UpdateCodeProjectService.java │ │ │ │ └── VerifySASTPermissionsService.java │ │ │ └── webapp │ │ │ │ ├── DeleteWebAppService.java │ │ │ │ ├── FindWebAppService.java │ │ │ │ ├── GetOrCreateWebAppService.java │ │ │ │ ├── UpdateWebAppService.java │ │ │ │ └── VerifyWebAppScannerService.java │ │ │ ├── scanner │ │ │ ├── DeleteScannerService.java │ │ │ ├── FindScannerService.java │ │ │ ├── GetScannerService.java │ │ │ └── UpdateScannerService.java │ │ │ ├── scannertype │ │ │ └── FindScannerTypeService.java │ │ │ ├── securitygateway │ │ │ ├── FindSecurityGatewayService.java │ │ │ └── UpdateSecurityGatewayService.java │ │ │ ├── settings │ │ │ ├── GetSettingsService.java │ │ │ └── UpdateSettingsService.java │ │ │ ├── softwarepackage │ │ │ ├── FindSoftwarePacketService.java │ │ │ └── GetOrCreateSoftwarePacketService.java │ │ │ ├── user │ │ │ ├── EditUserService.java │ │ │ ├── FindUserService.java │ │ │ └── GetOrCreateUserService.java │ │ │ ├── vulnhistory │ │ │ ├── CreateVulnHistoryService.java │ │ │ ├── FindVulnHistoryService.java │ │ │ └── OperateOnVulnHistoryService.java │ │ │ ├── vulnmanager │ │ │ ├── CreateOrGetCisRequirementService.java │ │ │ ├── CreateOrGetVulnerabilityService.java │ │ │ ├── FindVulnerabilityService.java │ │ │ └── VulnTemplate.java │ │ │ └── webappscanstrategy │ │ │ ├── FindWebAppScanStrategyService.java │ │ │ └── UpdateWebAppScanStrategyService.java │ │ ├── jwt │ │ ├── JwtAuthenticationEntryPoint.java │ │ ├── JwtRequestFilter.java │ │ ├── JwtUserDetailsService.java │ │ ├── JwtUtils.java │ │ └── LoginUtil.java │ │ ├── scanmanager │ │ ├── integrations │ │ │ ├── acunetix │ │ │ │ ├── apiclient │ │ │ │ │ └── AcunetixApiClient.java │ │ │ │ └── model │ │ │ │ │ ├── AcunetixSeverity.java │ │ │ │ │ └── Reference.java │ │ │ ├── burpee │ │ │ │ ├── apiclient │ │ │ │ │ └── BurpEEApiClient.java │ │ │ │ └── model │ │ │ │ │ ├── AggregatedIssueSummary.java │ │ │ │ │ ├── AuthLogins.java │ │ │ │ │ ├── Configuration.java │ │ │ │ │ ├── CreateScanResponse.java │ │ │ │ │ ├── GetIssueDetails.java │ │ │ │ │ ├── GetSites.java │ │ │ │ │ ├── Issue.java │ │ │ │ │ ├── IssueDetail.java │ │ │ │ │ ├── IssueEvents.java │ │ │ │ │ ├── IssueSummary.java │ │ │ │ │ ├── Scan.java │ │ │ │ │ ├── ScanConfig.java │ │ │ │ │ ├── ScanConfiguration.java │ │ │ │ │ ├── ScanRequest.java │ │ │ │ │ ├── ScanResults.java │ │ │ │ │ ├── ScanSummaries.java │ │ │ │ │ ├── Site.java │ │ │ │ │ └── SiteIssues.java │ │ │ ├── checkmarx │ │ │ │ ├── apiclient │ │ │ │ │ └── CheckmarxApiClient.java │ │ │ │ └── model │ │ │ │ │ ├── CxCreateProject.java │ │ │ │ │ ├── CxCreateScan.java │ │ │ │ │ ├── CxGitCreate.java │ │ │ │ │ ├── CxLoginResponse.java │ │ │ │ │ ├── CxProject.java │ │ │ │ │ ├── CxProjectCreate.java │ │ │ │ │ ├── CxReportGenerate.java │ │ │ │ │ ├── CxReportStatus.java │ │ │ │ │ ├── CxResponseId.java │ │ │ │ │ ├── CxResult.java │ │ │ │ │ ├── CxResultCsvTemplate.java │ │ │ │ │ ├── CxScan.java │ │ │ │ │ ├── CxSetGitRepo.java │ │ │ │ │ ├── CxStatus.java │ │ │ │ │ ├── CxTeamResponse.java │ │ │ │ │ └── CxVulnShortDescription.java │ │ │ ├── dependencytrack │ │ │ │ ├── apiclient │ │ │ │ │ └── DependencyTrackApiClient.java │ │ │ │ └── model │ │ │ │ │ ├── Component.java │ │ │ │ │ ├── Components.java │ │ │ │ │ ├── DTrackCreateProject.java │ │ │ │ │ ├── DTrackCreateProjectResponse.java │ │ │ │ │ ├── DTrackGetVulnsForProject.java │ │ │ │ │ └── DTrackVuln.java │ │ │ ├── jira │ │ │ │ └── JiraClient.java │ │ │ ├── nessus │ │ │ │ ├── apiclient │ │ │ │ │ └── NessusApiClient.java │ │ │ │ └── model │ │ │ │ │ ├── CreateFolderRequest.java │ │ │ │ │ ├── CreateScanRequest.java │ │ │ │ │ └── Settings.java │ │ │ ├── nexpose │ │ │ │ ├── apiclient │ │ │ │ │ └── NexposeApiClient.java │ │ │ │ └── model │ │ │ │ │ ├── Address.java │ │ │ │ │ ├── AssetVulnerabilitiesResource.java │ │ │ │ │ ├── AssetVulnerabilitiesResponseDTO.java │ │ │ │ │ ├── Assets.java │ │ │ │ │ ├── CreateSiteRequestDTO.java │ │ │ │ │ ├── CreateSiteResponseDTO.java │ │ │ │ │ ├── Description.java │ │ │ │ │ ├── IncludedTargets.java │ │ │ │ │ ├── Page.java │ │ │ │ │ ├── Pci.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── Scan.java │ │ │ │ │ ├── ScanEngineResource.java │ │ │ │ │ ├── ScanEnginesResponseDTO.java │ │ │ │ │ ├── ScanResponse.java │ │ │ │ │ ├── ScanStatusResponse.java │ │ │ │ │ ├── ScanTemplateResource.java │ │ │ │ │ ├── ScanTemplateResponseDTO.java │ │ │ │ │ ├── SiteAssetsDTO.java │ │ │ │ │ ├── SiteAssetsResources.java │ │ │ │ │ └── VulnerabilityDetailsDTO.java │ │ │ ├── nexusiq │ │ │ │ ├── apiclient │ │ │ │ │ └── NexusIqApiClient.java │ │ │ │ └── model │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── Applications.java │ │ │ │ │ ├── ComponentIdentifier.java │ │ │ │ │ ├── Coordinates.java │ │ │ │ │ ├── GetReports.java │ │ │ │ │ ├── Organization.java │ │ │ │ │ ├── Organizations.java │ │ │ │ │ ├── RawReport.java │ │ │ │ │ ├── ReportEntry.java │ │ │ │ │ ├── SecurityData.java │ │ │ │ │ ├── SecurityIssues.java │ │ │ │ │ ├── SourceControl.java │ │ │ │ │ └── Synchro.java │ │ │ ├── openscap │ │ │ │ └── model │ │ │ │ │ ├── Benchmark.java │ │ │ │ │ ├── ComplexCheck.java │ │ │ │ │ ├── Group.java │ │ │ │ │ ├── GroupRule.java │ │ │ │ │ ├── Rule.java │ │ │ │ │ ├── RuleDescription.java │ │ │ │ │ ├── RuleResult.java │ │ │ │ │ └── TestResult.java │ │ │ ├── openvas │ │ │ │ ├── apiclient │ │ │ │ │ └── OpenVasApiClient.java │ │ │ │ ├── helper │ │ │ │ │ └── OpenVasSocketResponse.java │ │ │ │ └── model │ │ │ │ │ ├── Authenticate.java │ │ │ │ │ ├── ComandResponseGetConfig.java │ │ │ │ │ ├── ComandResponseGetReport.java │ │ │ │ │ ├── ComandResponseGetScanners.java │ │ │ │ │ ├── CommandCheckStatus.java │ │ │ │ │ ├── CommandResponse.java │ │ │ │ │ ├── CommandResponseCreateTarget.java │ │ │ │ │ ├── CommandResponseCreateTask.java │ │ │ │ │ ├── CommandResponseStartTask.java │ │ │ │ │ ├── CommandsCreateTarget.java │ │ │ │ │ ├── CommandsCreateTask.java │ │ │ │ │ ├── CommandsDeleteTarget.java │ │ │ │ │ ├── CommandsGetConfig.java │ │ │ │ │ ├── CommandsGetReport.java │ │ │ │ │ ├── CommandsGetScanner.java │ │ │ │ │ ├── CommandsGetTasks.java │ │ │ │ │ ├── CommandsModifyTask.java │ │ │ │ │ ├── CommandsStartTask.java │ │ │ │ │ ├── Config.java │ │ │ │ │ ├── CreateTarget.java │ │ │ │ │ ├── CreateTargetResponse.java │ │ │ │ │ ├── CreateTask.java │ │ │ │ │ ├── CreateTaskResponse.java │ │ │ │ │ ├── Credentials.java │ │ │ │ │ ├── DeleteTarget.java │ │ │ │ │ ├── GetConfigResponse.java │ │ │ │ │ ├── GetReportResponse.java │ │ │ │ │ ├── GetScannersResponse.java │ │ │ │ │ ├── GetTask.java │ │ │ │ │ ├── GetTaskResponse.java │ │ │ │ │ ├── Host.java │ │ │ │ │ ├── ModifyTask.java │ │ │ │ │ ├── Port.java │ │ │ │ │ ├── Report.java │ │ │ │ │ ├── ReportFirstLvl.java │ │ │ │ │ ├── ReportSecondLvl.java │ │ │ │ │ ├── ReportXml.java │ │ │ │ │ ├── RestRequestBody.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── Results.java │ │ │ │ │ ├── Scanner.java │ │ │ │ │ ├── StartTask.java │ │ │ │ │ ├── StartTaskResponse.java │ │ │ │ │ ├── Target.java │ │ │ │ │ ├── Task.java │ │ │ │ │ ├── User.java │ │ │ │ │ ├── Vuln.java │ │ │ │ │ └── XmlOperationBuilder.java │ │ │ ├── remotefirewall │ │ │ │ ├── apiclient │ │ │ │ │ └── RfwApiClient.java │ │ │ │ └── model │ │ │ │ │ └── Rule.java │ │ │ └── vulnauditor │ │ │ │ ├── apiclient │ │ │ │ └── MixewayVulnAuditorApiClient.java │ │ │ │ ├── model │ │ │ │ ├── VulnAuditorRequest.java │ │ │ │ ├── VulnAuditorRequestModel.java │ │ │ │ ├── VulnAuditorResponse.java │ │ │ │ └── VulnAuditorResponseModel.java │ │ │ │ └── service │ │ │ │ └── MixewayVulnAuditorService.java │ │ ├── model │ │ │ ├── AssetToCreate.java │ │ │ ├── CodeAccessVerifier.java │ │ │ ├── CodeRequestHelper.java │ │ │ ├── CodeScanRequestModel.java │ │ │ ├── Cookies.java │ │ │ ├── CreateTarget.java │ │ │ ├── CustomCookie.java │ │ │ ├── Headers.java │ │ │ ├── LoadVlnerabilitiesModel.java │ │ │ ├── LoginSequenceUploadCreate.java │ │ │ ├── NetworkScanRequestModel.java │ │ │ ├── OSSVulnerabilityModel.java │ │ │ ├── Pagination.java │ │ │ ├── Projects.java │ │ │ ├── Reference.java │ │ │ ├── RequestHeaders.java │ │ │ ├── RunScan.java │ │ │ ├── SASTRequestVerify.java │ │ │ ├── Schedule.java │ │ │ ├── ServiceDiscoveryKoordynatorRequest.java │ │ │ ├── TokenValidator.java │ │ │ ├── VulnerabilityModel.java │ │ │ ├── WebAppScanHelper.java │ │ │ ├── WebAppScanModel.java │ │ │ └── WebAppScanRequestModel.java │ │ └── service │ │ │ ├── SecurityScanner.java │ │ │ ├── audit │ │ │ └── OpenScapService.java │ │ │ ├── bugtracking │ │ │ ├── BugTracking.java │ │ │ └── BugTrackingService.java │ │ │ ├── code │ │ │ ├── CodeScanClient.java │ │ │ └── CodeScanService.java │ │ │ ├── network │ │ │ ├── NetworkScanClient.java │ │ │ └── NetworkScanService.java │ │ │ ├── opensource │ │ │ ├── OpenSourceScanClient.java │ │ │ └── OpenSourceScanService.java │ │ │ └── webapp │ │ │ ├── WebAppScanClient.java │ │ │ └── WebAppScanService.java │ │ ├── scheduler │ │ ├── CodeScheduler.java │ │ ├── GlobalScheduler.java │ │ ├── NetworkScanScheduler.java │ │ ├── OpenSourceScheduler.java │ │ ├── ServiceDiscoveryScheduler.java │ │ └── WebAppScheduler.java │ │ ├── servicediscovery │ │ ├── plugin │ │ │ ├── IaasApiClient.java │ │ │ ├── aws │ │ │ │ └── apiclient │ │ │ │ │ └── AwsApiClient.java │ │ │ └── openstack │ │ │ │ └── apiclient │ │ │ │ └── OpenStackApiClient.java │ │ ├── scheduler │ │ │ └── IaasApiScheduler.java │ │ └── service │ │ │ └── IaasService.java │ │ └── utils │ │ ├── CodeGroupPutModel.java │ │ ├── DOPMailTemplateBuilder.java │ │ ├── EmailVulnHelper.java │ │ ├── EventType.java │ │ ├── IpAddressUtils.java │ │ ├── LogUtil.java │ │ ├── PermissionFactory.java │ │ ├── ProjectAudit.java │ │ ├── ProjectRiskAnalyzer.java │ │ ├── RestTemplateBasicAuth.java │ │ ├── RunScanForAssets.java │ │ ├── RunScanForCodeProject.java │ │ ├── RunScanForWebApps.java │ │ ├── SASTProject.java │ │ ├── ScanHelper.java │ │ ├── ScannerModel.java │ │ ├── ScannerType.java │ │ ├── SecureRestTemplate.java │ │ ├── SecurityGatewayEntry.java │ │ ├── SecurityQualityGateway.java │ │ ├── Status.java │ │ ├── VaultHelper.java │ │ ├── VulnSource.java │ │ ├── VulnerabilityModel.java │ │ └── VulnerabiltyAudit.java └── resources │ ├── META-INF │ └── persistence.xml │ ├── bootstrap-keycloak.properties │ ├── bootstrap-prodcert.properties │ ├── bootstrap-unittest.properties │ ├── bootstrap.properties │ ├── ca.crt │ ├── db │ └── changelog │ │ └── db.changelog-master.sql │ └── liquibase.properties └── test ├── java └── io │ └── mixeway │ ├── api │ ├── admin │ │ └── service │ │ │ ├── AdminScannerRestServiceTest.java │ │ │ ├── AdminSettingsRestServiceTest.java │ │ │ └── AdminUserRestServiceTest.java │ ├── auth │ │ └── service │ │ │ └── AuthServiceTest.java │ ├── cioperations │ │ └── service │ │ │ └── CiOperationsServiceTest.java │ ├── dashboard │ │ └── service │ │ │ └── DashboardServiceTest.java │ ├── openscap │ │ └── service │ │ │ └── OpenscapRestServiceTest.java │ ├── profile │ │ └── service │ │ │ └── ProfileServiceTest.java │ ├── project │ │ └── service │ │ │ ├── ApiAccessServiceTest.java │ │ │ ├── AssetServiceTest.java │ │ │ ├── AuditServiceTest.java │ │ │ ├── BugTrackerServiceTest.java │ │ │ ├── CodeServiceTest.java │ │ │ ├── IaasApiServiceTest.java │ │ │ ├── ProjectRestServiceTest.java │ │ │ └── WebAppServiceTest.java │ ├── statistic │ │ └── service │ │ │ └── VulnsServiceTest.java │ └── vulnmanage │ │ └── service │ │ ├── GetVulnerabilitiesServiceTest.java │ │ └── ScanManagerServiceTest.java │ ├── domain │ └── service │ │ ├── asset │ │ └── GetOrCreateAssetServiceTest.java │ │ ├── bugtracker │ │ ├── CreateBugTrackerTest.java │ │ ├── DeleteBugTrackerServiceTest.java │ │ └── FindBugTrackerServiceTest.java │ │ ├── cioperations │ │ ├── CreateCiOperationsServiceTest.java │ │ ├── FindCiOperationsServiceTest.java │ │ └── UpdateCiOperationsServiceTest.java │ │ ├── gitcredentials │ │ ├── CreateGitCredentialsServiceTest.java │ │ ├── DeleteGitCredentialsServiceTest.java │ │ ├── FindGitCredentialsServiceTest.java │ │ └── UpdateGitCredentialsServiceTest.java │ │ ├── infrascan │ │ ├── FindInfraScanServiceTest.java │ │ ├── GetOrCreateInfraScanServiceTest.java │ │ └── UpdateInfraScanServiceTest.java │ │ ├── intf │ │ ├── FindInterfaceServiceTest.java │ │ ├── InterfaceOperationsTest.java │ │ └── UpdateInterfaceServiceTest.java │ │ ├── nessusscantemplate │ │ └── FindNessusScanTemplateServiceTest.java │ │ ├── project │ │ ├── CreateProjectServiceTest.java │ │ ├── FindProjectServiceTest.java │ │ ├── GetOrCreateProjectServiceTest.java │ │ ├── GetProjectsServiceTest.java │ │ └── UpdateProjectServiceTest.java │ │ ├── projectvulnerability │ │ ├── DeleteProjectVulnerabilityServiceTest.java │ │ └── GetProjectVulnerabilitiesServiceTest.java │ │ ├── routingdomain │ │ └── CreateOrGetRoutingDomainServiceTest.java │ │ ├── scan │ │ └── GetScanNumberServiceTest.java │ │ ├── scanmanager │ │ ├── code │ │ │ ├── CreateOrGetCodeProjectServiceTest.java │ │ │ ├── FindCodeProjectServiceTest.java │ │ │ ├── OperateOnCodeProjectTest.java │ │ │ ├── UpdateCodeProjectServiceTest.java │ │ │ └── VerifySASTPermissionsServiceTest.java │ │ └── webapp │ │ │ ├── FindWebAppServiceTest.java │ │ │ ├── GetOrCreateWebAppServiceTest.java │ │ │ ├── UpdateWebAppServiceTest.java │ │ │ └── VerifyWebAppScannerServiceTest.java │ │ ├── scanner │ │ ├── DeleteScannerServiceTest.java │ │ ├── GetScannerServiceTest.java │ │ └── UpdateScannerServiceTest.java │ │ ├── scannertype │ │ └── FindScannerTypeServiceTest.java │ │ ├── securitygateway │ │ ├── FindSecurityGatewayServiceTest.java │ │ └── UpdateSecurityGatewayServiceTest.java │ │ ├── softwarepackage │ │ ├── FindSoftwarePacketServiceTest.java │ │ └── GetOrCreateSoftwarePacketServiceTest.java │ │ ├── user │ │ ├── EditUserServiceTest.java │ │ ├── FindUserServiceTest.java │ │ └── GetOrCreateUserServiceTest.java │ │ ├── vulnhistory │ │ └── FindVulnHistoryServiceTest.java │ │ ├── vulnmanager │ │ ├── CreateOrGetCisRequirementServiceTest.java │ │ ├── CreateOrGetVulnerabilityServiceTest.java │ │ └── VulnTemplateTest.java │ │ └── webappscanstrategy │ │ ├── FindWebAppScanStrategyServiceTest.java │ │ └── UpdateWebAppScanStrategyServiceTest.java │ ├── jwt │ ├── JwtRequestFilterTest.java │ └── JwtUserDetailsServiceTest.java │ ├── scanmanager │ └── service │ │ ├── code │ │ └── CodeScanServiceTest.java │ │ ├── network │ │ └── NetworkScanServiceTest.java │ │ ├── opensource │ │ └── OpenSourceScanServiceTest.java │ │ └── webapp │ │ └── WebAppScanServiceTest.java │ └── utils │ └── VaultHelperTest.java └── resources ├── bootstrap.properties ├── docker.p12 └── trust.jks /.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | ### STS ### 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | *.class 12 | ### IntelliJ IDEA ### 13 | .idea 14 | *.iws 15 | *.iml 16 | *.ipr 17 | *.patch 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /bin/ 26 | /.nb-gradle/ 27 | /.mvn/ 28 | 29 | *.DS_Store 30 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mixeway/MixewayBackend/89118796cae4cb48658daa9bc2ed4b779046500c/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM maven:3.6-jdk-8 as maven 2 | WORKDIR /app 3 | 4 | 5 | COPY ./pom.xml ./pom.xml 6 | RUN mvn dependency:go-offline -B 7 | COPY ./src ./src 8 | 9 | 10 | RUN mvn package -DskipTests && cp target/mixeway-*.jar app.jar 11 | 12 | FROM openjdk:8-jre-alpine 13 | LABEL maintainer="gsiewruk@gmail.com" 14 | WORKDIR /app 15 | COPY --from=maven /app/app.jar ./app.jar 16 | COPY src/main/resources/ca.crt /usr/lib/jvm/java-1.8-openjdk/jre/lib/security 17 | RUN \ 18 | cd /usr/lib/jvm/java-1.8-openjdk/jre/lib/security \ 19 | && keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias signet -file ca.crt 20 | 21 | ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Dspring.profiles.active=${PROFILE}","-jar", "/app/app.jar"] -------------------------------------------------------------------------------- /lombok.config: -------------------------------------------------------------------------------- 1 | lombok.anyConstructor.addConstructorProperties=true 2 | lombok.addLombokGeneratedAnnotation = true 3 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/admin/model/AuthSettingsModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.admin.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class AuthSettingsModel { 9 | Boolean passwordAuth; 10 | Boolean certificateAuth; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/admin/model/CronSettings.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.admin.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class CronSettings { 9 | private String expression; 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/admin/model/EditUserModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.admin.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | @Getter 9 | @Setter 10 | public class EditUserModel { 11 | String newPassword; 12 | String role; 13 | List projects; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/admin/model/SmtpSettingsModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.admin.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class SmtpSettingsModel { 9 | Boolean smtpAuth; 10 | Boolean smtpTls; 11 | String smtpHost; 12 | int smtpPort; 13 | String smtpUsername; 14 | String smtpPassword; 15 | String domain; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/admin/model/VulnAuditorEditSettings.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.admin.model; 2 | 3 | import io.mixeway.db.entity.Settings; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Getter 12 | @Setter 13 | @NoArgsConstructor 14 | public class VulnAuditorEditSettings { 15 | private String url; 16 | private boolean enabled; 17 | 18 | public VulnAuditorEditSettings(Settings settings) { 19 | this.url = settings.getVulnAuditorUrl(); 20 | this.enabled = settings.isVulnAuditorEnable(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/admin/model/WebAppScanStrategyModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.admin.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import javax.validation.constraints.Pattern; 7 | 8 | @Getter 9 | @Setter 10 | public class WebAppScanStrategyModel { 11 | //TODO make it flexible 12 | @Pattern(regexp = "^$|\\bAcunetix|\\bBurpEE$", flags = Pattern.Flag.UNICODE_CASE) 13 | String apiStrategy; 14 | @Pattern(regexp = "^$|\\bAcunetix|\\bBurpEE$", flags = Pattern.Flag.UNICODE_CASE) 15 | String scheduledStrategy; 16 | @Pattern(regexp = "^$|\\bAcunetix|\\bBurpEE$", flags = Pattern.Flag.UNICODE_CASE) 17 | String guiStrategy; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/auth/model/Password.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.auth.model; 2 | 3 | 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import javax.validation.constraints.NotNull; 8 | import javax.validation.constraints.Size; 9 | 10 | @Getter 11 | @Setter 12 | public class Password { 13 | @NotNull @Size(min = 7) String password; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/auth/model/PasswordAuthModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.auth.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class PasswordAuthModel { 9 | String username; 10 | String password; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/auth/model/StatusEntity.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.auth.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | @Getter 9 | @Setter 10 | @AllArgsConstructor 11 | @Builder 12 | public class StatusEntity { 13 | Boolean initialized; 14 | Boolean password; 15 | Boolean cert; 16 | Boolean facebook; 17 | Boolean gitHub; 18 | Boolean keycloak; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cicd/model/CodeProjectInfo.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cicd.model; 2 | 3 | public class CodeProjectInfo { 4 | 5 | 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cicd/model/LoadSCA.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cicd.model; 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 LoadSCA { 13 | private Long codeProjectId; 14 | private String branch; 15 | private String commitId; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/CIVulnManageResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cioperations.model; 2 | 3 | import lombok.*; 4 | 5 | import java.util.List; 6 | 7 | @Builder 8 | @Getter 9 | @Setter 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class CIVulnManageResponse { 13 | String result; 14 | String commitId; 15 | Boolean running; 16 | Boolean inQueue; 17 | List vulnManageResponseList; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/CiResultModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cioperations.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class CiResultModel { 9 | Long ok; 10 | Long notOk; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/GetInfoRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2020-08-19 : 21:04 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.api.cioperations.model; 7 | 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | import javax.validation.constraints.NotNull; 12 | 13 | @Getter 14 | @Setter 15 | public class GetInfoRequest { 16 | @NotNull String repoUrl; 17 | @NotNull String branch; 18 | @NotNull String scope; 19 | Long projectId; 20 | String repoName; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/InfoScanPerformed.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2020-08-19 : 23:53 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.api.cioperations.model; 7 | 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | @Getter 12 | @Setter 13 | public class InfoScanPerformed { 14 | String scope; 15 | Long codeProjectId; 16 | String branch; 17 | String commitId; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/LoadVulnModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cioperations.model; 2 | 3 | import io.mixeway.utils.VulnerabilityModel; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author gsiewruk 12 | */ 13 | @Getter 14 | @Setter 15 | @NoArgsConstructor 16 | public class LoadVulnModel { 17 | String branch; 18 | String commitId; 19 | String projectName; 20 | List vulns; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/ScannerType.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cioperations.model; 2 | 3 | public enum ScannerType { 4 | OPENSOURCE, 5 | SAST, 6 | GITLEAKS, 7 | DAST, 8 | PROGPILOT 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/VulnManageResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cioperations.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class VulnManageResponse { 9 | String vulnerabilityName; 10 | String severity; 11 | String dateDiscovered; 12 | int grade; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/VulnerabilityModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cioperations.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonAnyGetter; 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | @Getter 13 | @Setter 14 | public class VulnerabilityModel { 15 | private String name; 16 | private ScannerType scannerType; 17 | private String description; 18 | private String filename; 19 | private String line; 20 | private String severity; 21 | private String packageName; 22 | private String packageVersion; 23 | private String recomendations; 24 | private String references; 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/ZapAlertModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cioperations.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import java.util.List; 9 | @Getter 10 | @Setter 11 | @NoArgsConstructor 12 | public class ZapAlertModel { 13 | @JsonProperty("alert") 14 | private String alert; 15 | @JsonProperty("name") 16 | private String name; 17 | @JsonProperty("riskdesc") 18 | private String riskdesc; 19 | @JsonProperty("desc") 20 | private String desc; 21 | private List instances; 22 | @JsonProperty("solution") 23 | private String solution; 24 | @JsonProperty("otherinfo") 25 | private String otherinfo; 26 | private String reference; 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/ZapInstancesModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cioperations.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | @Getter 9 | @Setter 10 | @NoArgsConstructor 11 | public class ZapInstancesModel { 12 | @JsonProperty("uri") 13 | private String uri; 14 | @JsonProperty("method") 15 | private String method; 16 | @JsonProperty("param") 17 | private String param; 18 | @JsonProperty("attack") 19 | private String attack; 20 | @JsonProperty("evidence") 21 | private String evidence; 22 | @JsonProperty("otherinfo") 23 | private String otherinfo; 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/ZapReportModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cioperations.model; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import java.util.List; 8 | @Getter 9 | @Setter 10 | @NoArgsConstructor 11 | public class ZapReportModel { 12 | private List site; 13 | 14 | 15 | 16 | 17 | 18 | } -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/cioperations/model/ZapSiteModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.cioperations.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 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 | @Getter 12 | @Setter 13 | @NoArgsConstructor 14 | public class ZapSiteModel { 15 | @JsonProperty ("@name") 16 | private String name; 17 | private List alerts; 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/dashboard/model/DashboardStat.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.dashboard.model; 2 | 3 | import lombok.*; 4 | 5 | import java.util.List; 6 | 7 | @NoArgsConstructor 8 | @AllArgsConstructor 9 | @Getter 10 | @Setter 11 | @Builder 12 | public class DashboardStat { 13 | private int critical; 14 | private int medium; 15 | private int low; 16 | private List projectStats; 17 | private List vulnStats; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/dashboard/model/ProjectStat.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.dashboard.model; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @Builder 10 | public class ProjectStat { 11 | private String name; 12 | private int risk; 13 | private int vulnerabilities; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/dashboard/model/Projects.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.dashboard.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class Projects { 9 | Long id; 10 | String name; 11 | String description; 12 | int risk; 13 | String ciid; 14 | int enableVulnManage; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/dashboard/model/SearchRequest.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.dashboard.model; 2 | 3 | public class SearchRequest { 4 | String search; 5 | 6 | public String getSearch() { 7 | return search; 8 | } 9 | 10 | public void setSearch(String search) { 11 | this.search = search; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/dashboard/model/SearchResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.dashboard.model; 2 | 3 | import io.mixeway.db.entity.CodeProject; 4 | import io.mixeway.db.entity.Interface; 5 | import io.mixeway.db.entity.WebApp; 6 | import lombok.Getter; 7 | import lombok.Setter; 8 | 9 | import java.util.List; 10 | 11 | @Setter 12 | @Getter 13 | public class SearchResponse { 14 | List assets; 15 | List webApps; 16 | List codeProjects; 17 | List vulns; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/dashboard/model/SessionOwner.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.dashboard.model; 2 | 3 | public class SessionOwner { 4 | String name; 5 | int logins; 6 | 7 | public int getLogins() { 8 | return logins; 9 | } 10 | 11 | public void setLogins(int logins) { 12 | this.logins = logins; 13 | } 14 | 15 | public SessionOwner(String name, int logins){ 16 | this.name=name; 17 | this.logins = logins; 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public void setName(String name) { 25 | this.name = name; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/dashboard/model/VulnResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.dashboard.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class VulnResponse { 9 | private String name; 10 | private Long projectId; 11 | private String location; 12 | private String source; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/dashboard/model/VulnStat.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.dashboard.model; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @Builder 10 | public class VulnStat { 11 | private String name; 12 | private int occurances; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/profile/model/UpdateProfileModel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2020-08-21 : 12:57 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.api.profile.model; 7 | 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | @Getter 12 | @Setter 13 | public class UpdateProfileModel { 14 | private String oldPassword; 15 | private String newPassword; 16 | private String newPasswordRepeat; 17 | } -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/profile/model/UserProfile.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2020-08-21 : 12:59 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.api.profile.model; 7 | 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | @Getter 12 | @Setter 13 | public class UserProfile { 14 | private String username; 15 | private int projects; 16 | private int vulns; 17 | private String password; 18 | private boolean passwordAuthEnabled; 19 | private String role; 20 | 21 | public UserProfile(String username, int projects, int vulns, String password, boolean passwordAuthEnabled, String role) { 22 | this.username = username; 23 | this.projects = projects; 24 | this.role = role; 25 | this.vulns = vulns; 26 | this.password = password; 27 | this.passwordAuthEnabled = passwordAuthEnabled; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/ApiKeyResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @AllArgsConstructor 10 | public class ApiKeyResponse { 11 | private String apiKey; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/AssetCard.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | @Getter 9 | @Setter 10 | public class AssetCard { 11 | private List assets; 12 | private boolean autoInfraScan; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/AssetModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class AssetModel { 9 | private Long assetId; 10 | private String hostname; 11 | private String ipAddress; 12 | private String routingDomain; 13 | private int risk; 14 | private boolean running; 15 | private boolean inQueue; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/AssetPutModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import javax.validation.constraints.Min; 8 | import javax.validation.constraints.NotEmpty; 9 | import javax.validation.constraints.NotNull; 10 | 11 | @Getter 12 | @Setter 13 | @JsonInclude(JsonInclude.Include.NON_NULL) 14 | public class AssetPutModel { 15 | @NotEmpty private String assetName; 16 | @NotEmpty 17 | private String ipAddresses; 18 | @NotNull 19 | @Min(1) private Long routingDomainForAsset; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/AuditRequest.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import javax.validation.constraints.Pattern; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Getter 12 | @Setter 13 | public class AuditRequest { 14 | String location; 15 | String vulnerability; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/CodeCard.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | @Getter 9 | @Setter 10 | public class CodeCard { 11 | private List codeModels; 12 | private boolean codeAutoScan; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/CodeGroupPutModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | @Getter 9 | @Setter 10 | @NoArgsConstructor 11 | public class CodeGroupPutModel { 12 | private String codeGroupName; 13 | private int versionIdAll; 14 | private int versionIdSingle; 15 | private String giturl; 16 | private String gitusername; 17 | private String gitpassword; 18 | private String tech; 19 | private boolean autoScan; 20 | private boolean childs; 21 | private String dTrackUuid; 22 | private String appClient; 23 | private String branch; 24 | 25 | public CodeGroupPutModel(String codeGroupName, String giturl, boolean autoScan, boolean childs, String branch){ 26 | this.codeGroupName = codeGroupName; 27 | this.giturl = giturl; 28 | this.autoScan = autoScan; 29 | this.childs = childs; 30 | this.branch = branch; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/CodeModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @Builder 10 | public class CodeModel { 11 | private Long id; 12 | private String codeProject; 13 | private Boolean running; 14 | private String dTrackUuid; 15 | private String branch; 16 | private int versionId; 17 | private int risk; 18 | private String repoUrl; 19 | private String repoUsername; 20 | private String repoPassword; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/CodeProjectPutModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class CodeProjectPutModel { 9 | private Long codeGroup; 10 | private String codeProjectName; 11 | private String projectGiturl; 12 | private String projectTech; 13 | private String additionalPath; 14 | private String branch; 15 | private String dTrackUuid; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/CodeProjectSearch.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.*; 4 | 5 | @Builder 6 | @Getter 7 | @Setter 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class CodeProjectSearch { 11 | private String repourl; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/ContactList.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class ContactList { 9 | String contactList; 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/DetailStats.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.*; 4 | 5 | @Builder 6 | @Getter 7 | @Setter 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class DetailStats { 11 | private int detectedVulnerabilities; 12 | private int resolvedVulnerabilities; 13 | private int avgTimeToFix; 14 | private int resolvedCriticals; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/EditCodeProjectModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 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 EditCodeProjectModel { 13 | private String remoteId; 14 | private String remoteName; 15 | private int sastProject; 16 | private String branch; 17 | private String repoUrl; 18 | private String repoUsername; 19 | private String repoPassword; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/IaasApiPutModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import javax.validation.constraints.Min; 8 | import javax.validation.constraints.NotBlank; 9 | import javax.validation.constraints.NotNull; 10 | 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | @Getter 13 | @Setter 14 | public class IaasApiPutModel { 15 | 16 | private String iamApi; 17 | private String networkApi; 18 | private String serviceApi; 19 | private String projectid; 20 | private String username; 21 | private String password; 22 | @NotBlank private String apiType; 23 | private String region; 24 | 25 | @NotNull 26 | @Min(1) private Long routingDomainForIaasApi; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/IaasModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class IaasModel { 9 | private String iam; 10 | private String service; 11 | private String network; 12 | private String project; 13 | private boolean auto; 14 | private boolean enabled; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/OpenSourceConfig.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class OpenSourceConfig { 9 | private boolean openSourceScannerIntegration; 10 | private String openSourceScannerApiUrl; 11 | private String openSourceScannerProjectId; 12 | private String openSourceScannerCredentials; 13 | private String tech; 14 | private String scannerType; 15 | private Long codeProjectId; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/ProjectStats.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * @author gsiewruk 9 | */ 10 | @Builder 11 | @Getter 12 | @Setter 13 | public class ProjectStats { 14 | private int assets; 15 | private int webApps; 16 | private int repos; 17 | private Long libs; 18 | private Long vulnCrit; 19 | private Long vulnMedium; 20 | private Long vulnLow; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/ProjectUser.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.*; 4 | 5 | @Builder 6 | @Getter 7 | @Setter 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class ProjectUser { 11 | private String user; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/ProjectVulnTrendChart.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.LinkedList; 7 | import java.util.List; 8 | 9 | @Getter 10 | @Setter 11 | public class ProjectVulnTrendChart { 12 | private Listseries; 13 | private LinkedList legends; 14 | private LinkedList dates; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/ProjectVulnTrendChartSerie.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.LinkedList; 7 | 8 | @Getter 9 | @Setter 10 | public class ProjectVulnTrendChartSerie { 11 | private String name; 12 | private LinkedList values; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/RiskCards.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class RiskCards { 9 | private String projectName; 10 | private String projectDescription; 11 | private boolean enableVulnAuditor; 12 | private int assetNumber; 13 | private int assetRisk; 14 | private int webAppNumber; 15 | private int webAppRisk; 16 | private int codeRepoNumber; 17 | private int codeRisk; 18 | private int audit; 19 | private int auditRisk; 20 | private int openSourceLibs; 21 | private int openSourceRisk; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/RunScanForAssets.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class RunScanForAssets { 9 | private Long assetId; 10 | private String hostname; 11 | private String ipAddress; 12 | private String routingDomain; 13 | private int risk; 14 | private boolean running; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/RunScanForCodeProject.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class RunScanForCodeProject { 9 | private Long id; 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/RunScanForWebApps.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class RunScanForWebApps { 9 | private Long webAppId; 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/SASTProject.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class SASTProject { 9 | private long id; 10 | private String name; 11 | 12 | public SASTProject(long id, String name){ 13 | this.name = name; 14 | this.id = id; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/SoftVuln.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import io.mixeway.db.entity.CodeProject; 4 | import io.mixeway.db.entity.ProjectVulnerability; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | import java.io.Serializable; 9 | 10 | @Getter 11 | @Setter 12 | public class SoftVuln implements Serializable { 13 | private CodeProject codeProject; 14 | private ProjectVulnerability softwarePacketVulnerability; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/VulnAuditorSettings.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import javax.validation.constraints.Pattern; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Getter 12 | @Setter 13 | public class VulnAuditorSettings { 14 | boolean enableVulnAuditor; 15 | @Pattern(regexp = "(?i)customer|employe$") 16 | String appClient; 17 | @Pattern(regexp = "(?i)localdc|remotedc$") 18 | String dclocation; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/WebAppCard.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | @Getter 9 | @Setter 10 | public class WebAppCard { 11 | private List webAppModels; 12 | private boolean webAppAutoScan; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/WebAppModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import io.mixeway.db.entity.RoutingDomain; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | public class WebAppModel { 10 | private Long webAppId; 11 | private String url; 12 | private boolean publicScan; 13 | private RoutingDomain routingDomain; 14 | private int risk; 15 | private boolean running; 16 | private boolean inQueue; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/WebAppPutModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import org.apache.commons.lang3.StringUtils; 6 | 7 | import javax.validation.constraints.Min; 8 | import javax.validation.constraints.NotNull; 9 | 10 | @Getter 11 | @Setter 12 | public class WebAppPutModel { 13 | private String webAppUrl; 14 | private String webAppHeaders; 15 | private boolean scanPublic; 16 | private String webAppUsername; 17 | private String webAppPassword; 18 | private String appClient; 19 | @NotNull 20 | @Min(1) 21 | private Long routingDomainForAsset; 22 | 23 | public boolean isPasswordAuthSet(){ 24 | return StringUtils.isNotBlank(webAppPassword) && StringUtils.isNotBlank(webAppUsername); 25 | } 26 | 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/project/model/WebAppVulnModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.project.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class WebAppVulnModel { 9 | private String description; 10 | private String location; 11 | private String vulnName; 12 | private String severity; 13 | private String detected; 14 | private String status; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/OpenSourceConfig.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.protocol; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | @Getter 9 | @Setter 10 | @NoArgsConstructor 11 | public class OpenSourceConfig { 12 | private boolean openSourceScannerIntegration; 13 | private String openSourceScannerApiUrl; 14 | private String openSourceScannerProjectId; 15 | private String openSourceScannerCredentials; 16 | private String tech; 17 | private String scannerType; 18 | private Long codeProjectId; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/OverAllVulnTrendChartData.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.protocol; 2 | 3 | public interface OverAllVulnTrendChartData { 4 | String getDate(); 5 | Long getValue(); 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/SourceDetectionChartData.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.protocol; 2 | 3 | public interface SourceDetectionChartData { 4 | Long getInfra(); 5 | Long getWebApp(); 6 | Long getCode(); 7 | Long getAudit(); 8 | Long getSoft(); 9 | String getIns(); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/cioperations/CiResultModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.protocol.cioperations; 2 | 3 | import lombok.*; 4 | 5 | @Builder 6 | @Getter 7 | @Setter 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class CiResultModel { 11 | private Long ok; 12 | private Long notOk; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/cioperations/GetInfoRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2020-08-19 : 21:04 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.api.protocol.cioperations; 7 | 8 | import lombok.*; 9 | 10 | import javax.validation.constraints.NotNull; 11 | 12 | @Builder 13 | @Getter 14 | @Setter 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | public class GetInfoRequest { 18 | @NotNull private String repoUrl; 19 | @NotNull private String branch; 20 | @NotNull private String scope; 21 | private Long projectId; 22 | private String repoName; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/cioperations/InfoScanPerformed.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2020-08-19 : 23:53 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.api.protocol.cioperations; 7 | 8 | import lombok.*; 9 | 10 | @Builder 11 | @Getter 12 | @Setter 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class InfoScanPerformed { 16 | private String scope; 17 | private Long codeProjectId; 18 | private String branch; 19 | private String commitId; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/cioperations/ScannerType.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.protocol.cioperations; 2 | 3 | public enum ScannerType { 4 | OPENSOURCE, 5 | SAST, 6 | GITLEAKS, 7 | DAST, 8 | PROGPILOT 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/cioperations/VulnerabilityModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.protocol.cioperations; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.*; 5 | 6 | /** 7 | * @author gsiewruk 8 | */ 9 | @Builder 10 | @Getter 11 | @Setter 12 | @NoArgsConstructor 13 | @AllArgsConstructor 14 | @JsonInclude(JsonInclude.Include.NON_NULL) 15 | public class VulnerabilityModel { 16 | private String name; 17 | private ScannerType scannerType; 18 | private String description; 19 | private String filename; 20 | private String line; 21 | private String severity; 22 | private String packageName; 23 | private String packageVersion; 24 | private String recomendations; 25 | private String references; 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/rfw/RfwModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.protocol.rfw; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class RfwModel { 9 | String rfwUrl; 10 | String rfwUsername; 11 | String rfwPassword; 12 | String rfwScannerIp; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/securitygateway/SecurityGatewayResponse.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2021-01-21 : 13:57 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.api.protocol.securitygateway; 7 | 8 | import io.mixeway.api.protocol.vulnerability.Vuln; 9 | import lombok.Builder; 10 | import lombok.Getter; 11 | import lombok.NoArgsConstructor; 12 | import lombok.Setter; 13 | 14 | import java.util.List; 15 | 16 | @Builder 17 | @Getter 18 | @Setter 19 | @NoArgsConstructor 20 | public class SecurityGatewayResponse { 21 | 22 | boolean isSecurityPolicyMet; 23 | String policyResponse; 24 | List vulnList; 25 | 26 | public SecurityGatewayResponse(boolean isSecurityPolicyMet, String policyResponse, List vulnList){ 27 | this.isSecurityPolicyMet = isSecurityPolicyMet; 28 | this.policyResponse = policyResponse; 29 | this.vulnList = vulnList; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/protocol/user/UserModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.protocol.user; 2 | 3 | import lombok.*; 4 | 5 | import java.util.List; 6 | import java.util.Optional; 7 | 8 | @Getter 9 | @Setter 10 | @Builder 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class UserModel { 14 | String userRole; 15 | String userCN; 16 | Boolean passwordAuth; 17 | String userPassword; 18 | String userUsername; 19 | String apiKey; 20 | Optional> projects; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/vulnmanage/model/GlobalStatistic.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.vulnmanage.model; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @NoArgsConstructor 10 | public class GlobalStatistic { 11 | private String project; 12 | private long scaVulns; 13 | private long codeVulns; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/vulnmanage/model/InfraScanMetadata.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.vulnmanage.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | @Getter 9 | @Setter 10 | public class InfraScanMetadata { 11 | List scannedAddresses; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/vulnmanage/model/InfraVulnListDto.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.vulnmanage.model; 2 | 3 | 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | public class InfraVulnListDto { 10 | 11 | private String infraVuln; 12 | private Long occurance; 13 | private String description; 14 | private String severity; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/vulnmanage/model/NetworkService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.vulnmanage.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class NetworkService { 9 | private String netProto; 10 | private String appProto; 11 | private int port; 12 | private String status; 13 | private String name; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/vulnmanage/model/RequestId.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.vulnmanage.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import javax.validation.constraints.Pattern; 7 | 8 | @Getter 9 | @Setter 10 | public class RequestId { 11 | @Pattern(regexp = "[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}",message = "UUID format required") 12 | private String requestId; 13 | 14 | @Override 15 | public String toString(){ 16 | return this.requestId; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/vulnmanage/model/ScannedAddress.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.vulnmanage.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | @Getter 9 | @Setter 10 | public class ScannedAddress { 11 | private String ip; 12 | private String os; 13 | private List networkServices; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/vulnmanage/model/SecurityGatewayResponse.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2021-01-21 : 13:57 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.api.vulnmanage.model; 7 | 8 | import lombok.Builder; 9 | import lombok.Getter; 10 | import lombok.NoArgsConstructor; 11 | import lombok.Setter; 12 | 13 | import java.util.List; 14 | 15 | @Builder 16 | @Getter 17 | @Setter 18 | @NoArgsConstructor 19 | public class SecurityGatewayResponse { 20 | 21 | private boolean isSecurityPolicyMet; 22 | private String policyResponse; 23 | private List vulnList; 24 | 25 | public SecurityGatewayResponse(boolean isSecurityPolicyMet, String policyResponse, List vulnList){ 26 | this.isSecurityPolicyMet = isSecurityPolicyMet; 27 | this.policyResponse = policyResponse; 28 | this.vulnList = vulnList; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/vulnmanage/model/SecurityScans.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.vulnmanage.model; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * @author gsiewruk 9 | */ 10 | @Builder 11 | @Getter 12 | @Setter 13 | public class SecurityScans { 14 | private String project; 15 | private String scanType; 16 | private String scope; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/api/vulnmanage/model/Vulnerabilities.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.vulnmanage.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | @Getter 9 | @Setter 10 | public class Vulnerabilities { 11 | 12 | List vulnerabilities; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/config/DispatcherConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2021-01-26 : 10:36 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.config; 7 | 8 | import org.springframework.context.annotation.Configuration; 9 | import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; 10 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; 11 | 12 | @Configuration 13 | class DispatcherConfig extends WebMvcConfigurationSupport { 14 | 15 | @Override 16 | protected void configurePathMatch(PathMatchConfigurer configurer) { 17 | configurer.setUseSuffixPatternMatch(false); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/config/JacksonConfiguration.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.config; 2 | 3 | import com.fasterxml.jackson.databind.DeserializationFeature; 4 | import com.fasterxml.jackson.databind.ObjectMapper; 5 | 6 | import org.springframework.context.annotation.Bean; 7 | import org.springframework.context.annotation.Configuration; 8 | 9 | @Configuration 10 | public class JacksonConfiguration { 11 | 12 | @Bean 13 | public ObjectMapper objectMapper() { 14 | return new ObjectMapper() 15 | .enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT ) 16 | .configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/config/JwtSecretConfig.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | import java.util.UUID; 7 | 8 | @Configuration 9 | public class JwtSecretConfig { 10 | 11 | @Bean 12 | String jwtSecret(){ 13 | return UUID.randomUUID().toString(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/config/SwaggerConfig.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import springfox.documentation.builders.PathSelectors; 6 | import springfox.documentation.builders.RequestHandlerSelectors; 7 | import springfox.documentation.spi.DocumentationType; 8 | import springfox.documentation.spring.web.plugins.Docket; 9 | 10 | /** 11 | * @author gsiewruk 12 | */ 13 | @Configuration 14 | public class SwaggerConfig { 15 | 16 | @Configuration 17 | public class SpringFoxConfig { 18 | 19 | @Bean 20 | public Docket api() { 21 | return new Docket(DocumentationType.SWAGGER_2) 22 | .select() 23 | .apis(RequestHandlerSelectors.any()) 24 | .paths(PathSelectors.any()) 25 | .build(); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/config/TrustStoreConfig.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.config; 2 | 3 | import org.springframework.beans.factory.annotation.Value; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | import javax.annotation.PostConstruct; 7 | 8 | @Configuration 9 | public class TrustStoreConfig { 10 | @Value("${server.ssl.trust-store}") 11 | private String trustStorePath; 12 | @Value("${server.ssl.trust-store-password}") 13 | private String trustStorePassword; 14 | 15 | @PostConstruct 16 | private void configureSSL() { 17 | System.setProperty("javax.net.ssl.trustStore", trustStorePath); 18 | System.setProperty("javax.net.ssl.trustStorePassword",trustStorePassword); 19 | System.setProperty("jsse.enableSNIExtension", "false"); 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/entity/Apis.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.entity; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.EntityListeners; 5 | import javax.persistence.Id; 6 | import javax.persistence.Table; 7 | 8 | import org.springframework.boot.autoconfigure.domain.EntityScan; 9 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; 10 | 11 | @Entity 12 | @EntityScan 13 | @Table(name = "apis") 14 | @EntityListeners(AuditingEntityListener.class) 15 | public class Apis { 16 | private String url; 17 | private String name; 18 | public String getUrl() { 19 | return url; 20 | } 21 | public void setUrl(String url) { 22 | this.url = url; 23 | } 24 | @Id 25 | public String getName() { 26 | return name; 27 | } 28 | public void setName(String name) { 29 | this.name = name; 30 | } 31 | 32 | 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/entity/BugTrackerType.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 5 | import org.springframework.boot.autoconfigure.domain.EntityScan; 6 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; 7 | 8 | import javax.persistence.*; 9 | 10 | @Entity 11 | @EntityScan 12 | @Table(name = "bugtrackertype") 13 | @EntityListeners(AuditingEntityListener.class) 14 | @JsonIgnoreProperties(ignoreUnknown=true) 15 | public class BugTrackerType { 16 | private Long id; 17 | private String name; 18 | 19 | @Id 20 | @GeneratedValue(strategy = GenerationType.IDENTITY) 21 | public Long getId() { 22 | return id; 23 | } 24 | 25 | public void setId(Long id) { 26 | this.id = id; 27 | } 28 | 29 | public String getName() { 30 | return name; 31 | } 32 | 33 | public void setName(String name) { 34 | this.name = name; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/entity/IaasApiType.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.entity; 2 | 3 | import org.springframework.boot.autoconfigure.domain.EntityScan; 4 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; 5 | 6 | import javax.persistence.*; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Entity 12 | @EntityScan 13 | @Table( 14 | name = "iaasapitype", 15 | indexes = { 16 | @Index(columnList = "id",name="iaasapitype_index") 17 | }) 18 | @EntityListeners(AuditingEntityListener.class) 19 | public class IaasApiType { 20 | @Id 21 | @GeneratedValue(strategy = GenerationType.IDENTITY) 22 | Long id; 23 | String name; 24 | 25 | public Long getId() { 26 | return id; 27 | } 28 | 29 | public void setId(Long id) { 30 | this.id = id; 31 | } 32 | 33 | public String getName() { 34 | return name; 35 | } 36 | 37 | public void setName(String name) { 38 | this.name = name; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/entity/ProjectVulnerabilityAuditId.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.entity; 2 | 3 | import javax.persistence.Column; 4 | import javax.persistence.Embeddable; 5 | import java.io.Serializable; 6 | 7 | @Embeddable 8 | public class ProjectVulnerabilityAuditId implements Serializable { 9 | 10 | @Column(name = "id") 11 | private Long id; 12 | 13 | @Column(name = "rev") 14 | private Long rev; 15 | 16 | public Long getId() { 17 | return id; 18 | } 19 | 20 | public Long getRev() { 21 | return rev; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/entity/RoutingDomain.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.entity; 2 | 3 | import javax.persistence.Entity; 4 | import javax.persistence.EntityListeners; 5 | import javax.persistence.GeneratedValue; 6 | import javax.persistence.GenerationType; 7 | import javax.persistence.Id; 8 | import javax.persistence.Table; 9 | 10 | import org.springframework.boot.autoconfigure.domain.EntityScan; 11 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; 12 | 13 | @Entity 14 | @EntityScan 15 | @Table(name = "routingdomain") 16 | @EntityListeners(AuditingEntityListener.class) 17 | public class RoutingDomain { 18 | Long id; 19 | String name; 20 | 21 | @Id 22 | @GeneratedValue(strategy = GenerationType.IDENTITY) 23 | public Long getId() { 24 | return id; 25 | } 26 | public void setId(Long id) { 27 | this.id = id; 28 | } 29 | public String getName() { 30 | return name; 31 | } 32 | public void setName(String name) { 33 | this.name = name; 34 | } 35 | 36 | 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/entity/Status.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.entity; 2 | 3 | import org.codehaus.jackson.annotate.JsonIgnoreProperties; 4 | import org.springframework.boot.autoconfigure.domain.EntityScan; 5 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; 6 | 7 | import javax.persistence.*; 8 | 9 | @Entity 10 | @EntityScan 11 | @Table(name = "status") 12 | @EntityListeners(AuditingEntityListener.class) 13 | @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) 14 | public class Status { 15 | private Long id; 16 | private String name; 17 | @Id 18 | @GeneratedValue(strategy = GenerationType.IDENTITY) 19 | public Long getId() { 20 | return id; 21 | } 22 | 23 | public void setId(Long id) { 24 | this.id = id; 25 | } 26 | 27 | public String getName() { 28 | return name; 29 | } 30 | 31 | public void setName(String name) { 32 | this.name = name; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/projection/BarChartProjection.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.projection; 2 | 3 | public interface BarChartProjection { 4 | public Long getValue(); 5 | public String getName(); 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/projection/CommonVulns.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.projection; 2 | 3 | public interface CommonVulns { 4 | public Long getId(); 5 | public Long getCount(); 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/projection/SoftwareVulnProjection.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.projection; 2 | 3 | public interface SoftwareVulnProjection { 4 | public String getName(); 5 | public String getNamee(); 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/projection/VulnBarChartProjection.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.projection; 2 | 3 | public interface VulnBarChartProjection { 4 | public Long getValue(); 5 | public String getNamee(); 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/projection/VulnerableProjects.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.projection; 2 | 3 | public interface VulnerableProjects { 4 | public Long getId(); 5 | public Long getCount(); 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/ActivityRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import io.mixeway.db.entity.Activity; 8 | 9 | public interface ActivityRepository extends JpaRepository{ 10 | 11 | public List findTop10ByOrderByIdDesc(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/ApiPermisionRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.Project; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import io.mixeway.db.entity.ApiPermision; 7 | import io.mixeway.db.entity.ApiType; 8 | 9 | public interface ApiPermisionRepository extends JpaRepository { 10 | ApiPermision findByProjectAndApiType(Project project, ApiType apiType); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/ApiTypeRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import io.mixeway.db.entity.ApiType; 6 | 7 | public interface ApiTypeRepository extends JpaRepository { 8 | ApiType findByUrl(String url); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/ApisRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import io.mixeway.db.entity.Apis; 6 | 7 | public interface ApisRepository extends JpaRepository{ 8 | 9 | public Apis findByName(String name); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/BugTrackerRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.BugTracker; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.stereotype.Repository; 6 | import io.mixeway.db.entity.Project; 7 | 8 | import java.util.List; 9 | import java.util.Optional; 10 | 11 | @Repository 12 | public interface BugTrackerRepository extends JpaRepository { 13 | List findByProject(Project project); 14 | Optional findByProjectAndVulns(Project project, String vulns); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/BugTrackerTypeRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.BugTrackerType; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface BugTrackerTypeRepository extends JpaRepository { 7 | BugTrackerType findByName(String name); 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/CisRequirementRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.CisRequirement; 4 | import io.mixeway.db.entity.Vulnerability; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import java.util.List; 8 | import java.util.Optional; 9 | 10 | /** 11 | * @author gsiewruk 12 | */ 13 | public interface CisRequirementRepository extends JpaRepository { 14 | Optional findByName(String name); 15 | Optional findByNameAndType(String name, String type); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/CodeProjectBranchRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.CodeProject; 4 | import io.mixeway.db.entity.CodeProjectBranch; 5 | import io.mixeway.db.entity.CodeScan; 6 | import org.springframework.data.jpa.repository.JpaRepository; 7 | 8 | import java.util.List; 9 | 10 | public interface CodeProjectBranchRepository extends JpaRepository { 11 | List findCodeProjectBranchByCodeProject(CodeProject codeProject); 12 | CodeProjectBranch findCodeProjectBranchByCodeProjectAndName(CodeProject project, String name); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/CodeScanRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import io.mixeway.db.entity.CodeScan; 5 | 6 | public interface CodeScanRepository extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/CxBranchRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2020-10-28 : 10:19 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.db.repository; 7 | 8 | import io.mixeway.db.entity.CodeProject; 9 | import io.mixeway.db.entity.CxBranch; 10 | import org.springframework.data.jpa.repository.JpaRepository; 11 | import org.springframework.data.jpa.repository.Query; 12 | import org.springframework.data.repository.query.Param; 13 | 14 | import java.util.Optional; 15 | 16 | public interface CxBranchRepository extends JpaRepository { 17 | Optional findByBranchAndCodeProject(String branch, CodeProject codeProject); 18 | @Query(value = "select b from CxBranch b where b.codeProject = :codeProject and b.branch = :branch") 19 | Optional getCxBranchForProjectAndBranchAndCxProjectCreated(@Param("codeProject") CodeProject codeProject, @Param("branch") String branch); 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/FortifySingleAppRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import io.mixeway.db.entity.FortifySingleApp; 5 | 6 | import java.util.List; 7 | import java.util.Optional; 8 | 9 | public interface FortifySingleAppRepository extends JpaRepository { 10 | List findByFinished(Boolean finished); 11 | List findByFinishedAndDownloaded(Boolean finished, Boolean downloaded); 12 | Optional findByRequestId(String requestId); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/GitCredentialsRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2020-10-14 : 23:18 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.db.repository; 7 | 8 | import io.mixeway.db.entity.GitCredentials; 9 | import org.springframework.data.jpa.repository.JpaRepository; 10 | 11 | import java.util.Optional; 12 | 13 | public interface GitCredentialsRepository extends JpaRepository { 14 | Optional findByUrl(String url); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/IaasApiRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.IaasApiType; 4 | import io.mixeway.db.entity.Project; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.stereotype.Repository; 7 | 8 | import io.mixeway.db.entity.IaasApi; 9 | 10 | import java.util.List; 11 | import java.util.Optional; 12 | 13 | @Repository 14 | public interface IaasApiRepository extends JpaRepository{ 15 | 16 | List findByStatus(Boolean status); 17 | List findByStatusAndEnabled(Boolean status, Boolean enabled); 18 | Optional findByProjectAndIaasApiType(Project project, IaasApiType type); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/IaasApiTypeRepisotory.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.IaasApiType; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | /** 7 | * @author gsiewruk 8 | */ 9 | public interface IaasApiTypeRepisotory extends JpaRepository { 10 | IaasApiType findByName(String name); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/JournalRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.stereotype.Repository; 5 | import io.mixeway.db.entity.Journal; 6 | 7 | @Repository 8 | public interface JournalRepository extends JpaRepository { 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/LoginSequenceRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import io.mixeway.db.entity.LoginSequence; 6 | 7 | public interface LoginSequenceRepository extends JpaRepository { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/NessusScanTemplateRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.Scanner; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import io.mixeway.db.entity.NessusScanTemplate; 7 | 8 | public interface NessusScanTemplateRepository extends JpaRepository { 9 | 10 | NessusScanTemplate findByNameAndNessus(String name, Scanner nessus); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/NessusScannerRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import java.util.List; 4 | 5 | import io.mixeway.db.entity.Scanner; 6 | import org.springframework.data.jpa.repository.JpaRepository; 7 | 8 | import io.mixeway.db.entity.NessusScanner; 9 | 10 | public interface NessusScannerRepository extends JpaRepository { 11 | List findByNessus(Scanner nessus); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/NodeRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.Project; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import io.mixeway.db.entity.Node; 6 | 7 | public interface NodeRepository extends JpaRepository { 8 | Node findByProjectAndNameAndType(Project project, String name, String type); 9 | Node findByProjectAndName(Project project, String name); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/ProjectVulnerabilityAuditRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.*; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.Query; 6 | import org.springframework.data.repository.query.Param; 7 | 8 | import java.util.List; 9 | 10 | public interface ProjectVulnerabilityAuditRepository extends JpaRepository { 11 | 12 | List findByCodeProjectAndLocationAndVulnerability(CodeProject codeProject, String location, Vulnerability vulnerability); 13 | List findByWebAppAndLocationAndVulnerability(WebApp webApp, String location, Vulnerability vulnerability); 14 | List findByAnInterfaceAndLocationAndVulnerability(Interface anInterface, String location, Vulnerability vulnerability); 15 | List findByProject(Project project); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/ProxiesRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import io.mixeway.db.entity.Proxies; 6 | 7 | import java.util.Optional; 8 | 9 | public interface ProxiesRepository extends JpaRepository { 10 | 11 | Optional findByIpAndPort(String ip, String port); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/RequirementRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import io.mixeway.db.entity.Requirement; 6 | 7 | public interface RequirementRepository extends JpaRepository { 8 | 9 | Requirement findByCode(String code); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/RoutingDomainRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import io.mixeway.db.entity.RoutingDomain; 6 | 7 | public interface RoutingDomainRepository extends JpaRepository{ 8 | 9 | RoutingDomain findByName(String name); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/ScannerTypeRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import io.mixeway.db.entity.ScannerType; 6 | import org.springframework.data.jpa.repository.Query; 7 | 8 | import java.util.List; 9 | 10 | public interface ScannerTypeRepository extends JpaRepository{ 11 | 12 | ScannerType findByNameIgnoreCase(String name); 13 | 14 | @Query("Select st from ScannerType st where st.name in ('Checkmarx','Fortify SSC')") 15 | List getCodeScanners(); 16 | List findByCategory(String category); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/SecurityGatewayRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.SecurityGateway; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | /** 7 | * @author gsiewruk 8 | */ 9 | public interface SecurityGatewayRepository extends JpaRepository { 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/SecurityGroupRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.stereotype.Repository; 5 | 6 | import io.mixeway.db.entity.SecurityGroup; 7 | 8 | @Repository 9 | public interface SecurityGroupRepository extends JpaRepository{ 10 | 11 | SecurityGroup findBySecuritygroupid(String securitygroupid); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/SecurityGroupRuleRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.stereotype.Repository; 5 | 6 | import io.mixeway.db.entity.SecurityGroupRule; 7 | 8 | @Repository 9 | public interface SecurityGroupRuleRepository extends JpaRepository { 10 | 11 | SecurityGroupRule findByRuleid(String ruleid); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/SettingsRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.Settings; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface SettingsRepository extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/SoftwarePacketRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import java.util.List; 4 | import java.util.Optional; 5 | 6 | import org.springframework.data.jpa.repository.JpaRepository; 7 | import org.springframework.data.jpa.repository.Query; 8 | 9 | import io.mixeway.db.entity.SoftwarePacket; 10 | import org.springframework.data.repository.query.Param; 11 | 12 | public interface SoftwarePacketRepository extends JpaRepository { 13 | Optional findByName(String name); 14 | @Query( value="update softwarepacket set uptated=false",nativeQuery = true ) 15 | List deactivateSoftwarePackets(); 16 | @Query(value = "select sp.* from softwarepacket sp inner join codeproject_softwarepacket cpsp on cpsp.softwarepacket_id=sp.id where cpsp.codeproject_id in " + 17 | "(select id from codeproject where project_id = :projectId)",nativeQuery = true) 18 | List getSoftwarePacketForProject(@Param("projectId") Long projectId); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/SoftwareRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import java.util.Optional; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import io.mixeway.db.entity.Asset; 8 | import io.mixeway.db.entity.Software; 9 | 10 | public interface SoftwareRepository extends JpaRepository { 11 | Optional findByAssetAndName(Asset asset, String name); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/StatusRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import io.mixeway.db.entity.Status; 5 | 6 | public interface StatusRepository extends JpaRepository { 7 | Status findByName(String name); 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/UserRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import java.util.Optional; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import io.mixeway.db.entity.User; 8 | 9 | public interface UserRepository extends JpaRepository { 10 | Optional findByCommonName(String commonName); 11 | Optional findByUsername(String username); 12 | Optional findByUsernameAndEnabled(String username, boolean enabled); 13 | Optional findByUsernameOrCommonName(String username, String commonName); 14 | Optional findByApiKey(String apiKey); 15 | 16 | Optional findByUsernameOrApiKey(String name, String apikey); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/VulnerabilityRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.Vulnerability; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import java.util.List; 7 | import java.util.Optional; 8 | 9 | /** 10 | * @author gsiewruk 11 | */ 12 | public interface VulnerabilityRepository extends JpaRepository { 13 | Optional findByName(String name); 14 | List findByNameContainingIgnoreCase(String name); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/VulnerabilitySourceRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.VulnerabilitySource; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | /** 7 | * @author gsiewruk 8 | */ 9 | public interface VulnerabilitySourceRepository extends JpaRepository { 10 | VulnerabilitySource findByName(String name); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/WebAppCookieRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.Modifying; 5 | import org.springframework.data.jpa.repository.Query; 6 | import io.mixeway.db.entity.WebAppCookies; 7 | 8 | public interface WebAppCookieRepository extends JpaRepository { 9 | @Modifying 10 | @Query(value="delete from webappcookies where webapp_id =?1",nativeQuery=true) 11 | void deleteCookiesForWebApp(Long webapp_id); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/WebAppHeaderRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import java.util.Optional; 4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import org.springframework.data.jpa.repository.Modifying; 8 | import org.springframework.data.jpa.repository.Query; 9 | import io.mixeway.db.entity.WebApp; 10 | import io.mixeway.db.entity.WebAppHeader; 11 | import org.springframework.transaction.annotation.Transactional; 12 | 13 | public interface WebAppHeaderRepository extends JpaRepository{ 14 | 15 | @Transactional 16 | @Modifying 17 | Long deleteByWebApp(WebApp webApp); 18 | Optional findByWebAppAndHeaderName(WebApp webApp, String headerName); 19 | @Modifying 20 | @Query(value="delete from webappheader where webapp_id =?1",nativeQuery=true) 21 | void deleteHeaderForWebApp(Long webapp_id); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/WebAppScanRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.Project; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import io.mixeway.db.entity.WebAppScan; 7 | 8 | public interface WebAppScanRepository extends JpaRepository{ 9 | 10 | WebAppScan findByProject(Project project); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/db/repository/WebAppScanStrategyRepository.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.db.repository; 2 | 3 | import io.mixeway.db.entity.WebAppScanStrategy; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface WebAppScanStrategyRepository extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/exceptions/NotValidRoleException.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.exceptions; 2 | 3 | /** 4 | * @author gsiewruk 5 | */ 6 | public class NotValidRoleException extends Exception{ 7 | public NotValidRoleException(String errorMessage) { 8 | super(errorMessage); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/exceptions/ScanException.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.exceptions; 2 | 3 | public class ScanException extends Exception{ 4 | public ScanException(String message){ 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/asset/FindAssetService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.asset; 2 | 3 | import io.mixeway.db.entity.Asset; 4 | import io.mixeway.db.entity.Project; 5 | import io.mixeway.db.repository.AssetRepository; 6 | import lombok.RequiredArgsConstructor; 7 | import org.springframework.stereotype.Service; 8 | import org.springframework.transaction.annotation.Transactional; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @author gsiewruk 14 | */ 15 | @RequiredArgsConstructor 16 | @Service 17 | public class FindAssetService { 18 | private final AssetRepository assetRepository; 19 | 20 | public List findByRequestId(String requestId){ 21 | return assetRepository.findByRequestId(requestId); 22 | } 23 | 24 | @Transactional 25 | public List findByProject(Project project){ 26 | return assetRepository.findByProject(project); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/bugtracker/DeleteBugTrackerService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.bugtracker; 2 | 3 | import io.mixeway.db.entity.BugTracker; 4 | import io.mixeway.db.repository.BugTrackerRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Service 12 | @RequiredArgsConstructor 13 | public class DeleteBugTrackerService { 14 | private final BugTrackerRepository bugTrackerRepository; 15 | 16 | public void delete(BugTracker bugTracker){ 17 | bugTrackerRepository.delete(bugTracker); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/gitcredentials/DeleteGitCredentialsService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.gitcredentials; 2 | 3 | import io.mixeway.db.entity.GitCredentials; 4 | import io.mixeway.db.repository.GitCredentialsRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Service 12 | @RequiredArgsConstructor 13 | public class DeleteGitCredentialsService { 14 | private final GitCredentialsRepository gitCredentialsRepository; 15 | 16 | public void remove(GitCredentials gitCredentials) { 17 | gitCredentialsRepository.delete(gitCredentials); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/gitcredentials/FindGitCredentialsService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.gitcredentials; 2 | 3 | import io.mixeway.db.entity.GitCredentials; 4 | import io.mixeway.db.repository.GitCredentialsRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | import java.util.List; 9 | import java.util.Optional; 10 | 11 | /** 12 | * @author gsiewruk 13 | */ 14 | @Service 15 | @RequiredArgsConstructor 16 | public class FindGitCredentialsService { 17 | private final GitCredentialsRepository gitCredentialsRepository; 18 | 19 | public List findAll(){ 20 | return gitCredentialsRepository.findAll(); 21 | } 22 | public Optional findByUrl(String url){ 23 | return gitCredentialsRepository.findByUrl(url); 24 | } 25 | public Optional findById(Long id){ 26 | return gitCredentialsRepository.findById(id); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/iaasapi/DeleteIaasApiService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.iaasapi; 2 | 3 | import io.mixeway.db.entity.IaasApi; 4 | import io.mixeway.db.repository.IaasApiRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Service 12 | @RequiredArgsConstructor 13 | public class DeleteIaasApiService { 14 | private final IaasApiRepository iaasApiRepository; 15 | 16 | public void delete(IaasApi iaasApi){ 17 | iaasApiRepository.delete(iaasApi); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/iaasapi/GetOrCreateIaasApiService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.iaasapi; 2 | 3 | import io.mixeway.db.entity.IaasApi; 4 | import io.mixeway.db.entity.IaasApiType; 5 | import io.mixeway.db.repository.IaasApiRepository; 6 | import io.mixeway.db.repository.IaasApiTypeRepisotory; 7 | import lombok.RequiredArgsConstructor; 8 | import org.springframework.stereotype.Service; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * @author gsiewruk 14 | */ 15 | @Service 16 | @RequiredArgsConstructor 17 | public class GetOrCreateIaasApiService { 18 | private final IaasApiTypeRepisotory iaasApiTypeRepisotory; 19 | private final IaasApiRepository iaasApiRepository; 20 | 21 | public List findAllTypes() { 22 | return iaasApiTypeRepisotory.findAll(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/iaasapi/UpdateIaasApiService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.iaasapi; 2 | 3 | import io.mixeway.db.entity.IaasApi; 4 | import io.mixeway.db.repository.IaasApiRepository; 5 | import io.mixeway.db.repository.IaasApiTypeRepisotory; 6 | import lombok.RequiredArgsConstructor; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * @author gsiewruk 11 | */ 12 | @Service 13 | @RequiredArgsConstructor 14 | public class UpdateIaasApiService { 15 | private final IaasApiTypeRepisotory iaasApiTypeRepisotory; 16 | private final IaasApiRepository iaasApiRepository; 17 | 18 | public void enable(IaasApi iaasApi) { 19 | iaasApi.setEnabled(true); 20 | iaasApiRepository.save(iaasApi); 21 | } 22 | 23 | public void disable(IaasApi iaasApi) { 24 | iaasApi.setEnabled(false); 25 | iaasApiRepository.save(iaasApi); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/infrascan/UpdateInfraScanService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.infrascan; 2 | 3 | import io.mixeway.db.entity.InfraScan; 4 | import io.mixeway.db.repository.InfraScanRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Service 12 | @RequiredArgsConstructor 13 | public class UpdateInfraScanService { 14 | private final InfraScanRepository infraScanRepository; 15 | 16 | public void changeStateForRunningScan(InfraScan scan){ 17 | scan.setInQueue(false); 18 | scan.setRunning(true); 19 | infraScanRepository.save(scan); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/intf/GetOrCreateInterfaceService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.intf; 2 | 3 | import io.mixeway.db.entity.Asset; 4 | import io.mixeway.db.entity.Interface; 5 | import io.mixeway.db.entity.Project; 6 | import io.mixeway.db.repository.InterfaceRepository; 7 | import io.mixeway.domain.service.asset.GetOrCreateAssetService; 8 | import io.mixeway.scanmanager.model.AssetToCreate; 9 | import lombok.RequiredArgsConstructor; 10 | import org.springframework.stereotype.Service; 11 | 12 | import java.util.Optional; 13 | 14 | /** 15 | * @author gsiewruk 16 | */ 17 | @Service 18 | @RequiredArgsConstructor 19 | public class GetOrCreateInterfaceService { 20 | private final InterfaceRepository interfaceRepository; 21 | private final GetOrCreateAssetService getOrCreateAssetService; 22 | private final InterfaceOperations interfaceOperations; 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/nessusscantemplate/FindNessusScanTemplateService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.nessusscantemplate; 2 | 3 | import io.mixeway.db.entity.NessusScanTemplate; 4 | import io.mixeway.db.entity.Scanner; 5 | import io.mixeway.db.repository.NessusScanTemplateRepository; 6 | import lombok.RequiredArgsConstructor; 7 | import org.springframework.stereotype.Service; 8 | 9 | 10 | /** 11 | * @author gsiewruk 12 | */ 13 | @Service 14 | @RequiredArgsConstructor 15 | public class FindNessusScanTemplateService { 16 | private String NESSUS_TEMPLATE = "Basic Network Scan"; 17 | private final NessusScanTemplateRepository nessusScanTemplateRepository; 18 | 19 | public NessusScanTemplate findTemplateFor(Scanner scanner){ 20 | return nessusScanTemplateRepository.findByNameAndNessus(NESSUS_TEMPLATE, scanner); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/project/DeleteProjectService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.project; 2 | 3 | import io.mixeway.db.entity.Project; 4 | import io.mixeway.db.repository.ProjectRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Service 12 | @RequiredArgsConstructor 13 | public class DeleteProjectService { 14 | private final ProjectRepository projectRepository; 15 | 16 | public void delete(Project project){ 17 | projectRepository.delete(project); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/projectvulnerability/UpdateProjectVulnerabilityService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.projectvulnerability; 2 | 3 | import io.mixeway.db.entity.CodeProject; 4 | import io.mixeway.db.entity.Project; 5 | import io.mixeway.db.repository.ProjectVulnerabilityRepository; 6 | import lombok.RequiredArgsConstructor; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * @author gsiewruk 11 | */ 12 | @Service 13 | @RequiredArgsConstructor 14 | public class UpdateProjectVulnerabilityService { 15 | private final ProjectVulnerabilityRepository projectVulnerabilityRepository; 16 | 17 | 18 | public void transferCodeGroup(CodeProject codeProject, Project newProject, Project oldProject){ 19 | projectVulnerabilityRepository.transferCodeProjectVulnerabilities(newProject.getId(),oldProject.getId(),codeProject.getId()); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/proxy/DeleteProxyService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.proxy; 2 | 3 | import io.mixeway.db.repository.ProxiesRepository; 4 | import lombok.RequiredArgsConstructor; 5 | import org.springframework.stereotype.Service; 6 | 7 | /** 8 | * @author gsiewruk 9 | */ 10 | @Service 11 | @RequiredArgsConstructor 12 | public class DeleteProxyService { 13 | private final ProxiesRepository proxiesRepository; 14 | 15 | public void deleteById(Long id){ 16 | proxiesRepository.deleteById(id); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/proxy/GetOrCreateProxyService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.proxy; 2 | 3 | import io.mixeway.db.entity.Proxies; 4 | import io.mixeway.db.repository.ProxiesRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | import java.util.List; 9 | import java.util.Optional; 10 | 11 | /** 12 | * @author gsiewruk 13 | */ 14 | @Service 15 | @RequiredArgsConstructor 16 | public class GetOrCreateProxyService { 17 | private final ProxiesRepository proxiesRepository; 18 | 19 | public Proxies getOrCreateProxies(Proxies proxies){ 20 | return proxiesRepository.saveAndFlush(proxies); 21 | } 22 | public Optional findById(Long id){ 23 | return proxiesRepository.findById(id); 24 | } 25 | 26 | public List findAll() { 27 | return proxiesRepository.findAll(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/routingdomain/DeleteRoutingDomainService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.routingdomain; 2 | 3 | import io.mixeway.db.repository.RoutingDomainRepository; 4 | import lombok.RequiredArgsConstructor; 5 | import org.springframework.stereotype.Service; 6 | 7 | /** 8 | * @author gsiewruk 9 | */ 10 | @Service 11 | @RequiredArgsConstructor 12 | public class DeleteRoutingDomainService { 13 | private final RoutingDomainRepository routingDomainRepository; 14 | 15 | public void deleteById(Long id){ 16 | routingDomainRepository.deleteById(id); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/routingdomain/FindRoutingDomainService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.routingdomain; 2 | 3 | import io.mixeway.db.entity.RoutingDomain; 4 | import io.mixeway.db.repository.RoutingDomainRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | import java.util.List; 9 | import java.util.Optional; 10 | 11 | /** 12 | * @author gsiewruk 13 | */ 14 | @Service 15 | @RequiredArgsConstructor 16 | public class FindRoutingDomainService { 17 | private final RoutingDomainRepository routingDomainRepository; 18 | 19 | 20 | public Optional findById(Long id) { 21 | return routingDomainRepository.findById(id); 22 | } 23 | 24 | public RoutingDomain findByName(String defaultRoutingDomain) { 25 | return routingDomainRepository.findByName(defaultRoutingDomain); 26 | } 27 | 28 | public List findAll() { 29 | return routingDomainRepository.findAll(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/scanmanager/code/CreateCodeProjectBranchService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.scanmanager.code; 2 | 3 | import io.mixeway.db.entity.CodeProject; 4 | import io.mixeway.db.entity.CodeProjectBranch; 5 | import io.mixeway.db.repository.CodeProjectBranchRepository; 6 | import lombok.RequiredArgsConstructor; 7 | import lombok.extern.log4j.Log4j2; 8 | import org.springframework.stereotype.Service; 9 | 10 | @Service 11 | @Log4j2 12 | @RequiredArgsConstructor 13 | public class CreateCodeProjectBranchService { 14 | private final CodeProjectBranchRepository codeProjectBranchRepository; 15 | 16 | public CodeProjectBranch createCodeProjectBranch(CodeProject codeProject, String branch){ 17 | return codeProjectBranchRepository.save(new CodeProjectBranch(codeProject,branch)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/scanmanager/webapp/DeleteWebAppService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.scanmanager.webapp; 2 | 3 | import io.mixeway.db.entity.WebApp; 4 | import io.mixeway.db.repository.WebAppRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Service 12 | @RequiredArgsConstructor 13 | public class DeleteWebAppService { 14 | private final WebAppRepository webAppRepository; 15 | 16 | public void delete(WebApp webApp){ 17 | webAppRepository.delete(webApp); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/scanner/DeleteScannerService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.scanner; 2 | 3 | import io.mixeway.db.entity.Scanner; 4 | import io.mixeway.db.repository.ScannerRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | import java.util.Optional; 9 | 10 | /** 11 | * @author gsiewruk 12 | */ 13 | @Service 14 | @RequiredArgsConstructor 15 | public class DeleteScannerService { 16 | private final ScannerRepository scannerRepository; 17 | 18 | public boolean removeScanner(Long id){ 19 | Optional scanner = scannerRepository.findById(id); 20 | if (scanner.isPresent()){ 21 | scannerRepository.deleteById(id); 22 | return true; 23 | } else { 24 | return false; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/scanner/UpdateScannerService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.scanner; 2 | 3 | import io.mixeway.db.entity.Scanner; 4 | import io.mixeway.db.repository.ScannerRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Service 12 | @RequiredArgsConstructor 13 | public class UpdateScannerService { 14 | private final ScannerRepository scannerRepository; 15 | 16 | public void decreaseScanNumber(Scanner scanner) { 17 | scanner.setRunningScans(scanner.getRunningScans() - 1); 18 | scannerRepository.save(scanner); 19 | } 20 | public void increaseScanNumber(Scanner scanner) { 21 | scanner.setRunningScans(scanner.getRunningScans() + 1); 22 | scannerRepository.save(scanner); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/securitygateway/FindSecurityGatewayService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.securitygateway; 2 | 3 | import io.mixeway.db.entity.SecurityGateway; 4 | import io.mixeway.db.repository.SecurityGatewayRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Service 12 | @RequiredArgsConstructor 13 | public class FindSecurityGatewayService { 14 | private final SecurityGatewayRepository securityGatewayRepository; 15 | 16 | public SecurityGateway getSecurityGateway(){ 17 | return securityGatewayRepository.findAll().stream().findFirst().orElse(null); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/settings/GetSettingsService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.settings; 2 | 3 | import io.mixeway.db.entity.Settings; 4 | import io.mixeway.db.repository.SettingsRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Service 12 | @RequiredArgsConstructor 13 | public class GetSettingsService { 14 | private final SettingsRepository settingsRepository; 15 | 16 | public Settings getSettings(){ 17 | return settingsRepository.findAll().stream().findFirst().orElse(null); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/softwarepackage/FindSoftwarePacketService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.softwarepackage; 2 | 3 | import io.mixeway.db.entity.SoftwarePacket; 4 | import io.mixeway.db.repository.SoftwarePacketRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | import java.util.List; 9 | import java.util.Optional; 10 | 11 | /** 12 | * @author gsiewruk 13 | */ 14 | @Service 15 | @RequiredArgsConstructor 16 | public class FindSoftwarePacketService { 17 | private final SoftwarePacketRepository softwarePacketRepository; 18 | 19 | public Optional findByName (String name, String version){ 20 | return softwarePacketRepository.findByName(name+":"+version); 21 | } 22 | 23 | public List getSoftwarePacketForProject(Long id) { 24 | return softwarePacketRepository.getSoftwarePacketForProject(id); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/domain/service/webappscanstrategy/FindWebAppScanStrategyService.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.webappscanstrategy; 2 | 3 | import io.mixeway.db.entity.WebAppScanStrategy; 4 | import io.mixeway.db.repository.WebAppScanStrategyRepository; 5 | import lombok.RequiredArgsConstructor; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @Service 12 | @RequiredArgsConstructor 13 | public class FindWebAppScanStrategyService { 14 | private final WebAppScanStrategyRepository webAppScanStrategyRepository; 15 | 16 | public WebAppScanStrategy findWebAppScanStrategy(){ 17 | return webAppScanStrategyRepository.findAll().stream().findFirst().orElse(null); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/jwt/JwtAuthenticationEntryPoint.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.jwt; 2 | 3 | import org.springframework.security.core.AuthenticationException; 4 | import org.springframework.security.web.AuthenticationEntryPoint; 5 | import org.springframework.stereotype.Component; 6 | 7 | import javax.servlet.http.HttpServletRequest; 8 | import javax.servlet.http.HttpServletResponse; 9 | import java.io.IOException; 10 | import java.io.Serializable; 11 | 12 | @Component 13 | public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint, Serializable { 14 | private static final long serialVersionUID = -7858869558953243875L; 15 | @Override 16 | public void commence(HttpServletRequest request, HttpServletResponse response, 17 | AuthenticationException authException) throws IOException { 18 | response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/acunetix/model/Reference.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.acunetix.model; 2 | 3 | /** 4 | * @author gsiewruk 5 | */ 6 | public class Reference { 7 | String href; 8 | 9 | public String getHref() { 10 | return href; 11 | } 12 | 13 | public void setHref(String href) { 14 | this.href = href; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/AggregatedIssueSummary.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @author gsiewruk 7 | */ 8 | public class AggregatedIssueSummary { 9 | List aggregated_issue_summaries; 10 | 11 | public List getAggregated_issue_summaries() { 12 | return aggregated_issue_summaries; 13 | } 14 | 15 | public void setAggregated_issue_summaries(List aggregated_issue_summaries) { 16 | this.aggregated_issue_summaries = aggregated_issue_summaries; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/AuthLogins.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | /** 4 | * @author gsiewruk 5 | */ 6 | public class AuthLogins { 7 | String password; 8 | String username; 9 | 10 | public AuthLogins() {} 11 | public AuthLogins(String password, String username){ 12 | this.password = password; 13 | this.username = username; 14 | } 15 | 16 | public String getPassword() { 17 | return password; 18 | } 19 | 20 | public void setPassword(String password) { 21 | this.password = password; 22 | } 23 | 24 | public String getUsername() { 25 | return username; 26 | } 27 | 28 | public void setUsername(String username) { 29 | this.username = username; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/Configuration.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonAutoDetect; 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | import org.codehaus.jackson.annotate.JsonProperty; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | 12 | @JsonInclude(JsonInclude.Include.NON_NULL) 13 | @JsonPropertyOrder({ 14 | "id", 15 | "name" 16 | }) 17 | @JsonAutoDetect 18 | public class Configuration { 19 | @JsonProperty 20 | String id; 21 | @JsonProperty 22 | String name; 23 | 24 | public String getId() { 25 | return id; 26 | } 27 | 28 | public void setId(String id) { 29 | this.id = id; 30 | } 31 | 32 | public String getName() { 33 | return name; 34 | } 35 | 36 | public void setName(String name) { 37 | this.name = name; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/CreateScanResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | public class CreateScanResponse { 4 | String id; 5 | 6 | public String getId() { 7 | return id; 8 | } 9 | 10 | public void setId(String id) { 11 | this.id = id; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/GetIssueDetails.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @author gsiewruk 7 | */ 8 | public class GetIssueDetails { 9 | List definitions; 10 | 11 | public List getDefinitions() { 12 | return definitions; 13 | } 14 | 15 | public void setDefinitions(List definitions) { 16 | this.definitions = definitions; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/GetSites.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @author gsiewruk 7 | */ 8 | public class GetSites { 9 | List trees; 10 | 11 | public List getTrees() { 12 | return trees; 13 | } 14 | 15 | public void setTrees(List trees) { 16 | this.trees = trees; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/IssueEvents.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | public class IssueEvents { 4 | Issue issue; 5 | 6 | public Issue getIssue() { 7 | return issue; 8 | } 9 | 10 | public void setIssue(Issue issue) { 11 | this.issue = issue; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/Scan.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | /** 4 | * @author gsiewruk 5 | */ 6 | public class Scan { 7 | String ref; 8 | String status; 9 | String start_time; 10 | 11 | public String getStart_time() { 12 | return start_time; 13 | } 14 | 15 | public void setStart_time(String start_time) { 16 | this.start_time = start_time; 17 | } 18 | 19 | public String getRef() { 20 | return ref; 21 | } 22 | 23 | public void setRef(String ref) { 24 | this.ref = ref; 25 | } 26 | 27 | public String getStatus() { 28 | return status; 29 | } 30 | 31 | public void setStatus(String status) { 32 | this.status = status; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/ScanConfig.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | import io.mixeway.config.Constants; 4 | import io.mixeway.db.entity.NessusScanTemplate; 5 | 6 | public class ScanConfig { 7 | String name; 8 | String type; 9 | 10 | public ScanConfig(){} 11 | public ScanConfig(NessusScanTemplate nessusScanTemplate){ 12 | this.name = nessusScanTemplate.getName(); 13 | this.type = Constants.BURP_NAMED_CONFIGURATION; 14 | } 15 | public String getName() { 16 | return name; 17 | } 18 | 19 | public void setName(String name) { 20 | this.name = name; 21 | } 22 | 23 | public String getType() { 24 | return type; 25 | } 26 | 27 | public void setType(String type) { 28 | this.type = type; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/ScanConfiguration.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | /** 9 | * @author gsiewruk 10 | */ 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | public class ScanConfiguration implements Serializable { 13 | List scan_configurations; 14 | 15 | public List getScan_configurations() { 16 | return scan_configurations; 17 | } 18 | 19 | public void setScan_configurations(List scan_configurations) { 20 | this.scan_configurations = scan_configurations; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/ScanResults.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | import java.util.List; 4 | 5 | public class ScanResults { 6 | String scan_status; 7 | List issue_events; 8 | 9 | public String getScan_status() { 10 | return scan_status; 11 | } 12 | 13 | public void setScan_status(String scan_status) { 14 | this.scan_status = scan_status; 15 | } 16 | 17 | public List getIssue_events() { 18 | return issue_events; 19 | } 20 | 21 | public void setIssue_events(List issue_events) { 22 | this.issue_events = issue_events; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/ScanSummaries.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | import org.codehaus.jackson.annotate.JsonProperty; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @author gsiewruk 9 | */ 10 | public class ScanSummaries { 11 | @JsonProperty("rows") 12 | List rows; 13 | 14 | public List getRows() { 15 | return rows; 16 | } 17 | 18 | public void setRows(List rows) { 19 | this.rows = rows; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/Site.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | /** 4 | * @author gsiewruk 5 | */ 6 | public class Site { 7 | String id; 8 | String name; 9 | 10 | public String getId() { 11 | return id; 12 | } 13 | 14 | public void setId(String id) { 15 | this.id = id; 16 | } 17 | 18 | public String getName() { 19 | return name; 20 | } 21 | 22 | public void setName(String name) { 23 | this.name = name; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/burpee/model/SiteIssues.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.burpee.model; 2 | 3 | import org.codehaus.jackson.annotate.JsonProperty; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @author gsiewruk 9 | */ 10 | public class SiteIssues { 11 | @JsonProperty("aggregated_issue_type_summaries") 12 | List aggregated_issue_type_summaries; 13 | long timestamp; 14 | 15 | public long getTimestamp() { 16 | return timestamp; 17 | } 18 | 19 | public void setTimestamp(long timestamp) { 20 | this.timestamp = timestamp; 21 | } 22 | 23 | public List getAggregated_issue_type_summaries() { 24 | return aggregated_issue_type_summaries; 25 | } 26 | 27 | public void setAggregated_issue_type_summaries(List aggregated_issue_type_summaries) { 28 | this.aggregated_issue_type_summaries = aggregated_issue_type_summaries; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxCreateProject.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 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 CxCreateProject { 13 | private String name; 14 | private String owningTeam; 15 | private boolean isPublic; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxCreateScan.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 2 | 3 | import io.mixeway.config.Constants; 4 | import io.mixeway.db.entity.CodeProject; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Getter; 7 | import lombok.NoArgsConstructor; 8 | import lombok.Setter; 9 | 10 | @Getter 11 | @Setter 12 | @AllArgsConstructor 13 | public class CxCreateScan { 14 | private long projectId; 15 | private boolean isIncremental; 16 | private boolean isPublic; 17 | private boolean forceScan; 18 | private String comment; 19 | public CxCreateScan(){} 20 | 21 | public CxCreateScan(CodeProject codeProject){ 22 | this.projectId = codeProject.getVersionIdAll() > 0 ? codeProject.getVersionIdAll() : codeProject.getRemoteid(); 23 | this.isIncremental = false; 24 | this.isPublic = true; 25 | this.forceScan = true; 26 | this.comment = Constants.CX_SCAN_COMMENT; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxLoginResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 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 CxLoginResponse { 13 | private String access_token; 14 | private long expires_in; 15 | private String token_type; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxProject.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 2 | 3 | import io.mixeway.db.entity.Scanner; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | @Getter 10 | @Setter 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class CxProject { 14 | private long id; 15 | private String teamId; 16 | private String name; 17 | private boolean isPublic; 18 | 19 | public CxProject(String name, Scanner scanner){ 20 | this.name = name; 21 | this.teamId = scanner.getTeam(); 22 | this.isPublic = true; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxProjectCreate.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import io.mixeway.db.entity.CodeProject; 5 | import io.mixeway.db.entity.Scanner; 6 | import lombok.AllArgsConstructor; 7 | import lombok.Getter; 8 | import lombok.NoArgsConstructor; 9 | import lombok.Setter; 10 | 11 | @Getter 12 | @Setter 13 | @AllArgsConstructor 14 | public class CxProjectCreate { 15 | private String owningTeam; 16 | private String name; 17 | @JsonProperty("isPublic") 18 | private boolean isPublic; 19 | 20 | public CxProjectCreate(String name, Scanner scanner){ 21 | this.name = name; 22 | this.owningTeam = scanner.getTeam(); 23 | this.isPublic = true; 24 | } 25 | public CxProjectCreate(CodeProject codeProject){ 26 | this.name=codeProject.getName()+"_"+codeProject.getBranch(); 27 | } 28 | public CxProjectCreate(){} 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxReportGenerate.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 2 | 3 | import io.mixeway.config.Constants; 4 | import io.mixeway.db.entity.CodeProject; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Getter; 7 | import lombok.NoArgsConstructor; 8 | import lombok.Setter; 9 | 10 | @Getter 11 | @Setter 12 | @AllArgsConstructor 13 | public class CxReportGenerate { 14 | private String reportType; 15 | private String scanId; 16 | 17 | public CxReportGenerate(CodeProject codeGroup){ 18 | this.reportType = Constants.CX_REPORT_TYPE; 19 | this.scanId = codeGroup.getScanid(); 20 | } 21 | public CxReportGenerate(){} 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxReportStatus.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 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 CxReportStatus { 13 | private CxStatus status; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxResponseId.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 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 CxResponseId { 13 | private long id; 14 | private long reportId; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxResult.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 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 CxResult { 13 | private String query, dstLocation, dstLine, analysis, severity, description, state; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxScan.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 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 CxScan { 13 | private long id; 14 | private CxProject project; 15 | private CxStatus status; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxStatus.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 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 CxStatus { 13 | private long id; 14 | private String name; 15 | private String value; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxTeamResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.checkmarx.model; 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 CxTeamResponse { 13 | private String id; 14 | private String fullName; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/checkmarx/model/CxVulnShortDescription.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2020-10-14 : 21:22 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.scanmanager.integrations.checkmarx.model; 7 | 8 | 9 | import lombok.AllArgsConstructor; 10 | import lombok.Getter; 11 | import lombok.NoArgsConstructor; 12 | import lombok.Setter; 13 | 14 | @Setter 15 | @Getter 16 | @NoArgsConstructor 17 | @AllArgsConstructor 18 | public class CxVulnShortDescription { 19 | String shortDescription; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/dependencytrack/model/Component.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.dependencytrack.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class Component { 9 | private String group; 10 | private String name; 11 | private String version; 12 | private String description; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/dependencytrack/model/Components.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.dependencytrack.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | @Getter 9 | @Setter 10 | public class Components { 11 | private List components; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/dependencytrack/model/DTrackCreateProject.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.dependencytrack.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class DTrackCreateProject { 9 | private String name; 10 | private String version; 11 | private boolean active; 12 | 13 | public DTrackCreateProject(String name){ 14 | this.name = name; 15 | this.version = "Default"; 16 | this.active = true; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/dependencytrack/model/DTrackCreateProjectResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.dependencytrack.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class DTrackCreateProjectResponse { 9 | private String name; 10 | private String uuid; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/dependencytrack/model/DTrackGetVulnsForProject.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.dependencytrack.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.util.List; 7 | 8 | @Getter 9 | @Setter 10 | public class DTrackGetVulnsForProject { 11 | private List dTrackVulns; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/dependencytrack/model/DTrackVuln.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.dependencytrack.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | import java.sql.Timestamp; 7 | import java.util.List; 8 | 9 | @Getter 10 | @Setter 11 | public class DTrackVuln { 12 | private String vulnId; 13 | private String source; 14 | private String description; 15 | private Timestamp published; 16 | private String recommendation; 17 | private String references; 18 | private String Severity; 19 | private List components; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nessus/model/CreateFolderRequest.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nessus.model; 2 | 3 | import io.mixeway.config.Constants; 4 | 5 | public class CreateFolderRequest { 6 | 7 | private String name; 8 | 9 | public String getName() { 10 | return name; 11 | } 12 | 13 | public void setName(String name) { 14 | this.name = name; 15 | } 16 | 17 | public CreateFolderRequest() { 18 | this.setName(Constants.NESSUS_FOLDER); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/Address.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class Address { 4 | private String ip; 5 | 6 | public String getIp() { 7 | return ip; 8 | } 9 | 10 | public void setIp(String ip) { 11 | this.ip = ip; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/AssetVulnerabilitiesResponseDTO.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | import java.util.List; 4 | 5 | public class AssetVulnerabilitiesResponseDTO { 6 | List resources; 7 | Page page; 8 | 9 | public Page getPage() { 10 | return page; 11 | } 12 | 13 | public void setPage(Page page) { 14 | this.page = page; 15 | } 16 | 17 | public List getResources() { 18 | return resources; 19 | } 20 | 21 | public void setResources(List resources) { 22 | this.resources = resources; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/Assets.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class Assets { 4 | 5 | private IncludedTargets includedTargets; 6 | 7 | public IncludedTargets getIncludedTargets() { 8 | return includedTargets; 9 | } 10 | 11 | public void setIncludedTargets(IncludedTargets includedTargets) { 12 | this.includedTargets = includedTargets; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/CreateSiteResponseDTO.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class CreateSiteResponseDTO { 4 | 5 | private int id; 6 | 7 | public int getId() { 8 | return id; 9 | } 10 | 11 | public void setId(int id) { 12 | this.id = id; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/Description.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class Description { 4 | private String html; 5 | 6 | public String getHtml() { 7 | return html; 8 | } 9 | 10 | public void setHtml(String html) { 11 | this.html = html; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/IncludedTargets.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | import java.util.List; 4 | 5 | public class IncludedTargets { 6 | private List addresses; 7 | 8 | public List getAddresses() { 9 | return addresses; 10 | } 11 | 12 | public void setAddresses(List addresses) { 13 | this.addresses = addresses; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/Page.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class Page { 4 | private int number; 5 | private int size; 6 | private int totalResources; 7 | private int totalPages; 8 | 9 | public int getNumber() { 10 | return number; 11 | } 12 | 13 | public void setNumber(int number) { 14 | this.number = number; 15 | } 16 | 17 | public int getSize() { 18 | return size; 19 | } 20 | 21 | public void setSize(int size) { 22 | this.size = size; 23 | } 24 | 25 | public int getTotalResources() { 26 | return totalResources; 27 | } 28 | 29 | public void setTotalResources(int totalResources) { 30 | this.totalResources = totalResources; 31 | } 32 | 33 | public int getTotalPages() { 34 | return totalPages; 35 | } 36 | 37 | public void setTotalPages(int totalPages) { 38 | this.totalPages = totalPages; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/Pci.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class Pci { 4 | 5 | private String specialNotes; 6 | 7 | public String getSpecialNotes() { 8 | return specialNotes; 9 | } 10 | 11 | public void setSpecialNotes(String specialNotes) { 12 | this.specialNotes = specialNotes; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/Result.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | import java.util.Date; 4 | 5 | public class Result { 6 | private String proof; 7 | private String status; 8 | private Date since; 9 | private int port; 10 | 11 | public int getPort() { 12 | return port; 13 | } 14 | 15 | public void setPort(int port) { 16 | this.port = port; 17 | } 18 | 19 | public String getProof() { 20 | return proof; 21 | } 22 | 23 | public void setProof(String proof) { 24 | this.proof = proof; 25 | } 26 | 27 | public String getStatus() { 28 | return status; 29 | } 30 | 31 | public void setStatus(String status) { 32 | this.status = status; 33 | } 34 | 35 | public Date getSince() { 36 | return since; 37 | } 38 | 39 | public void setSince(Date since) { 40 | this.since = since; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/Scan.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class Scan { 4 | 5 | private Assets assets; 6 | 7 | public Assets getAssets() { 8 | return assets; 9 | } 10 | 11 | public void setAssets(Assets assets) { 12 | this.assets = assets; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/ScanEngineResource.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class ScanEngineResource { 4 | 5 | 6 | private String address; 7 | private int id; 8 | private String name; 9 | 10 | public String getAddress() { 11 | return address; 12 | } 13 | 14 | public void setAddress(String address) { 15 | this.address = address; 16 | } 17 | 18 | public int getId() { 19 | return id; 20 | } 21 | 22 | public void setId(int id) { 23 | this.id = id; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | 30 | public void setName(String name) { 31 | this.name = name; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/ScanEnginesResponseDTO.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | import java.util.List; 4 | 5 | public class ScanEnginesResponseDTO { 6 | private List resources; 7 | 8 | public List getResources() { 9 | return resources; 10 | } 11 | 12 | public void setResources(List resources) { 13 | this.resources = resources; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/ScanResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class ScanResponse { 4 | int id; 5 | 6 | public int getId() { 7 | return id; 8 | } 9 | 10 | public void setId(int id) { 11 | this.id = id; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/ScanStatusResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class ScanStatusResponse { 4 | String status; 5 | 6 | public String getStatus() { 7 | return status; 8 | } 9 | 10 | public void setStatus(String status) { 11 | this.status = status; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/ScanTemplateResource.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | public class ScanTemplateResource { 4 | 5 | private String description; 6 | private String name; 7 | private String id; 8 | 9 | public String getDescription() { 10 | return description; 11 | } 12 | 13 | public void setDescription(String description) { 14 | this.description = description; 15 | } 16 | 17 | public String getName() { 18 | return name; 19 | } 20 | 21 | public void setName(String name) { 22 | this.name = name; 23 | } 24 | 25 | public String getId() { 26 | return id; 27 | } 28 | 29 | public void setId(String id) { 30 | this.id = id; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/ScanTemplateResponseDTO.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | import java.util.List; 4 | 5 | public class ScanTemplateResponseDTO { 6 | 7 | private List resources; 8 | 9 | public List getResources() { 10 | return resources; 11 | } 12 | 13 | public void setResources(List resources) { 14 | this.resources = resources; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexpose/model/SiteAssetsDTO.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexpose.model; 2 | 3 | import java.util.List; 4 | 5 | public class SiteAssetsDTO { 6 | private List resources; 7 | private Page page; 8 | 9 | public List getResources() { 10 | return resources; 11 | } 12 | 13 | public void setResources(List resources) { 14 | this.resources = resources; 15 | } 16 | 17 | public Page getPage() { 18 | return page; 19 | } 20 | 21 | public void setPage(Page page) { 22 | this.page = page; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/Application.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 Application { 13 | private String id; 14 | private String publicId; 15 | private String name; 16 | private String organizationId; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/Applications.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 | @NoArgsConstructor 13 | @AllArgsConstructor 14 | public class Applications { 15 | private List applications; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/ComponentIdentifier.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 ComponentIdentifier { 13 | private String format; 14 | private Coordinates coordinates; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/Coordinates.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 Coordinates { 13 | private String groupId; 14 | private String artifactId; 15 | private String packageId; 16 | private String version; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/GetReports.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 GetReports { 13 | private String stage; 14 | private String evaluationDate; 15 | private String reportDataUrl; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/Organization.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 Organization { 13 | 14 | private String id; 15 | private String name; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/Organizations.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 Organizations { 15 | private List organizations; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/RawReport.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 RawReport { 15 | private List components; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/ReportEntry.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import java.security.Security; 9 | import java.util.List; 10 | 11 | @Getter 12 | @Setter 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | public class ReportEntry { 16 | private String packageUrl; 17 | private String displayName; 18 | private ComponentIdentifier componentIdentifier; 19 | private SecurityData securityData; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/SecurityData.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 SecurityData { 15 | private List securityIssues; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/SecurityIssues.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 SecurityIssues { 13 | private String source; 14 | private String reference; 15 | private Double severity; 16 | private String threatCategory; 17 | private String url; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/SourceControl.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 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 SourceControl { 13 | private String id; 14 | private String ownerId; 15 | private String repositoryUrl; 16 | private String baseBranch; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/nexusiq/model/Synchro.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.nexusiq.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | import org.springframework.stereotype.Service; 8 | 9 | @Getter 10 | @Setter 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class Synchro { 14 | private String repoUrl; 15 | private String id; 16 | private String name; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openscap/model/Benchmark.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2021-01-21 : 20:31 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.scanmanager.integrations.openscap.model; 7 | 8 | import lombok.Getter; 9 | import lombok.NoArgsConstructor; 10 | import lombok.Setter; 11 | import org.simpleframework.xml.Element; 12 | import org.simpleframework.xml.ElementList; 13 | import org.simpleframework.xml.Root; 14 | 15 | import java.util.List; 16 | 17 | @Getter 18 | @Setter 19 | @NoArgsConstructor 20 | @Root(strict = false, name = "Benchmark") 21 | public class Benchmark { 22 | @Element 23 | String status; 24 | @Element 25 | String title; 26 | 27 | @ElementList(entry = "Group",data = true,inline = true) 28 | List groups; 29 | @Element(name = "TestResult") 30 | TestResult testResult; 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openscap/model/ComplexCheck.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2021-01-21 : 21:36 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.scanmanager.integrations.openscap.model; 7 | 8 | import org.simpleframework.xml.Root; 9 | 10 | @Root(name = "complex-check", strict = false) 11 | public class ComplexCheck { 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openscap/model/Group.java: -------------------------------------------------------------------------------- 1 | 2 | package io.mixeway.scanmanager.integrations.openscap.model; 3 | 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import org.simpleframework.xml.Element; 7 | import org.simpleframework.xml.ElementList; 8 | import org.simpleframework.xml.Root; 9 | 10 | import java.util.List; 11 | 12 | @Getter 13 | @Setter 14 | @Root(strict = false) 15 | public class Group { 16 | @Element(required = false) 17 | String title; 18 | @Element(required = false) 19 | String description; 20 | @ElementList(entry = "Group",inline = true,required = false) 21 | List groups; 22 | @ElementList(entry = "Rule", inline = true,required = false) 23 | Listrules; 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openscap/model/GroupRule.java: -------------------------------------------------------------------------------- 1 | 2 | package io.mixeway.scanmanager.integrations.openscap.model; 3 | 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import org.simpleframework.xml.Element; 7 | import org.simpleframework.xml.ElementList; 8 | import org.simpleframework.xml.Root; 9 | 10 | import java.util.List; 11 | 12 | @Getter 13 | @Setter 14 | @Root(strict = false,name = "Group") 15 | public class GroupRule { 16 | @Element 17 | String title; 18 | @Element(required = false) 19 | String description; 20 | @ElementList(entry = "Rule", inline = true) 21 | Listrules; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openscap/model/Rule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2021-01-21 : 21:33 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.scanmanager.integrations.openscap.model; 7 | 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | import org.simpleframework.xml.Attribute; 11 | import org.simpleframework.xml.Element; 12 | import org.simpleframework.xml.Root; 13 | 14 | @Getter 15 | @Setter 16 | @Root(strict = false, name = "Rule") 17 | public class Rule { 18 | @Element 19 | String title; 20 | String description; 21 | @Attribute 22 | String id; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openscap/model/RuleDescription.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2021-01-21 : 21:43 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.scanmanager.integrations.openscap.model; 7 | 8 | import org.simpleframework.xml.Path; 9 | import org.simpleframework.xml.Root; 10 | import org.simpleframework.xml.Text; 11 | 12 | @Root(strict = false, name = "description") 13 | public class RuleDescription { 14 | @Text(required = false) 15 | @Path("p") 16 | String description; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openscap/model/RuleResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2021-01-21 : 23:19 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.scanmanager.integrations.openscap.model; 7 | 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | import org.simpleframework.xml.Attribute; 11 | import org.simpleframework.xml.Element; 12 | import org.simpleframework.xml.Root; 13 | 14 | @Getter 15 | @Setter 16 | @Root(strict = false) 17 | public class RuleResult { 18 | @Attribute(name = "idref") 19 | String idref; 20 | @Element(required = false) 21 | String result; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openscap/model/TestResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @created 2021-01-21 : 23:17 3 | * @project MixewayScanner 4 | * @author siewer 5 | */ 6 | package io.mixeway.scanmanager.integrations.openscap.model; 7 | 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | import org.simpleframework.xml.Element; 11 | import org.simpleframework.xml.ElementList; 12 | import org.simpleframework.xml.Root; 13 | 14 | import java.util.List; 15 | 16 | @Getter 17 | @Setter 18 | @Root(strict = false) 19 | public class TestResult { 20 | @Element(required = false) 21 | String title; 22 | @ElementList(entry = "rule-result",data = true,inline = true) 23 | List ruleResults; 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/helper/OpenVasSocketResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.helper; 2 | 3 | public interface OpenVasSocketResponse { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Authenticate.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | 4 | public class Authenticate { 5 | private Credentials credentials; 6 | 7 | 8 | public Credentials getCredentials() { 9 | return credentials; 10 | } 11 | 12 | 13 | public void setCredentials(Credentials credentials) { 14 | this.credentials = credentials; 15 | } 16 | 17 | 18 | public Authenticate(User user) { 19 | this.setCredentials(new Credentials(user)); 20 | } 21 | public Authenticate(){} 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/ComandResponseGetConfig.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.*; 4 | 5 | 6 | @XmlRootElement(name="commands_response") 7 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 8 | public class ComandResponseGetConfig { 9 | String status; 10 | GetConfigResponse getConfigResponse; 11 | 12 | @XmlElement(name="get_configs_response") 13 | public GetConfigResponse getGetConfigResponse() { 14 | return getConfigResponse; 15 | } 16 | 17 | public void setGetConfigResponse(GetConfigResponse getConfigResponse) { 18 | this.getConfigResponse = getConfigResponse; 19 | } 20 | 21 | @XmlAttribute(name="status") 22 | public String getStatus() { 23 | return this.status; 24 | } 25 | 26 | public void setStatus(String status) { 27 | this.status = status; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/ComandResponseGetReport.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.*; 4 | 5 | 6 | @XmlRootElement(name="commands_response") 7 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 8 | public class ComandResponseGetReport { 9 | String status; 10 | GetReportResponse getReportResponse; 11 | 12 | @XmlElement(name="get_reports_response") 13 | public GetReportResponse getGetReportResponse() { 14 | return getReportResponse; 15 | } 16 | 17 | public void setGetReportResponse(GetReportResponse getReportResponse) { 18 | this.getReportResponse = getReportResponse; 19 | } 20 | 21 | 22 | @XmlAttribute(name="status") 23 | public String getStatus() { 24 | return this.status; 25 | } 26 | 27 | public void setStatus(String status) { 28 | this.status = status; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/ComandResponseGetScanners.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.*; 4 | 5 | 6 | @XmlRootElement(name="commands_response") 7 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 8 | public class ComandResponseGetScanners { 9 | String status; 10 | GetScannersResponse getScannersResponse; 11 | 12 | @XmlElement(name="get_scanners_response") 13 | public GetScannersResponse getGetScannersResponse() { 14 | return getScannersResponse; 15 | } 16 | 17 | public void setGetScannersResponse(GetScannersResponse getScannersResponse) { 18 | this.getScannersResponse = getScannersResponse; 19 | } 20 | 21 | @XmlAttribute(name="status") 22 | public String getStatus() { 23 | return this.status; 24 | } 25 | 26 | public void setStatus(String status) { 27 | this.status = status; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CommandCheckStatus.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.*; 4 | 5 | 6 | @XmlRootElement(name="commands_response") 7 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 8 | public class CommandCheckStatus { 9 | String status; 10 | GetTaskResponse getTaskResponse; 11 | 12 | @XmlElement(name="get_tasks_response") 13 | public GetTaskResponse getGetTaskResponse() { 14 | return getTaskResponse; 15 | } 16 | 17 | public void setGetTaskResponse(GetTaskResponse getTaskResponse) { 18 | this.getTaskResponse = getTaskResponse; 19 | } 20 | 21 | @XmlAttribute(name="status") 22 | public String getStatus() { 23 | return this.status; 24 | } 25 | 26 | public void setStatus(String status) { 27 | this.status = status; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CommandResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAttribute; 4 | 5 | public interface CommandResponse { 6 | @XmlAttribute 7 | String getStatus(); 8 | void setStatus(String status); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CommandResponseCreateTarget.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.*; 4 | 5 | 6 | @XmlRootElement(name="commands_response") 7 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 8 | public class CommandResponseCreateTarget { 9 | String status; 10 | CreateTargetResponse createTargetResponse; 11 | 12 | @XmlElement(name="create_target_response") 13 | public CreateTargetResponse getCreateTargetResponse() { 14 | return createTargetResponse; 15 | } 16 | 17 | public void setCreateTargetResponse(CreateTargetResponse createTargetResponse) { 18 | this.createTargetResponse = createTargetResponse; 19 | } 20 | 21 | @XmlAttribute(name="status") 22 | public String getStatus() { 23 | return this.status; 24 | } 25 | 26 | public void setStatus(String status) { 27 | this.status = status; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CommandResponseCreateTask.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.*; 4 | 5 | 6 | @XmlRootElement(name="commands_response") 7 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 8 | public class CommandResponseCreateTask { 9 | String status; 10 | CreateTaskResponse createTaskResponse; 11 | 12 | @XmlElement(name="create_task_response") 13 | public CreateTaskResponse getCreateTaskResponse() { 14 | return createTaskResponse; 15 | } 16 | 17 | public void setCreateTaskResponse(CreateTaskResponse createTaskResponse) { 18 | this.createTaskResponse = createTaskResponse; 19 | } 20 | 21 | @XmlAttribute(name="status") 22 | public String getStatus() { 23 | return this.status; 24 | } 25 | 26 | public void setStatus(String status) { 27 | this.status = status; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CommandResponseStartTask.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.*; 4 | 5 | 6 | @XmlRootElement(name="commands_response") 7 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 8 | public class CommandResponseStartTask { 9 | String status; 10 | StartTaskResponse startTaskResponse; 11 | 12 | @XmlElement(name="start_task_response") 13 | public StartTaskResponse getStartTaskResponse() { 14 | return startTaskResponse; 15 | } 16 | 17 | public void setStartTaskResponse(StartTaskResponse startTaskResponse) { 18 | this.startTaskResponse = startTaskResponse; 19 | } 20 | 21 | 22 | @XmlAttribute(name="status") 23 | public String getStatus() { 24 | return this.status; 25 | } 26 | 27 | public void setStatus(String status) { 28 | this.status = status; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CommandsGetConfig.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlRootElement; 4 | 5 | @XmlRootElement(name="commands") 6 | public class CommandsGetConfig { 7 | 8 | private Authenticate authenticate; 9 | private String get_configs; 10 | 11 | public Authenticate getAuthenticate() { 12 | return authenticate; 13 | } 14 | 15 | public void setAuthenticate(Authenticate authenticate) { 16 | this.authenticate = authenticate; 17 | } 18 | 19 | 20 | public String getGet_configs() { 21 | return get_configs; 22 | } 23 | 24 | public void setGet_configs(String get_configs) { 25 | this.get_configs = get_configs; 26 | } 27 | 28 | public CommandsGetConfig(User user) { 29 | this.setAuthenticate(new Authenticate(user)); 30 | this.setGet_configs(""); 31 | } 32 | public CommandsGetConfig() {} 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CommandsGetScanner.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | 4 | import javax.xml.bind.annotation.XmlRootElement; 5 | 6 | @XmlRootElement(name="commands") 7 | public class CommandsGetScanner { 8 | private Authenticate authenticate; 9 | private String get_scanners; 10 | public Authenticate getAuthenticate() { 11 | return authenticate; 12 | } 13 | public void setAuthenticate(Authenticate authenticate) { 14 | this.authenticate = authenticate; 15 | } 16 | public String getGet_scanners() { 17 | return get_scanners; 18 | } 19 | public void setGet_scanners(String get_scanners) { 20 | this.get_scanners = get_scanners; 21 | } 22 | 23 | public CommandsGetScanner() {} 24 | public CommandsGetScanner(User user) { 25 | this.setAuthenticate(new Authenticate(user)); 26 | this.setGet_scanners(""); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Config.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.*; 4 | 5 | @XmlRootElement(name="config") 6 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 7 | public class Config { 8 | 9 | private String id; 10 | private String name; 11 | 12 | @XmlElement(name="name") 13 | public String getName() { 14 | return name; 15 | } 16 | 17 | public void setName(String name) { 18 | this.name = name; 19 | } 20 | 21 | @XmlAttribute(name="id") 22 | public String getId() { 23 | return id; 24 | } 25 | 26 | public void setId(String id) { 27 | this.id = id; 28 | } 29 | public Config(String id) { 30 | this.setId(id); 31 | } 32 | public Config() {} 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CreateTarget.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | public class CreateTarget { 4 | 5 | private String name; 6 | private String hosts; 7 | private String alive_tests; 8 | public String getName() { 9 | return name; 10 | } 11 | public void setName(String name) { 12 | this.name = name; 13 | } 14 | public String getHosts() { 15 | return hosts; 16 | } 17 | public void setHosts(String hosts) { 18 | this.hosts = hosts; 19 | } 20 | public String getAlive_tests() { 21 | return alive_tests; 22 | } 23 | public void setAlive_tests(String alive_tests) { 24 | this.alive_tests = alive_tests; 25 | } 26 | public CreateTarget() { 27 | this.setAlive_tests("Consider Alive"); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CreateTargetResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAttribute; 4 | import javax.xml.bind.annotation.XmlRootElement; 5 | 6 | @XmlRootElement(name="create_target_response") 7 | public class CreateTargetResponse { 8 | String status; 9 | String id; 10 | 11 | @XmlAttribute(name="name") 12 | public String getStatus() { 13 | return status; 14 | } 15 | 16 | public void setStatus(String status) { 17 | this.status = status; 18 | } 19 | 20 | @XmlAttribute(name="id") 21 | public String getId() { 22 | return id; 23 | } 24 | 25 | public void setId(String id) { 26 | this.id = id; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CreateTask.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | public class CreateTask { 4 | private String name; 5 | private Config config; 6 | private Scanner scanner; 7 | private Target target; 8 | public String getName() { 9 | return name; 10 | } 11 | public void setName(String name) { 12 | this.name = name; 13 | } 14 | public Config getConfig() { 15 | return config; 16 | } 17 | public void setConfig(Config config) { 18 | this.config = config; 19 | } 20 | public Scanner getScanner() { 21 | return scanner; 22 | } 23 | public void setScanner(Scanner scanner) { 24 | this.scanner = scanner; 25 | } 26 | public Target getTarget() { 27 | return target; 28 | } 29 | public void setTarget(Target target) { 30 | this.target = target; 31 | } 32 | 33 | 34 | 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/CreateTaskResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAttribute; 4 | import javax.xml.bind.annotation.XmlRootElement; 5 | 6 | @XmlRootElement(name="create_task_response") 7 | public class CreateTaskResponse { 8 | String status; 9 | String id; 10 | 11 | @XmlAttribute(name="name") 12 | public String getStatus() { 13 | return status; 14 | } 15 | 16 | public void setStatus(String status) { 17 | this.status = status; 18 | } 19 | 20 | @XmlAttribute(name="id") 21 | public String getId() { 22 | return id; 23 | } 24 | 25 | public void setId(String id) { 26 | this.id = id; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Credentials.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | 4 | public class Credentials { 5 | 6 | private String username; 7 | private String password; 8 | public String getUsername() { 9 | return username; 10 | } 11 | public void setUsername(String username) { 12 | this.username = username; 13 | } 14 | public String getPassword() { 15 | return password; 16 | } 17 | public void setPassword(String password) { 18 | this.password = password; 19 | } 20 | 21 | public Credentials(User user) { 22 | this.setUsername(user.getUsername()); 23 | this.setPassword(user.getPassword()); 24 | } 25 | public Credentials(){} 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/DeleteTarget.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlAttribute; 6 | 7 | @XmlAccessorType(XmlAccessType.FIELD) 8 | public class DeleteTarget { 9 | 10 | @XmlAttribute(name="target_id") 11 | private String targetId; 12 | 13 | public String getTargetId() { 14 | return targetId; 15 | } 16 | 17 | public void setTargetId(String targetId) { 18 | this.targetId = targetId; 19 | } 20 | 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/GetConfigResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlElement; 6 | import javax.xml.bind.annotation.XmlRootElement; 7 | import java.util.List; 8 | 9 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 10 | @XmlRootElement(name="get_configs_response") 11 | public class GetConfigResponse { 12 | List config; 13 | 14 | @XmlElement(name="config") 15 | public List getConfig() { 16 | return config; 17 | } 18 | 19 | public void setConfig(List config) { 20 | this.config = config; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/GetReportResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlElement; 6 | import javax.xml.bind.annotation.XmlRootElement; 7 | 8 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 9 | @XmlRootElement(name="get_reports_response") 10 | public class GetReportResponse { 11 | ReportFirstLvl reportFirstLvl; 12 | 13 | @XmlElement(name="report") 14 | public ReportFirstLvl getReportFirstLvl() { 15 | return reportFirstLvl; 16 | } 17 | 18 | public void setReportFirstLvl(ReportFirstLvl reportFirstLvl) { 19 | this.reportFirstLvl = reportFirstLvl; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/GetScannersResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlElement; 6 | import javax.xml.bind.annotation.XmlRootElement; 7 | import java.util.List; 8 | 9 | @XmlRootElement(name="get_scanners_response") 10 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 11 | public class GetScannersResponse { 12 | List scanner; 13 | 14 | @XmlElement(name="scanner") 15 | public List getScanner() { 16 | return scanner; 17 | } 18 | 19 | public void setScanner(List scanner) { 20 | this.scanner = scanner; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/GetTask.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlAttribute; 6 | 7 | @XmlAccessorType(XmlAccessType.FIELD) 8 | 9 | public class GetTask { 10 | 11 | @XmlAttribute(name="task_id") 12 | private String taskId; 13 | 14 | public String getTaskId() { 15 | return taskId; 16 | } 17 | 18 | public void setTaskId(String taskId) { 19 | this.taskId = taskId; 20 | } 21 | 22 | public GetTask(String id) { 23 | this.setTaskId(id); 24 | } 25 | public GetTask(){} 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/GetTaskResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlElement; 6 | import javax.xml.bind.annotation.XmlRootElement; 7 | 8 | @XmlRootElement(name="get_tasks_response") 9 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 10 | public class GetTaskResponse { 11 | Task task; 12 | 13 | @XmlElement(name="task") 14 | public Task getTask() { 15 | return task; 16 | } 17 | 18 | public void setTask(Task task) { 19 | this.task = task; 20 | } 21 | public GetTaskResponse(){} 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Host.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlElement; 6 | import javax.xml.bind.annotation.XmlRootElement; 7 | 8 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 9 | @XmlRootElement(name="host") 10 | public class Host { 11 | String hostname; 12 | String ip; 13 | 14 | @XmlElement(name="ip") 15 | public String getIp() { 16 | return ip; 17 | } 18 | 19 | public void setIp(String ip) { 20 | this.ip = ip; 21 | } 22 | 23 | @XmlElement(name="__text") 24 | public String getHostname() { 25 | return hostname; 26 | } 27 | 28 | public void setHostname(String hostname) { 29 | this.hostname = hostname; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/ModifyTask.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlAttribute; 6 | 7 | @XmlAccessorType(XmlAccessType.FIELD) 8 | 9 | public class ModifyTask { 10 | @XmlAttribute(name="task_id") 11 | private String taskId; 12 | 13 | private Target target; 14 | 15 | public String getTaskId() { 16 | return taskId; 17 | } 18 | 19 | public void setTaskId(String taskId) { 20 | this.taskId = taskId; 21 | } 22 | 23 | public Target getTarget() { 24 | return target; 25 | } 26 | 27 | public void setTarget(Target target) { 28 | this.target = target; 29 | } 30 | 31 | public ModifyTask(String taskId, Target target) { 32 | this.setTaskId(taskId); 33 | this.setTarget(target); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Port.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | public class Port { 4 | private String port; 5 | private String threat; 6 | private String host; 7 | public String getPort() { 8 | return port; 9 | } 10 | public void setPort(String port) { 11 | this.port = port; 12 | } 13 | public String getThreat() { 14 | return threat; 15 | } 16 | public void setThreat(String threat) { 17 | this.threat = threat; 18 | } 19 | public String getHost() { 20 | return host; 21 | } 22 | public void setHost(String host) { 23 | this.host = host; 24 | } 25 | 26 | 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Report.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlAttribute; 6 | 7 | @XmlAccessorType(XmlAccessType.FIELD) 8 | public class Report { 9 | 10 | @XmlAttribute(name="report_id") 11 | private String reportId; 12 | @XmlAttribute(name="ignore_pagination") 13 | private Boolean ignorePagination = true; 14 | 15 | public String getReportId() { 16 | return reportId; 17 | } 18 | 19 | public void setReportId(String reportId) { 20 | this.reportId = reportId; 21 | } 22 | 23 | public Report(String id) { 24 | this.setReportId(id); 25 | } 26 | 27 | public Boolean getIgnorePagination() { 28 | return ignorePagination; 29 | } 30 | 31 | public void setIgnorePagination(Boolean ignorePagination) { 32 | this.ignorePagination = ignorePagination; 33 | } 34 | public Report(){} 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/ReportFirstLvl.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlElement; 6 | import javax.xml.bind.annotation.XmlRootElement; 7 | 8 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 9 | @XmlRootElement(name="report") 10 | public class ReportFirstLvl { 11 | ReportSecondLvl reportSecondLvl; 12 | 13 | @XmlElement(name="report") 14 | public ReportSecondLvl getReportSecondLvl() { 15 | return reportSecondLvl; 16 | } 17 | 18 | public void setReportSecondLvl(ReportSecondLvl reportSecondLvl) { 19 | this.reportSecondLvl = reportSecondLvl; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/ReportSecondLvl.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlElement; 6 | import javax.xml.bind.annotation.XmlRootElement; 7 | 8 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 9 | @XmlRootElement(name="report") 10 | public class ReportSecondLvl { 11 | Results results; 12 | Host host; 13 | 14 | @XmlElement(name="host") 15 | public Host getHost() { 16 | return host; 17 | } 18 | 19 | public void setHost(Host host) { 20 | this.host = host; 21 | } 22 | 23 | @XmlElement(name="results") 24 | public Results getResults() { 25 | return results; 26 | } 27 | 28 | public void setResults(Results results) { 29 | this.results = results; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/ReportXml.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import java.util.List; 4 | 5 | public class ReportXml { 6 | private List vulns; 7 | public List getVulns() { 8 | return vulns; 9 | } 10 | public void setVulns(List vulns) { 11 | this.vulns = vulns; 12 | } 13 | 14 | public ReportXml(List v) { 15 | this.setVulns(v); 16 | } 17 | 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/RestRequestBody.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import java.util.HashMap; 4 | 5 | public class RestRequestBody { 6 | private User user; 7 | private HashMap params; 8 | public User getUser() { 9 | return user; 10 | } 11 | public void setUser(User user) { 12 | this.user = user; 13 | } 14 | public HashMap getParams() { 15 | return params; 16 | } 17 | public void setParams(HashMap params) { 18 | this.params = params; 19 | } 20 | 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Results.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlElement; 6 | import javax.xml.bind.annotation.XmlRootElement; 7 | import java.util.List; 8 | 9 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 10 | @XmlRootElement(name="results") 11 | public class Results { 12 | List results; 13 | 14 | @XmlElement(name="result") 15 | public List getResults() { 16 | return results; 17 | } 18 | 19 | public void setResults(List results) { 20 | this.results = results; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Scanner.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.*; 4 | 5 | @XmlRootElement(name="scanner") 6 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 7 | public class Scanner { 8 | 9 | private String id; 10 | private String name; 11 | 12 | @XmlElement(name="name") 13 | public String getName() { 14 | return name; 15 | } 16 | 17 | public void setName(String name) { 18 | this.name = name; 19 | } 20 | 21 | @XmlAttribute(name="id") 22 | public String getId() { 23 | return id; 24 | } 25 | 26 | public void setId(String id) { 27 | this.id = id; 28 | } 29 | public Scanner(String id) { 30 | this.setId(id); 31 | } 32 | public Scanner(){} 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/StartTask.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlAttribute; 6 | 7 | @XmlAccessorType(XmlAccessType.FIELD) 8 | public class StartTask { 9 | @XmlAttribute(name="task_id") 10 | private String taskId; 11 | 12 | public String getTaskId() { 13 | return taskId; 14 | } 15 | 16 | public void setTaskId(String taskId) { 17 | this.taskId = taskId; 18 | } 19 | 20 | public StartTask(String id) { 21 | this.setTaskId(id); 22 | } 23 | 24 | public StartTask(){} 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/StartTaskResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlElement; 4 | import javax.xml.bind.annotation.XmlRootElement; 5 | 6 | @XmlRootElement(name="start_task_response") 7 | public class StartTaskResponse { 8 | String reportId; 9 | 10 | @XmlElement(name="report_id") 11 | public String getReportId() { 12 | return reportId; 13 | } 14 | 15 | public void setReportId(String reportId) { 16 | this.reportId = reportId; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Target.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.XmlAccessType; 4 | import javax.xml.bind.annotation.XmlAccessorType; 5 | import javax.xml.bind.annotation.XmlAttribute; 6 | 7 | @XmlAccessorType(XmlAccessType.FIELD) 8 | 9 | public class Target { 10 | @XmlAttribute 11 | private String id; 12 | 13 | public String getId() { 14 | return id; 15 | } 16 | 17 | public void setId(String id) { 18 | this.id = id; 19 | } 20 | public Target(String id) { 21 | this.setId(id); 22 | } 23 | public Target(){} 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Task.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | import javax.xml.bind.annotation.*; 4 | 5 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 6 | @XmlRootElement(name="task") 7 | public class Task { 8 | private String id; 9 | private String status; 10 | 11 | @XmlElement(name="status") 12 | public String getStatus() { 13 | return status; 14 | } 15 | 16 | public void setStatus(String status) { 17 | this.status = status; 18 | } 19 | 20 | @XmlAttribute(name="id") 21 | public String getId() { 22 | return id; 23 | } 24 | 25 | public void setId(String id) { 26 | this.id = id; 27 | } 28 | public Task(String id) { 29 | this.setId(id); 30 | } 31 | public Task(){} 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/User.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | public class User { 4 | private String username; 5 | private String password; 6 | public User(String username, String password){ 7 | this.username = username; 8 | this.password = password; 9 | } 10 | public User() {} 11 | public String getUsername() { 12 | return username; 13 | } 14 | public void setUsername(String username) { 15 | this.username = username; 16 | } 17 | public String getPassword() { 18 | return password; 19 | } 20 | public void setPassword(String password) { 21 | this.password = password; 22 | } 23 | 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/openvas/model/Vuln.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.openvas.model; 2 | 3 | 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | public class Vuln { 10 | 11 | private String name; 12 | private String threat; 13 | private String port; 14 | private String host; 15 | private String desc; 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/vulnauditor/model/VulnAuditorRequestModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.vulnauditor.model; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @author gsiewruk 7 | */ 8 | public class VulnAuditorRequestModel { 9 | List vulnAuditorRequests; 10 | 11 | public VulnAuditorRequestModel(){} 12 | public VulnAuditorRequestModel(List vulnAuditorRequests){ 13 | this.vulnAuditorRequests = vulnAuditorRequests; 14 | } 15 | 16 | public List getVulnAuditorRequests() { 17 | return vulnAuditorRequests; 18 | } 19 | 20 | public void setVulnAuditorRequests(List vulnAuditorRequests) { 21 | this.vulnAuditorRequests = vulnAuditorRequests; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/vulnauditor/model/VulnAuditorResponse.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.vulnauditor.model; 2 | 3 | /** 4 | * @author gsiewruk 5 | */ 6 | public class VulnAuditorResponse { 7 | Long id; 8 | int audit; 9 | 10 | public Long getId() { 11 | return id; 12 | } 13 | 14 | public void setId(Long id) { 15 | this.id = id; 16 | } 17 | 18 | public int getAudit() { 19 | return audit; 20 | } 21 | 22 | public void setAudit(int audit) { 23 | this.audit = audit; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/integrations/vulnauditor/model/VulnAuditorResponseModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.integrations.vulnauditor.model; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @author gsiewruk 7 | */ 8 | public class VulnAuditorResponseModel { 9 | List vulnAuditorResponses; 10 | 11 | public List getVulnAuditorResponses() { 12 | return vulnAuditorResponses; 13 | } 14 | 15 | public void setVulnAuditorResponses(List vulnAuditorResponses) { 16 | this.vulnAuditorResponses = vulnAuditorResponses; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/AssetToCreate.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.*; 4 | 5 | @Getter 6 | @Setter 7 | @Builder 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class AssetToCreate { 11 | private String hostname; 12 | private String ip; 13 | private String routingDomain; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/CodeRequestHelper.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | import org.springframework.http.HttpEntity; 8 | import org.springframework.web.client.RestTemplate; 9 | 10 | @Getter 11 | @Setter 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | public class CodeRequestHelper { 15 | RestTemplate restTemplate; 16 | HttpEntity httpEntity; 17 | 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/Cookies.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import io.mixeway.db.entity.WebApp; 4 | import io.mixeway.db.entity.WebAppCookies; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | import java.util.ArrayList; 9 | import java.util.List; 10 | 11 | @Getter 12 | @Setter 13 | public class Cookies { 14 | private List custom_cookies; 15 | public List getCustom_cookies() { 16 | return custom_cookies; 17 | } 18 | 19 | public Cookies(WebApp wa) { 20 | List customCookies = new ArrayList<>(); 21 | for (WebAppCookies cookies : wa.getWebAppCookies()){ 22 | CustomCookie customCookie = new CustomCookie(); 23 | customCookie.setCookie(cookies.getCookie()); 24 | customCookie.setUrl(cookies.getUrl()); 25 | customCookies.add(customCookie); 26 | } 27 | this.setCustom_cookies(customCookies); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/CreateTarget.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import io.mixeway.db.entity.WebApp; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | @Getter 9 | @Setter 10 | @NoArgsConstructor 11 | public class CreateTarget { 12 | private String address; 13 | private String description; 14 | private String type; 15 | private int criticality; 16 | 17 | public CreateTarget(WebApp webApp) { 18 | this.setAddress(webApp.getUrl().trim()); 19 | this.setDescription("System: "+webApp.getProject().getName()+", Auto scan from mixeer"); 20 | this.setType("default"); 21 | this.setCriticality(30); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/CustomCookie.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class CustomCookie { 9 | private String cookie; 10 | private String url; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/Headers.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import io.mixeway.db.entity.WebApp; 4 | import io.mixeway.db.entity.WebAppHeader; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | @Getter 11 | @Setter 12 | public class Headers { 13 | 14 | private String[] custom_headers; 15 | 16 | public Headers(WebApp wa) { 17 | String[] h = new String[wa.getHeaders().size()]; 18 | int i = 0; 19 | for (WebAppHeader header : wa.getHeaders()) { 20 | h[i] = header.getHeaderName()+":"+header.getHeaderValue(); 21 | i++; 22 | } 23 | 24 | this.setCustom_headers(h); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/LoadVlnerabilitiesModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import java.util.List; 8 | 9 | @Getter 10 | @Setter 11 | @NoArgsConstructor 12 | public class LoadVlnerabilitiesModel { 13 | List vulnerabilities; 14 | Pagination pagination; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/LoginSequenceUploadCreate.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import io.mixeway.db.entity.WebApp; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | public class LoginSequenceUploadCreate { 10 | 11 | private String name; 12 | private String size; 13 | 14 | public LoginSequenceUploadCreate(WebApp webApp) { 15 | this.setName(webApp.getLoginSequence().getName()); 16 | this.setSize(""+webApp.getLoginSequence().getLoginSequenceText().length()); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/NetworkScanRequestModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import java.util.List; 8 | import java.util.Optional; 9 | 10 | @Getter 11 | @Setter 12 | @NoArgsConstructor 13 | public class NetworkScanRequestModel { 14 | 15 | private List ipAddresses; 16 | private String projectName; 17 | private String ciid; 18 | Optional enableVulnManage; 19 | 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/OSSVulnerabilityModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import io.mixeway.db.entity.ScannerType; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | /** 10 | * @author gsiewruk 11 | */ 12 | @Getter 13 | @Setter 14 | @NoArgsConstructor 15 | @JsonInclude(JsonInclude.Include.NON_NULL) 16 | public class OSSVulnerabilityModel { 17 | private String name; 18 | private ScannerType scannerType; 19 | private String description; 20 | private String filename; 21 | private String line; 22 | private String severity; 23 | private String packageName; 24 | private String packageVersion; 25 | private String recomendations; 26 | private String references; 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/Pagination.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class Pagination { 9 | String next_cursor; 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/Projects.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.*; 4 | 5 | @Getter 6 | @Setter 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Projects { 11 | private String name; 12 | private String uuid; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/Reference.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | /** 7 | * @author gsiewruk 8 | */ 9 | @Getter 10 | @Setter 11 | public class Reference { 12 | String href; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/RequestHeaders.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class RequestHeaders { 9 | 10 | private String headerName; 11 | private String headerValue; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/RunScan.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class RunScan { 9 | private String target_id; 10 | private String profile_id; 11 | private Schedule schedule; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/SASTRequestVerify.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import io.mixeway.db.entity.CodeProject; 4 | import lombok.Builder; 5 | import lombok.Getter; 6 | import lombok.NoArgsConstructor; 7 | import lombok.Setter; 8 | 9 | @Setter 10 | @Getter 11 | @Builder 12 | public class SASTRequestVerify { 13 | private Boolean valid; 14 | private CodeProject cp; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/Schedule.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class Schedule { 9 | private Boolean disable; 10 | private Boolean time_sensitive; 11 | private String start_date; 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/ServiceDiscoveryKoordynatorRequest.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import java.util.List; 8 | 9 | @Getter 10 | @Setter 11 | @NoArgsConstructor 12 | public class ServiceDiscoveryKoordynatorRequest { 13 | 14 | List webApp; 15 | 16 | String ciid; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/TokenValidator.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import java.time.LocalDateTime; 4 | 5 | import static java.time.LocalDateTime.now; 6 | 7 | public class TokenValidator { 8 | 9 | public boolean isTokenValid(String fortifyToken, LocalDateTime fortifyTokenExpiration) { 10 | if (fortifyToken == null) { 11 | return false; 12 | } else { 13 | return fortifyTokenExpiration.isBefore(now()); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/VulnerabilityModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import java.util.List; 9 | 10 | @Getter 11 | @Setter 12 | @NoArgsConstructor 13 | public class VulnerabilityModel { 14 | String affects_detail; 15 | String affects_url; 16 | String continuous; 17 | String issue_id; 18 | String last_seen; 19 | int severity; 20 | String status; 21 | List tags; 22 | String target_description; 23 | String target_id; 24 | String vt_id; 25 | String vt_name; 26 | String vuln_id; 27 | String recommendation; 28 | List references; 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/WebAppScanModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | import java.util.List; 9 | 10 | @Getter 11 | @Setter 12 | @NoArgsConstructor 13 | public class WebAppScanModel { 14 | 15 | private String url; 16 | private Boolean isPublic; 17 | List headers; 18 | List cookies; 19 | @JsonProperty("codeGroup") 20 | private String codeGroup; 21 | @JsonProperty("codeProject") 22 | private String codeProject; 23 | private String routingDomain; 24 | private String username; 25 | private String password; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/model/WebAppScanRequestModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.model; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | import java.util.List; 8 | import java.util.Optional; 9 | 10 | @Getter 11 | @Setter 12 | @NoArgsConstructor 13 | public class WebAppScanRequestModel { 14 | 15 | List webApp; 16 | Optional ciid; 17 | Optional projectName; 18 | Optional enableVulnManage; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scanmanager/service/webapp/WebAppScanClient.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scanmanager.service.webapp; 2 | 3 | import io.mixeway.db.entity.ProjectVulnerability; 4 | import io.mixeway.db.entity.Scanner; 5 | import io.mixeway.db.entity.WebApp; 6 | 7 | import java.util.List; 8 | 9 | public interface WebAppScanClient { 10 | void runScan(WebApp webApp, Scanner scanner) throws Exception; 11 | void configureWebApp(WebApp webApp, Scanner scanner) throws Exception; 12 | Boolean isScanDone(Scanner scanner, WebApp webApp) throws Exception; 13 | Boolean loadVulnerabilities(Scanner scanner, WebApp webApp, String paginator, List oldVulns) throws Exception; 14 | boolean canProcessRequest(Scanner scanner); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/scheduler/ServiceDiscoveryScheduler.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.scheduler; 2 | 3 | import io.mixeway.servicediscovery.service.IaasService; 4 | import org.springframework.scheduling.annotation.Scheduled; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * @author gsiewruk 9 | * 10 | * Scheduler for loading Assets from store IAAS platforms 11 | */ 12 | @Component 13 | public class ServiceDiscoveryScheduler { 14 | IaasService iaasApiService; 15 | 16 | ServiceDiscoveryScheduler(IaasService iaasApiService){ 17 | this.iaasApiService = iaasApiService; 18 | } 19 | 20 | @Scheduled(fixedDelay = 150000) 21 | public void synchronizeWithIaas() { 22 | iaasApiService.loadDataFromIaas(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/servicediscovery/scheduler/IaasApiScheduler.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.servicediscovery.scheduler; 2 | 3 | import io.mixeway.servicediscovery.service.IaasService; 4 | import org.springframework.scheduling.annotation.Scheduled; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * @author gsiewruk 9 | * 10 | * Scheduler for loading Assets from store IAAS platforms 11 | */ 12 | @Component 13 | public class IaasApiScheduler { 14 | IaasService iaasApiService; 15 | 16 | IaasApiScheduler(IaasService iaasApiService){ 17 | this.iaasApiService = iaasApiService; 18 | } 19 | 20 | @Scheduled(fixedDelay = 150000) 21 | public void synchronizeWithIaas() { 22 | iaasApiService.loadDataFromIaas(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/utils/EventType.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.utils; 2 | 3 | public enum EventType { 4 | CREATED, 5 | UPDATED, 6 | RESOLVED 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/utils/LogUtil.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.utils; 2 | 3 | public class LogUtil { 4 | 5 | public static String prepare(String msg){ 6 | return msg.replaceAll("[\n|\r|\t]","_"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/utils/ProjectAudit.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.utils; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public class ProjectAudit { 7 | private long createdVulnerabilities; 8 | private long resolvedVulnerabilities; 9 | private double averageTimeToResolve; 10 | private String percentCriticalsSolved; 11 | 12 | public ProjectAudit(long createdVulnerabilities, long resolvedVulnerabilities, double averageTimeToResolve, String criticalSovled) { 13 | this.createdVulnerabilities = createdVulnerabilities; 14 | this.resolvedVulnerabilities = resolvedVulnerabilities; 15 | this.averageTimeToResolve = averageTimeToResolve; 16 | this.percentCriticalsSolved = criticalSovled; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/utils/RunScanForAssets.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.utils; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @NoArgsConstructor 10 | public class RunScanForAssets { 11 | Long assetId; 12 | String hostname; 13 | String ipAddress; 14 | String routingDomain; 15 | int risk; 16 | boolean running; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/utils/RunScanForCodeProject.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.utils; 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 RunScanForCodeProject { 13 | Long id; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/utils/RunScanForWebApps.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.utils; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @NoArgsConstructor 10 | public class RunScanForWebApps { 11 | Long webAppId; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/utils/SASTProject.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.utils; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import lombok.Setter; 7 | 8 | @Builder 9 | @Getter 10 | @Setter 11 | @NoArgsConstructor 12 | public class SASTProject { 13 | private long id; 14 | private String name; 15 | 16 | public SASTProject(long id, String name) { 17 | this.name = name; 18 | this.id = id; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/utils/ScannerModel.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.utils; 2 | 3 | import lombok.*; 4 | 5 | @Builder 6 | @Setter 7 | @Getter 8 | @NoArgsConstructor 9 | @AllArgsConstructor 10 | public class ScannerModel { 11 | private String scannerType; 12 | private Long routingDomain; 13 | private Long proxy; 14 | private String apiUrl; 15 | private String username; 16 | private String password; 17 | private String secretkey; 18 | private String accesskey; 19 | private String apiKey; 20 | private String cloudCtrlToken; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/utils/ScannerType.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.utils; 2 | 3 | public enum ScannerType { 4 | OPENSOURCE, 5 | SAST, 6 | GITLEAKS, 7 | DAST, 8 | PROGPILOT, 9 | IAC 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/io/mixeway/utils/VulnSource.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.utils; 2 | 3 | /** 4 | * @author gsiewruk 5 | */ 6 | public interface VulnSource { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/persistence.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/resources/liquibase.properties: -------------------------------------------------------------------------------- 1 | # Liquibase properties 2 | driver: org.postgresql.Driver 3 | url: jdbc:postgresql://localhost:5432/mixer 4 | username: mixeruser 5 | password: mixerpassword 6 | changeLogFile: classpath:db/changelog/db.changelog-master.sql -------------------------------------------------------------------------------- /src/test/java/io/mixeway/api/openscap/service/OpenscapRestServiceTest.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.api.openscap.service; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | import org.springframework.stereotype.Service; 6 | 7 | import static org.junit.jupiter.api.Assertions.*; 8 | 9 | /** 10 | * @author gsiewruk 11 | */ 12 | @SpringBootTest 13 | class OpenscapRestServiceTest { 14 | 15 | @Test 16 | void processReport() { 17 | 18 | //todo need file to execute it 19 | } 20 | } -------------------------------------------------------------------------------- /src/test/java/io/mixeway/domain/service/infrascan/FindInfraScanServiceTest.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.infrascan; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | import static org.junit.jupiter.api.Assertions.*; 6 | 7 | /** 8 | * @author gsiewruk 9 | */ 10 | class FindInfraScanServiceTest { 11 | 12 | @Test 13 | void findByProjectAndRunning() { 14 | } 15 | } -------------------------------------------------------------------------------- /src/test/java/io/mixeway/domain/service/webappscanstrategy/FindWebAppScanStrategyServiceTest.java: -------------------------------------------------------------------------------- 1 | package io.mixeway.domain.service.webappscanstrategy; 2 | 3 | import io.mixeway.db.entity.WebAppScanStrategy; 4 | import lombok.RequiredArgsConstructor; 5 | import org.junit.jupiter.api.Test; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.boot.test.context.SpringBootTest; 8 | 9 | import static org.junit.jupiter.api.Assertions.*; 10 | 11 | /** 12 | * @author gsiewruk 13 | */ 14 | @SpringBootTest 15 | @RequiredArgsConstructor(onConstructor = @__(@Autowired)) 16 | class FindWebAppScanStrategyServiceTest { 17 | private final FindWebAppScanStrategyService findWebAppScanStrategyService; 18 | 19 | @Test 20 | void findWebAppScanStrategy() { 21 | WebAppScanStrategy webAppScanStrategy = findWebAppScanStrategyService.findWebAppScanStrategy(); 22 | assertNotNull(webAppScanStrategy); 23 | } 24 | } -------------------------------------------------------------------------------- /src/test/resources/docker.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mixeway/MixewayBackend/89118796cae4cb48658daa9bc2ed4b779046500c/src/test/resources/docker.p12 -------------------------------------------------------------------------------- /src/test/resources/trust.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mixeway/MixewayBackend/89118796cae4cb48658daa9bc2ed4b779046500c/src/test/resources/trust.jks --------------------------------------------------------------------------------