├── .github ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md ├── SECURITY.md ├── SUPPORT.md └── workflows │ └── release.yml ├── .gitignore ├── CHANGELOG.md ├── COPYRIGHT.md ├── LICENSE ├── README.md ├── doc └── QuickStartGuide.md ├── docker ├── Dockerfile └── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src └── main ├── java └── net │ └── sberg │ └── openkim │ ├── AppConfig.java │ ├── JasperReportConfig.java │ ├── MainWebAppInitializer.java │ ├── OpenkimApplication.java │ ├── WebMvcConfig.java │ ├── WebSecurityConfig.java │ ├── common │ ├── AbstractWebController.java │ ├── CommonBuilderFactory.java │ ├── EnumAuthRole.java │ ├── EnumMailAuthMethod.java │ ├── EnumMailConnectionSecurity.java │ ├── FileUtils.java │ ├── GlobalController.java │ ├── ICommonConstants.java │ ├── StringUtils.java │ ├── metrics │ │ ├── DefaultMetric.java │ │ ├── DefaultMetricFactory.java │ │ └── DefaultTimeMetric.java │ └── x509 │ │ ├── CMSUtils.java │ │ ├── EnumX509ErrorCode.java │ │ ├── IssuerAndSerial.java │ │ ├── TelematikIdResult.java │ │ ├── X509CertificateResult.java │ │ └── X509CertificateUtils.java │ ├── dashboard │ ├── DashboardController.java │ ├── DashboardService.java │ ├── KonnektorMonitoringCardResult.java │ ├── KonnektorMonitoringFachdienstResult.java │ ├── KonnektorMonitoringResult.java │ └── KonnektorMonitoringWebserviceResult.java │ ├── fachdienst │ ├── EnumFachdienst.java │ ├── EnumFachdienstDomainDescrId.java │ ├── Fachdienst.java │ ├── FachdienstDescr.java │ ├── FachdienstDomainDescr.java │ ├── FachdienstService.java │ └── README.md │ ├── gateway │ ├── GatewayBasicChannelInboundHandler.java │ ├── GatewayKeystoreController.java │ ├── GatewayKeystoreData.java │ ├── GatewayKeystoreService.java │ ├── GatewayNettyServer.java │ ├── pop3 │ │ ├── EnumPop3GatewayState.java │ │ ├── Pop3Gateway.java │ │ ├── Pop3GatewayConfiguration.java │ │ ├── Pop3GatewayProtocol.java │ │ ├── Pop3GatewayProtocolHandlerChain.java │ │ ├── Pop3GatewaySession.java │ │ ├── README.md │ │ ├── cmdhandler │ │ │ ├── Pop3GatewayAuthCmdHandler.java │ │ │ ├── Pop3GatewayCapaCmdHandler.java │ │ │ ├── Pop3GatewayDeleCmdHandler.java │ │ │ ├── Pop3GatewayListCmdHandler.java │ │ │ ├── Pop3GatewayNoopCmdHandler.java │ │ │ ├── Pop3GatewayPassCmdHandler.java │ │ │ ├── Pop3GatewayQuitCmdHandler.java │ │ │ ├── Pop3GatewayRetrCmdHandler.java │ │ │ ├── Pop3GatewayRsetCmdHandler.java │ │ │ ├── Pop3GatewayStatCmdHandler.java │ │ │ ├── Pop3GatewayStlsCmdHandler.java │ │ │ ├── Pop3GatewayTopCmdHandler.java │ │ │ ├── Pop3GatewayUidlCmdHandler.java │ │ │ ├── Pop3GatewayUnknownCmdHandler.java │ │ │ ├── Pop3GatewayUserCmdHandler.java │ │ │ └── Pop3GatewayWelcomeMessageHandler.java │ │ └── signreport │ │ │ ├── SignReportService.java │ │ │ ├── VerifyCertResult.java │ │ │ ├── VerifyOCSPResult.java │ │ │ └── VerifyResult.java │ └── smtp │ │ ├── AbstractGatewayHookableCmdHandler.java │ │ ├── EnumSmtpGatewayState.java │ │ ├── README.md │ │ ├── SmtpGateway.java │ │ ├── SmtpGatewayConfiguration.java │ │ ├── SmtpGatewayProtocol.java │ │ ├── SmtpGatewayProtocolHandlerChain.java │ │ ├── SmtpGatewaySession.java │ │ ├── cmdhandler │ │ ├── SmtpGatewayAuthCmdHandler.java │ │ ├── SmtpGatewayDataCmdHandler.java │ │ ├── SmtpGatewayEhloCmdHandler.java │ │ ├── SmtpGatewayHeloCmdHandler.java │ │ ├── SmtpGatewayMailCmdHandler.java │ │ ├── SmtpGatewayNoopCmdHandler.java │ │ ├── SmtpGatewayQuitCmdHandler.java │ │ ├── SmtpGatewayRcptCmdHandler.java │ │ ├── SmtpGatewayRsetCmdHandler.java │ │ ├── SmtpGatewayStartTlsCmdHandler.java │ │ ├── SmtpGatewayUnknownCmdHandler.java │ │ └── SmtpGatewayWelcomeMessageHandler.java │ │ └── hook │ │ ├── SmtpGatewayMailHook.java │ │ └── SmtpGatewayQuitHook.java │ ├── konfiguration │ ├── EnumGatewayTIMode.java │ ├── EnumTIEnvironment.java │ ├── Konfiguration.java │ ├── KonfigurationController.java │ ├── KonfigurationService.java │ ├── README.md │ ├── ServerState.java │ ├── ServerStateService.java │ └── minimal │ │ ├── MinimalKonfiguration.java │ │ └── MinimalKonfigurationController.java │ ├── konnektor │ ├── CMSAttribute.java │ ├── EnumKonnektorAuthMethod.java │ ├── EnumKonnektorServiceBeanType.java │ ├── Konnektor.java │ ├── KonnektorCard.java │ ├── KonnektorController.java │ ├── KonnektorDnsController.java │ ├── KonnektorNtpController.java │ ├── KonnektorService.java │ ├── KonnektorServiceBean.java │ ├── KonnektorVzdController.java │ ├── KonnektorWebserviceController.java │ ├── KonnektorWebserviceInterceptor.java │ ├── KonnektorWebserviceUtils.java │ ├── README.md │ └── WebserviceConnector.java │ ├── log │ ├── DefaultLogger.java │ ├── DefaultLoggerContext.java │ ├── EnumLogTyp.java │ ├── Log.java │ ├── LogController.java │ ├── LogService.java │ └── error │ │ ├── EnumErrorCode.java │ │ ├── IErrorContext.java │ │ ├── MailDecryptErrorContext.java │ │ ├── MailEncryptFormatErrorContext.java │ │ ├── MailSignEncryptErrorContext.java │ │ ├── MailSignVerifyErrorContext.java │ │ ├── MailaddressCertErrorContext.java │ │ ├── MailaddressKimVersionErrorContext.java │ │ └── MailaddressRcptToErrorContext.java │ ├── pipeline │ ├── PipelineOperation.java │ ├── PipelineService.java │ └── operation │ │ ├── DefaultPipelineOperationContext.java │ │ ├── IPipelineOperation.java │ │ ├── IPipelineOperationContext.java │ │ ├── PipelineOperationLabel.java │ │ ├── konnektor │ │ ├── GetSignCardHandleOperation.java │ │ ├── KonnektorConnectionInformationOperation.java │ │ ├── KonnektorLoadAllCardInformationOperation.java │ │ ├── dns │ │ │ ├── DnsFqdnRequestOperation.java │ │ │ ├── DnsRequestOperation.java │ │ │ ├── DnsResult.java │ │ │ ├── DnsResultContainer.java │ │ │ └── DnsUtils.java │ │ ├── ntp │ │ │ ├── NtpRequestOperation.java │ │ │ └── NtpResult.java │ │ ├── vzd │ │ │ ├── EnumKomLeVersion.java │ │ │ ├── EnumVzdErrorCode.java │ │ │ ├── LoadVzdCertsOperation.java │ │ │ ├── SearchVzdOperation.java │ │ │ ├── VzdMailResult.java │ │ │ ├── VzdResult.java │ │ │ └── VzdUtils.java │ │ └── webservice │ │ │ ├── DecryptDocumentOperation.java │ │ │ ├── EncryptDocumentOperation.java │ │ │ ├── GetCardTerminalsOperation.java │ │ │ ├── GetCardsOperation.java │ │ │ ├── GetJobNumberOperation.java │ │ │ ├── GetPinStatusOperation.java │ │ │ ├── GetResourceInformationOperation.java │ │ │ ├── ReadCardCertificateOperation.java │ │ │ ├── RequestCardOperation.java │ │ │ ├── VerifyCertificateOperation.java │ │ │ ├── VerifyPinOperation.java │ │ │ └── VerifySignedDocumentOperation.java │ │ ├── mail │ │ ├── CheckEncryptedMailFormatOperation.java │ │ ├── CheckSendingMailOperation.java │ │ ├── ComposeEncryptedMailOperation.java │ │ ├── CreateDsnOperation.java │ │ ├── CreateEmbeddedMessageRfc822Operation.java │ │ ├── DecryptVerifyMailOperation.java │ │ ├── DsnHelper.java │ │ ├── EncryptMailOperation.java │ │ ├── GetDecryptCardHandleOperation.java │ │ ├── MailUtils.java │ │ ├── SendDsnOperation.java │ │ ├── SignEncryptMailOperation.java │ │ ├── SignMailOperation.java │ │ ├── kas │ │ │ ├── AesGcmHelper.java │ │ │ ├── EnumKasServiceErrorCode.java │ │ │ ├── KasIncomingMailOperation.java │ │ │ ├── KasMetaObj.java │ │ │ ├── KasMetaObjError.java │ │ │ ├── KasOutgoingMailOperation.java │ │ │ ├── KasServiceException.java │ │ │ └── README.md │ │ └── part │ │ │ ├── AddMailAttachmentOperation.java │ │ │ ├── AddMailTextOperation.java │ │ │ ├── AnalyzeMailPartsOperation.java │ │ │ ├── EnumMailPartContentType.java │ │ │ ├── EnumMailPartDispositionType.java │ │ │ └── MailPartContent.java │ │ └── test │ │ ├── DecryptTextTestOperation.java │ │ ├── DecryptVerifyMailTestOperation.java │ │ ├── EncryptTextTestOperation.java │ │ ├── PipelineOperationTestController.java │ │ ├── ReadMailTestOperation.java │ │ ├── SendMailTestOperation.java │ │ └── SignEncryptMailTestOperation.java │ └── user │ ├── UserChangePwd.java │ ├── UserController.java │ └── UserService.java └── resources ├── api ├── AccountLimit.yaml ├── AccountManager.yaml └── AttachmentService.yaml ├── application.yml ├── fachdienst_descriptors.json ├── fonts ├── Arial │ ├── arial.ttf │ ├── arialbd.ttf │ ├── arialbi.ttf │ └── ariali.ttf └── arial.xml ├── jasperreports_extension.properties ├── logback-spring.xml ├── reports └── signaturpruefbericht.jrxml ├── static ├── css │ ├── animate.min.css │ ├── dashboard-old.css │ ├── dashboard.css │ ├── font.css │ ├── fontawesome.min.css │ ├── login.css │ ├── regular.min.css │ └── solid.min.css ├── favicon.ico ├── fonts │ ├── fa-brands-400.eot │ ├── fa-brands-400.svg │ ├── fa-brands-400.ttf │ ├── fa-brands-400.woff │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.eot │ ├── fa-regular-400.svg │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff │ ├── fa-regular-400.woff2 │ ├── fa-solid-900.eot │ ├── fa-solid-900.svg │ ├── fa-solid-900.ttf │ ├── fa-solid-900.woff │ ├── fa-solid-900.woff2 │ ├── open-sans-v26-latin-300.eot │ ├── open-sans-v26-latin-300.svg │ ├── open-sans-v26-latin-300.ttf │ ├── open-sans-v26-latin-300.woff │ ├── open-sans-v26-latin-300.woff2 │ ├── open-sans-v26-latin-300italic.eot │ ├── open-sans-v26-latin-300italic.svg │ ├── open-sans-v26-latin-300italic.ttf │ ├── open-sans-v26-latin-300italic.woff │ ├── open-sans-v26-latin-300italic.woff2 │ ├── open-sans-v26-latin-500.eot │ ├── open-sans-v26-latin-500.svg │ ├── open-sans-v26-latin-500.ttf │ ├── open-sans-v26-latin-500.woff │ ├── open-sans-v26-latin-500.woff2 │ ├── open-sans-v26-latin-500italic.eot │ ├── open-sans-v26-latin-500italic.svg │ ├── open-sans-v26-latin-500italic.ttf │ ├── open-sans-v26-latin-500italic.woff │ ├── open-sans-v26-latin-500italic.woff2 │ ├── open-sans-v26-latin-600.eot │ ├── open-sans-v26-latin-600.svg │ ├── open-sans-v26-latin-600.ttf │ ├── open-sans-v26-latin-600.woff │ ├── open-sans-v26-latin-600.woff2 │ ├── open-sans-v26-latin-600italic.eot │ ├── open-sans-v26-latin-600italic.svg │ ├── open-sans-v26-latin-600italic.ttf │ ├── open-sans-v26-latin-600italic.woff │ ├── open-sans-v26-latin-600italic.woff2 │ ├── open-sans-v26-latin-700.eot │ ├── open-sans-v26-latin-700.svg │ ├── open-sans-v26-latin-700.ttf │ ├── open-sans-v26-latin-700.woff │ ├── open-sans-v26-latin-700.woff2 │ ├── open-sans-v26-latin-700italic.eot │ ├── open-sans-v26-latin-700italic.svg │ ├── open-sans-v26-latin-700italic.ttf │ ├── open-sans-v26-latin-700italic.woff │ ├── open-sans-v26-latin-700italic.woff2 │ ├── open-sans-v26-latin-800.eot │ ├── open-sans-v26-latin-800.svg │ ├── open-sans-v26-latin-800.ttf │ ├── open-sans-v26-latin-800.woff │ ├── open-sans-v26-latin-800.woff2 │ ├── open-sans-v26-latin-800italic.eot │ ├── open-sans-v26-latin-800italic.svg │ ├── open-sans-v26-latin-800italic.ttf │ ├── open-sans-v26-latin-800italic.woff │ ├── open-sans-v26-latin-800italic.woff2 │ ├── open-sans-v26-latin-italic.eot │ ├── open-sans-v26-latin-italic.svg │ ├── open-sans-v26-latin-italic.ttf │ ├── open-sans-v26-latin-italic.woff │ ├── open-sans-v26-latin-italic.woff2 │ ├── open-sans-v26-latin-regular.eot │ ├── open-sans-v26-latin-regular.svg │ ├── open-sans-v26-latin-regular.ttf │ ├── open-sans-v26-latin-regular.woff │ └── open-sans-v26-latin-regular.woff2 ├── img │ ├── bg.jpg │ ├── favicon.ico │ ├── logo.png │ └── mail.svg └── js │ ├── login.js │ └── script.js ├── templates ├── dashboard │ ├── dashboard.html │ └── dashboardUebersicht.html ├── fragments │ ├── general-head.html │ ├── menue.html │ └── navbar.html ├── konfiguration │ ├── konfigFormular.html │ ├── konfigServerStatus.html │ ├── konfigUebersicht.html │ ├── konfiguration.html │ └── notselfsignedFormular.html ├── konndns │ └── dnsEintragUebersicht.html ├── konnektor │ └── konnektorFormular.html ├── konnntp │ └── ntpUebersicht.html ├── konnvzd │ └── vzdEintragUebersicht.html ├── konnwebservice │ ├── cardTerminalUebersicht.html │ ├── cardUebersicht.html │ ├── certificateUebersicht.html │ ├── encryptionUebersicht.html │ ├── eventUebersicht.html │ └── verifyPinUebersicht.html ├── log │ ├── logDetails.html │ ├── logUebersicht.html │ ├── pop3log.html │ └── smtplog.html ├── login.html ├── minimalkonfiguration │ ├── minimalKonfigFormular.html │ └── minimalKonfiguration.html ├── pipelineoperationtest │ ├── OpenKIM_DecryptTextTest_Formular.html │ ├── OpenKIM_DecryptVerifyMailTest_Formular.html │ ├── OpenKIM_EncryptTextTest_Formular.html │ ├── OpenKIM_GetJobNumber_Formular.html │ ├── OpenKIM_ReadMailTest_Formular.html │ ├── OpenKIM_SendMailTest_Formular.html │ ├── OpenKIM_SignEncryptMailTest_Formular.html │ ├── pipelineoperationtest.html │ └── pipelineoperationtestFormular.html └── user │ └── userSettings.html └── test_sds_descr └── connector_sds.xml /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @sberg-net 2 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | **Thank you for taking the time to contribute to the development of OpenKIM!** 2 | 3 | Please follow these rules when making contributions to this repository. 4 | 5 | # Source code 6 | 7 | ## Unwanted contributions 8 | 9 | 1. Changes to configurations without justifiable reason 10 | 2. New interactions that are confusing to use for end users 11 | 3. Breaking changes to already existing code, unless strictly necessary 12 | 4. Unnecessarily large restructurings of code 13 | 14 | ## Code rules 15 | 16 | ### Verified as working 17 | 18 | All code contributed to this repository should be verified as working, meaning you've tested the functionality at least once and didn't encounter unexpected behaviour. 19 | Please keep in mind that we might ask you to confirm if this is the case. 20 | 21 | ### Codestyle 22 | 23 | TODO 24 | 25 | ## Code practices 26 | 27 | ### Database operations 28 | 29 | TODO 30 | 31 | [...] 32 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | labels: bug 5 | 6 | --- 7 | 8 | **Describe the bug** 9 | A clear and concise description of what the bug is. 10 | 11 | **To Reproduce** 12 | Steps to reproduce the behavior: 13 | 1. Go to '...' 14 | 2. Click on '....' 15 | 3. Scroll down to '....' 16 | 4. See error 17 | 18 | **Expected behavior** 19 | A clear and concise description of what you expected to happen. 20 | 21 | **Screenshots** 22 | If applicable, add screenshots to help explain your problem. 23 | 24 | **Additional context** 25 | Add any other context about the problem here. 26 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: true 2 | contact_links: 3 | - name: Homepage 4 | url: mailto:software@sberg.net 5 | about: Want more direct support? Contact us 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | labels: feature request 5 | 6 | --- 7 | 8 | **What's your feature request about?** 9 | > A short one-to-two-sentence description of your feature request 10 | 11 | **Is your feature request related to a problem you're having? Please describe.** 12 | > A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 13 | 14 | **Describe the solution you'd like** 15 | > A clear and concise description of what you want to happen. 16 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Please check the following boxes 2 | > All boxes are required 3 | 4 | - [ ] I agree to the [Contribution Guidelines](https://github.com/sberg-net/openkim/blob/master/.github/CONTRIBUTING.md) and to the [Code of Conduct](https://github.com/sberg-net/openkim/blob/master/.github/CODE_OF_CONDUCT.md) 5 | - [ ] I tested my code and I verified it's working to the best of my ability 6 | 7 | # Describe your pull request 8 | 9 | > A short one-to-two sentence description of your pull request 10 | 11 | **Why is this change needed?** 12 | 13 | > Please explain why the changes you're proposing are beneficial or required 14 | 15 | **Does your pull request solve an open issue? If yes, please mention what one** 16 | 17 | > See https://help.github.com/en/articles/closing-issues-using-keywords 18 | -------------------------------------------------------------------------------- /.github/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | We take security seriously, and we strive to keep our software as secure as possible. 4 | That being said, nothing is ever 100% secure, if you've found a potential security issue we'd love to know about it. 5 | 6 | ### Reporting security issues 7 | 8 | If you've found a security issue and wish to discuss it with the team directly, please email us at `software@sberg.net`. 9 | We'll determine a course of action from that point onward, and we'll strive to keep you updated. 10 | 11 | If you feel like the issue is too minor for email, feel free to open an issue instead. 12 | 13 | ### Supported versions 14 | 15 | Currently we're interested in issues for the current major release, code in the `main` branch, or code in any active development branch. 16 | -------------------------------------------------------------------------------- /.github/SUPPORT.md: -------------------------------------------------------------------------------- 1 | # Support 2 | 3 | This article explains where to get help with remark. 4 | Please read through the following guidelines. 5 | 6 | > 👉 **Note**: before participating in our community, please read our 7 | > [code of conduct][COC]. 8 | > By interacting with this repository, organization, or community you agree to 9 | > abide by its terms. 10 | 11 | ### Check the quickstart guide 12 | 13 | See [`QuickStartGuide.md`][QUICKSTART]. 14 | 15 | ### Try the documentation 16 | 17 | Todo 18 | 19 | ## Contributions 20 | 21 | See [`CONTRIBUTING.md`][CONTRIBUTING] on how to contribute. 22 | 23 | 24 | 25 | [COC]: https://github.com/sberg-net/openkim/blob/main/.github/CODE_OF_CONDUCT.md 26 | [CONTRIBUTING]: CONTRIBUTING.md 27 | [QUICKSTART]: https://github.com/sberg-net/openkim/blob/main/doc/QuickStartGuide.md 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | .idea/** 19 | *.iws 20 | *.iml 21 | *.ipr 22 | 23 | ### NetBeans ### 24 | /nbproject/private/ 25 | /nbbuild/ 26 | /dist/ 27 | /nbdist/ 28 | /.nb-gradle/ 29 | build/ 30 | !**/src/main/**/build/ 31 | !**/src/test/**/build/ 32 | 33 | data_old 34 | data_old/** 35 | data 36 | data/** 37 | api/api-telematik 38 | api/api-telematik/** 39 | api-telematik 40 | api-telematik/** 41 | /internals 42 | internalDocs 43 | internalDocs/** 44 | logs 45 | logs/** -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 | 8 | ## [Unreleased] 9 | 10 | ### Added 11 | 12 | ### Changed 13 | 14 | ### Fixed 15 | 16 | ## [0.19.2] 17 | 18 | ### Fixed 19 | - Startseite kann nicht aufgerufen werden (thymeleaf template exeception, Änderungen in Version 3.1) 20 | 21 | ## [0.19.1] 22 | 23 | ### Security 24 | - Vulnerabilities updates 25 | - spring-boot-parent 26 | - webjars-locator 27 | - snakeyaml 28 | 29 | ## [0.19.0] 30 | 31 | ### Added 32 | 33 | - arm64 docker image to dockerHub 34 | 35 | ### Changed 36 | 37 | - refactor release action 38 | 39 | ## [0.18.1] 40 | 41 | ### Fixed 42 | 43 | - integration des BouncyCastleJsseProvider und bouncy castle versionen 1.75 44 | 45 | 46 | ## [0.17.0] 47 | 48 | ### Added 49 | 50 | - Fehlerbehebungen 51 | - 6 Pipeline-Operationen, die der Nutzer über die OpenKIM-Oberfläche testen kann 52 | - Verschlüsseln eines beliebigen Textes mit einem Konnektor der Wahl, 53 | der aber in OpenKIM konfiguriert sein muss 54 | - Entschlüsseln eines Textes 55 | - Senden einer Mail über das OpenKIM-SMTP-Gateway 56 | - Empfangen einer Mail über das OpenKIM-POP3-Gateway 57 | - Signieren und Verschlüsseln einer Mail (ohne Versand) und Ausgabe der Mail 58 | - Entschlüsseln und Signaturüberprüfung einer verschlüsselten Mail, die der Nutzer komplett angeben muss 59 | 60 | ## [0.16.0] 61 | 62 | ### Added 63 | 64 | - Integration von KAS 65 | - Fehlerbehebungen 66 | 67 | ## [0.15.0] 68 | 69 | ### Added 70 | 71 | - Integrieren von Testmöglichkeiten für alle gewünschten Pipeline-Operationen 72 | - Aufruf der Tests von Weboberfläche 73 | 74 | ## [0.14.1] 75 | 76 | ### Fixed 77 | 78 | - Pipeline-Operationen 79 | 80 | 81 | ## [0.14.0] 82 | 83 | ### Added 84 | 85 | - OpenKIM im Modus keine TI getestet 86 | - SMTP/POP3 - Protokoll des Gateways getestet 87 | 88 | 89 | ## [0.13.1] 90 | 91 | ### Fixed 92 | 93 | - Pipeline-Struktur 94 | 95 | 96 | ## [0.13.0] 97 | 98 | ### Added 99 | 100 | - Hinzufügen einer Pipeline-Struktur für die Operationen (z.b. Signieren einer Mail) 101 | - bessere Test- und Erweiterbarkeit 102 | - besseres Handling der Komplexität 103 | - Testen von drei Szenarien 104 | - Testen komplet ohne TI mit "handelsüblichen" Mailservern -> Checken, ob der POP3/SMTP-Stack funktioniert 105 | - Testen ohne Fachdienst-Servern, mit Konnektor und mit "handelsüblichen" Mailservern -> Checken, ob die Konnektor-Kommunikation funktioniert 106 | - Testen "Fullstack" -> mit Fachdienst-Servern und Konnektor 107 | - Weitere Umbauarbeiten 108 | 109 | ## [0.12.0] 110 | 111 | ### Added 112 | 113 | - Hinzufügen einer Pipeline-Struktur für die Operationen (z.b. Signieren einer Mail) 114 | - bessere Test- und Erweiterbarkeit 115 | 116 | 117 | ## [0.9.0] 118 | 119 | ### Added 120 | 121 | - Erstellen des Git-Repositorys 122 | - Github Actions 123 | - Dockerfile inklusive build und push zu [Dockerhub] 124 | -------------------------------------------------------------------------------- /COPYRIGHT.md: -------------------------------------------------------------------------------- 1 | Copyright and license policy 2 | ============================ 3 | 4 | Copyright (C) 2022-present sberg it-systeme GmbH 5 | 6 | This program is free software: you can redistribute it and/or modify it under the terms of the license. 7 | 8 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more details. 9 | 10 | License 11 | ------- 12 | All released source code should by default be licensed under EUROPEAN UNION PUBLIC LICENCE v. 1.2. 13 | Exceptions may be made to this policy on a case-by-case basis. 14 | 15 | For full license conditions, including applicable addendums specific to this program, see the LICENSE.md file, which you should have received along with this notice. If not, check [here][0]. 16 | 17 | [0]: https://github.com/sberg-net/openkim/blob/main/LICENSE 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OpenKIM 2 | 3 | [![Release](https://github.com/sberg-net/openkim/actions/workflows/release.yml/badge.svg)](https://github.com/sberg-net/openkim/actions/workflows/release.yml) 4 | 5 | Implementieren eines KIM-Client-Moduls laut Spezifikation: 6 | https://fachportal.gematik.de/fachportal-import/files/gemSpec_CM_KOMLE_V1.16.0.pdf 7 | 8 | > Die Zulassung der Gematik ist noch nicht erfolgt!! OpenKIM darf deshalb nicht als KIM-Clientmodul betrieben werden. 9 | 10 | ## Docker Images 11 | Docker Images stehen auf [Docker Hub](https://hub.docker.com/r/sbergit/openkim) zur Verfühgung. 12 | 13 | ## aktuelle Einsatzgebiete von OpenKIM 14 | Viele setzen OpenKIM als Monitoring-Werkzeug ein, um z.b. zu checken, 15 | ob der TI-Konnektor mit der TI verbunden ist. Weitere Monitoring- und Diagnosemöglichkeiten sind 16 | implementiert (Kartenhandling etc.) 17 | 18 | 19 | ## OpenKIM starten 20 | 21 | > ### [OpenKIM QuickStart Guide](doc/QuickStartGuide.md) 22 | 23 | # Wöchentliche Community Runde 24 | 25 | Jeden Freitag um 14 Uhr bieten wir ein Zoom-Meeting an: https://us06web.zoom.us/j/82998471898?pwd=WlVwN3Z1NXBaNTFxSGdHMW96aThvUT09 26 | -------------------------------------------------------------------------------- /doc/QuickStartGuide.md: -------------------------------------------------------------------------------- 1 | # QuickStart Guide 2 | Kurze Beschreibung zum Start von OpenKIM auf Basis der SpringBoot JAR. 3 | 4 | ## Veraussetzungen 5 | * OS: Windows, Linux, Mac 6 | * JavaVM: ab Version 11 (z.B. openjdk 14.0.2) 7 | * Console / Terminal 8 | 9 | ## Download 10 | * Ordner `openkim` anlegen (Ort deiner Wahl) 11 | * neueste Version der JAR [vom OpenKIM Projekt herunterladen][1] z.B. [OpenKIM-0.9.0][2] 12 | * Die Datei `openkim-$VERSION.jar` in den Ordner `openkim` kopieren 13 | 14 | ## OpenKIM starten 15 | * Console / Terminal öffnen 16 | * in Ordner `openkim` wechseln 17 | * folgendes Commando absetzen (die Console bleibt offen und OpenKIM log in die Console): 18 | ```shell 19 | java -jar openkim-*.jar 20 | 21 | . ____ _ __ _ _ 22 | /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ 23 | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 24 | \\/ ___)| |_)| | | | | || (_| | ) ) ) ) 25 | ' |____| .__|_| |_|_| |_\__, | / / / / 26 | =========|_|==============|___/=/_/_/_/ 27 | :: Spring Boot :: (v2.6.3) 28 | ``` 29 | 30 | ## OpenKIM öffnen und anmelden 31 | * Browser öffnen und folgende URL eingeben: http://localhost:8080 32 | * auf der Startseite oben Rechts auf `Anmelden` klicken 33 | * User: admin Password: admin 34 | * Seite "Minimale Konfiguration" öffnet sich 35 | 36 | [1]: https://github.com/sberg-net/openkim/releases 37 | [2]: https://github.com/sberg-net/openkim/releases/tag/OpenKIM-0.9.0 38 | -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM amazoncorretto:17-alpine3.16-jdk 2 | 3 | ENV APP-PROFILES="default" 4 | ENV LOG-LEVEL="INFO" 5 | ENV HTTP-PORT="8080" 6 | ENV VZD-LDAP-BASE="dc=data,dc=vzd" 7 | 8 | RUN mkdir /opt/openkim 9 | COPY target/openkim-*.jar /opt/openkim/app.jar 10 | 11 | ENV TZ=Europe/Berlin 12 | RUN apk add --no-cache tzdata bash 13 | 14 | ENTRYPOINT ["java", \ 15 | "-Dspring.profiles.active=${APP-PROFILES}", \ 16 | "-Dlogging.level.root=${LOG-LEVEL}",\ 17 | "-Dserver.port=${HTTP-PORT}",\ 18 | "-Dspring.ldap.base=${VZD-LDAP-BASE}",\ 19 | "-jar","/opt/openkim/app.jar"] 20 | -------------------------------------------------------------------------------- /docker/README.md: -------------------------------------------------------------------------------- 1 | # OpenKIM Docker Image 2 | 3 | openKIM kann voll funktionsfähig in einer Docker oder Kubernetes Umgebung verwendet werden.
4 | Dazu stellen wir openKIM Docker Images auf Basis der openKIM Releases zu Verfügung. 5 | 6 | ## Start openKIM docker 7 | 8 | ``` 9 | docker run --name openKIM -p 8080:8080 sbergit/openkim:latest 10 | ``` 11 | 12 | ### Container Volumes 13 | 14 | | Container Verzeichnis | Inhalt | 15 | |-----------------------|-----------------------------------------------------------| 16 | | /data | persistante und flüchtige Daten
z.B.
  • Anmeldedaten | 17 | | /logs | openKIM logfiles | 18 | 19 | ## Docker Compose Beispiel 20 | 21 | ```yaml 22 | version: '3.1' 23 | services: 24 | openkim: 25 | image: sbergit/openkim:latest 26 | container_name: openKIM 27 | restart: always 28 | environment: 29 | TZ: Europe/Berlin 30 | volumes: 31 | - ./vol/data:/data 32 | - ./vol/logs:/logs 33 | ports: 34 | - "8080:8080" 35 | ``` 36 | 37 | ## Docker Evironment Parameter 38 | 39 | | Name | Beschreibung | Values | default | 40 | |---------------|-------------------------|------------------------------------|---------------| 41 | | TZ | Timezone des Containers | tzdata zones (z.B. Europe/Berlin) | Europe/Berlin | 42 | | LOG-LEVEL | rool Log-Level | ERROR,INFO,DEBUG | INFO | 43 | | HTTP-PORT | HTTP GUI Server Port | Port Nummer (z.B. 8080) | 8080 | 44 | | VZD-LDAP-BASE | VZD LDAP Base | String | dc=data,dc=vz | 45 | 46 | > Bei nicht gesetzten Parametern werden die default Werte gesetzt! -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/AppConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | 18 | package net.sberg.openkim; 19 | 20 | import jakarta.annotation.PostConstruct; 21 | import org.bouncycastle.jce.provider.BouncyCastleProvider; 22 | import org.bouncycastle.jsse.provider.BouncyCastleJsseProvider; 23 | import org.slf4j.Logger; 24 | import org.slf4j.LoggerFactory; 25 | import org.springframework.boot.web.servlet.FilterRegistrationBean; 26 | import org.springframework.context.annotation.Bean; 27 | import org.springframework.context.annotation.ComponentScan; 28 | import org.springframework.context.annotation.Configuration; 29 | import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; 30 | import org.springframework.web.filter.CharacterEncodingFilter; 31 | import org.springframework.web.servlet.view.json.MappingJackson2JsonView; 32 | 33 | import java.security.Security; 34 | 35 | @Configuration 36 | @ComponentScan({"net.sberg.openkim"}) 37 | public class AppConfig { 38 | 39 | protected static final Logger log = LoggerFactory.getLogger(AppConfig.class); 40 | 41 | @PostConstruct 42 | public void init() throws Exception { 43 | Security.insertProviderAt(new BouncyCastleProvider(), 1); 44 | Security.insertProviderAt(new BouncyCastleJsseProvider(), 1); 45 | } 46 | 47 | @Bean 48 | public static PropertySourcesPlaceholderConfigurer propertyConfig() { 49 | return new PropertySourcesPlaceholderConfigurer(); 50 | } 51 | 52 | @Bean 53 | public FilterRegistrationBean filterRegistrationBean() { 54 | FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); 55 | CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); 56 | characterEncodingFilter.setForceEncoding(true); 57 | characterEncodingFilter.setEncoding("UTF-8"); 58 | registrationBean.setFilter(characterEncodingFilter); 59 | return registrationBean; 60 | } 61 | 62 | @Bean 63 | public MappingJackson2JsonView jsonView() { 64 | return new MappingJackson2JsonView(); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/JasperReportConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim; 18 | 19 | import net.sf.jasperreports.engine.JasperCompileManager; 20 | import net.sf.jasperreports.engine.JasperReport; 21 | import net.sf.jasperreports.engine.design.JasperDesign; 22 | import net.sf.jasperreports.engine.xml.JRXmlLoader; 23 | import org.springframework.beans.factory.annotation.Autowired; 24 | import org.springframework.context.ApplicationContext; 25 | import org.springframework.context.annotation.Bean; 26 | import org.springframework.context.annotation.Configuration; 27 | import org.springframework.core.io.Resource; 28 | 29 | import java.io.InputStream; 30 | 31 | @Configuration 32 | public class JasperReportConfig { 33 | 34 | private static final String JASPER_REPORT_DIR = "classpath:/reports/"; 35 | private static final String REPORT_DATA_KEY = "datasource"; 36 | 37 | @Autowired 38 | private ApplicationContext applicationContext; 39 | 40 | private JasperReport loadReport(String url) throws Exception { 41 | Resource resource = applicationContext.getResource(url); 42 | InputStream is = resource.getInputStream(); 43 | JasperDesign design = JRXmlLoader.load(is); 44 | return JasperCompileManager.compileReport(design); 45 | } 46 | 47 | @Bean(name = "signaturpruefbericht") 48 | public JasperReport signaturpruefbericht() throws Exception { 49 | return loadReport(JASPER_REPORT_DIR + "signaturpruefbericht.jrxml"); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/MainWebAppInitializer.java: -------------------------------------------------------------------------------- 1 | package net.sberg.openkim; 2 | 3 | import jakarta.servlet.MultipartConfigElement; 4 | import jakarta.servlet.ServletContext; 5 | import jakarta.servlet.ServletRegistration; 6 | import org.springframework.web.WebApplicationInitializer; 7 | import org.springframework.web.context.support.GenericWebApplicationContext; 8 | import org.springframework.web.servlet.DispatcherServlet; 9 | 10 | public class MainWebAppInitializer implements WebApplicationInitializer { 11 | 12 | @Override 13 | public void onStartup(ServletContext sc) { 14 | 15 | ServletRegistration.Dynamic appServlet = sc.addServlet("mvc", new DispatcherServlet( 16 | new GenericWebApplicationContext())); 17 | 18 | appServlet.setLoadOnStartup(1); 19 | 20 | String TMP_FOLDER = "/tmp"; 21 | int MAX_UPLOAD_SIZE = 5 * 1024 * 1024; 22 | MultipartConfigElement multipartConfigElement = new MultipartConfigElement(TMP_FOLDER, 23 | MAX_UPLOAD_SIZE, MAX_UPLOAD_SIZE * 2, MAX_UPLOAD_SIZE / 2); 24 | 25 | appServlet.setMultipartConfig(multipartConfigElement); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/OpenkimApplication.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim; 18 | 19 | import org.springframework.boot.SpringApplication; 20 | import org.springframework.boot.autoconfigure.SpringBootApplication; 21 | 22 | @SpringBootApplication 23 | public class OpenkimApplication { 24 | public static void main(String[] args) { 25 | SpringApplication.run(net.sberg.openkim.OpenkimApplication.class, args); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/EnumAuthRole.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common; 18 | 19 | public enum EnumAuthRole { 20 | ROLE_ADMIN("ADMIN"), 21 | ROLE_MONITORING("MONITORING"); 22 | 23 | private final String suffix; 24 | 25 | EnumAuthRole(String suffix) { 26 | this.suffix = suffix; 27 | } 28 | 29 | public String getSuffix() { 30 | return suffix; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/EnumMailAuthMethod.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common; 18 | 19 | public enum EnumMailAuthMethod { 20 | NONE("Keine"), NORMALPWD("Normales Passwort"); 21 | 22 | private final String hrText; 23 | 24 | EnumMailAuthMethod(String hrText) { 25 | this.hrText = hrText; 26 | } 27 | 28 | public String getHrText() { 29 | return hrText; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/EnumMailConnectionSecurity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common; 18 | 19 | public enum EnumMailConnectionSecurity { 20 | NONE("Keine"), STARTTLS("StartTLS"), SSLTLS("SSL/TLS"); 21 | 22 | private final String hrText; 23 | 24 | EnumMailConnectionSecurity(String hrText) { 25 | this.hrText = hrText; 26 | } 27 | 28 | public String getHrText() { 29 | return hrText; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/GlobalController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common; 18 | 19 | import jakarta.servlet.http.HttpServletRequest; 20 | import org.springframework.web.bind.annotation.ControllerAdvice; 21 | import org.springframework.web.bind.annotation.ModelAttribute; 22 | 23 | @ControllerAdvice 24 | public class GlobalController { 25 | @ModelAttribute("requestPath") 26 | String getRequestServletPath(HttpServletRequest request) { 27 | return request.getServletPath(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/ICommonConstants.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common; 18 | 19 | import java.io.File; 20 | 21 | public interface ICommonConstants { 22 | String BASE_DIR = System.getProperty("user.dir") + File.separator + "data" + File.separator; 23 | String CONFIG_FILENAME = BASE_DIR + "config.cfg"; 24 | String POP3_LOG_DIR = BASE_DIR + "pop3" + File.separator; 25 | String POP3_LOG_FILENAME = POP3_LOG_DIR + "{0}.log"; 26 | String SMTP_LOG_DIR = BASE_DIR + "smtp" + File.separator; 27 | String SMTP_LOG_FILENAME = SMTP_LOG_DIR + "{0}.log"; 28 | String KONNEKTOR_DIR = BASE_DIR + "konnektor" + File.separator + "{0}" + File.separator; 29 | String KONNEKTOR_TRUSTORE_JKS = KONNEKTOR_DIR + "truststore.jks"; 30 | String KONNEKTOR_TRUSTORE_JKS_PWD = "changeit"; 31 | String KONNEKTOR_TRUSTORE_JKS_CERT_ALIAS = "servercert"; 32 | String OPENKIM_SERVER_KEYSTORE_FILENAME = "openkimkeystore.jks"; 33 | String OPENKIM_SERVER_KEYSTORE_ALIAS = "openkimkeystorealias_"; 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/metrics/DefaultMetric.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common.metrics; 18 | 19 | import net.sberg.openkim.log.DefaultLogger; 20 | import org.apache.james.metrics.api.Metric; 21 | 22 | import java.text.MessageFormat; 23 | import java.util.concurrent.atomic.AtomicInteger; 24 | 25 | public class DefaultMetric implements Metric { 26 | 27 | private final AtomicInteger value; 28 | private final String metricName; 29 | 30 | private DefaultLogger logger; 31 | 32 | private DefaultMetric(String metricName) { 33 | this.metricName = metricName; 34 | value = new AtomicInteger(); 35 | } 36 | 37 | public DefaultMetric(String metricName, DefaultLogger logger) { 38 | this(metricName); 39 | this.logger = logger; 40 | } 41 | 42 | @Override 43 | public void increment() { 44 | value.incrementAndGet(); 45 | } 46 | 47 | @Override 48 | public void decrement() { 49 | value.decrementAndGet(); 50 | } 51 | 52 | @Override 53 | public void add(int i) { 54 | value.addAndGet(i); 55 | } 56 | 57 | @Override 58 | public void remove(int i) { 59 | value.addAndGet(-1 * i); 60 | } 61 | 62 | @Override 63 | public long getCount() { 64 | long counter = value.longValue(); 65 | if (counter < 0) { 66 | logger.logLine(MessageFormat.format("counter value({0}) of the metric '{0}' should not be a negative number", String.valueOf(value), metricName)); 67 | return 0; 68 | } 69 | 70 | return counter; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/metrics/DefaultMetricFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common.metrics; 18 | 19 | import net.sberg.openkim.log.DefaultLogger; 20 | import org.apache.james.metrics.api.Metric; 21 | import org.apache.james.metrics.api.MetricFactory; 22 | import org.apache.james.metrics.api.TimeMetric; 23 | import org.reactivestreams.Publisher; 24 | import reactor.core.publisher.Flux; 25 | 26 | import static org.apache.james.metrics.api.TimeMetric.ExecutionResult.DEFAULT_100_MS_THRESHOLD; 27 | 28 | public class DefaultMetricFactory implements MetricFactory { 29 | 30 | private DefaultLogger logger; 31 | 32 | @Override 33 | public Metric generate(String name) { 34 | return new DefaultMetric(name, logger); 35 | } 36 | 37 | @Override 38 | public TimeMetric timer(String name) { 39 | 40 | if (logger.getDefaultLoggerContext().isHtmlMode()) { 41 | logger.logLine("metric begin for: " + name + ""); 42 | } else { 43 | logger.logLine("metric begin for: " + name); 44 | } 45 | 46 | logger.handleDepth(1); 47 | return new DefaultTimeMetric(name, logger); 48 | } 49 | 50 | private DefaultMetricFactory() { 51 | } 52 | 53 | public DefaultMetricFactory(DefaultLogger logger) { 54 | this.logger = logger; 55 | } 56 | 57 | @Override 58 | public Publisher decoratePublisherWithTimerMetric(String name, Publisher publisher) { 59 | return Flux.using(() -> timer(name), 60 | any -> publisher, 61 | TimeMetric::stopAndPublish); 62 | } 63 | 64 | @Override 65 | public Publisher decoratePublisherWithTimerMetricLogP99(String name, Publisher publisher) { 66 | return Flux.using(() -> timer(name), 67 | any -> publisher, 68 | timer -> timer.stopAndPublish().logWhenExceedP99(DEFAULT_100_MS_THRESHOLD)); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/metrics/DefaultTimeMetric.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common.metrics; 18 | 19 | import com.google.common.base.Stopwatch; 20 | import net.sberg.openkim.log.DefaultLogger; 21 | import org.apache.james.metrics.api.TimeMetric; 22 | 23 | import java.text.MessageFormat; 24 | import java.time.Duration; 25 | import java.util.concurrent.TimeUnit; 26 | 27 | public class DefaultTimeMetric implements TimeMetric { 28 | static class DefaultExecutionResult implements ExecutionResult { 29 | private final Duration elasped; 30 | 31 | DefaultExecutionResult(Duration elasped) { 32 | this.elasped = elasped; 33 | } 34 | 35 | @Override 36 | public Duration elasped() { 37 | return elasped; 38 | } 39 | 40 | @Override 41 | public ExecutionResult logWhenExceedP99(Duration thresholdInNanoSeconds) { 42 | return this; 43 | } 44 | } 45 | 46 | private final String name; 47 | private final Stopwatch stopwatch; 48 | 49 | private DefaultLogger logger; 50 | 51 | private DefaultTimeMetric(String name) { 52 | this.name = name; 53 | this.stopwatch = Stopwatch.createStarted(); 54 | } 55 | 56 | public DefaultTimeMetric(String name, DefaultLogger logger) { 57 | this(name); 58 | this.logger = logger; 59 | } 60 | 61 | @Override 62 | public String name() { 63 | return name; 64 | } 65 | 66 | @Override 67 | public ExecutionResult stopAndPublish() { 68 | long elapsed = stopwatch.elapsed(TimeUnit.MILLISECONDS); 69 | logger.handleDepth(-1); 70 | 71 | String text = MessageFormat.format("Time spent in {0}: {1} ms.", name, String.valueOf(elapsed)); 72 | 73 | if (logger.getDefaultLoggerContext().isHtmlMode()) { 74 | logger.logLine("" + text + ""); 75 | } else { 76 | logger.logLine(text); 77 | } 78 | 79 | return new DefaultExecutionResult(Duration.ofNanos(elapsed)); 80 | } 81 | 82 | } 83 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/x509/EnumX509ErrorCode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common.x509; 18 | 19 | public enum EnumX509ErrorCode { 20 | OK, 21 | MORE_THAN_ONE_TELEMATIKID, 22 | NOT_FOUND, 23 | OTHER 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/x509/IssuerAndSerial.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common.x509; 18 | 19 | import lombok.Data; 20 | 21 | import java.util.Objects; 22 | 23 | @Data 24 | public class IssuerAndSerial { 25 | private String issuer; 26 | private String serialNumber; 27 | 28 | @Override 29 | public boolean equals(Object o) { 30 | if (this == o) return true; 31 | if (o == null || getClass() != o.getClass()) return false; 32 | IssuerAndSerial that = (IssuerAndSerial) o; 33 | return issuer.equals(that.issuer) && serialNumber.equals(that.serialNumber); 34 | } 35 | 36 | @Override 37 | public int hashCode() { 38 | return Objects.hash(issuer, serialNumber); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/x509/TelematikIdResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common.x509; 18 | 19 | import lombok.Data; 20 | 21 | @Data 22 | public class TelematikIdResult { 23 | private String email; 24 | private String icssn; 25 | private String telematikId; 26 | private EnumX509ErrorCode errorCode = EnumX509ErrorCode.OK; 27 | 28 | public String toErrorText() { 29 | StringBuilder resultBuilder = new StringBuilder(); 30 | if (email != null && !email.trim().isEmpty()) { 31 | resultBuilder.append("Email: ").append(email); 32 | } 33 | if (icssn != null && !icssn.trim().isEmpty()) { 34 | if (resultBuilder.length() > 0) { 35 | resultBuilder.append(", "); 36 | } 37 | resultBuilder.append("Icssn: ").append(icssn); 38 | } 39 | if (telematikId != null && !telematikId.trim().isEmpty()) { 40 | if (resultBuilder.length() > 0) { 41 | resultBuilder.append(", "); 42 | } 43 | resultBuilder.append("TelematikId: ").append(telematikId); 44 | } 45 | return resultBuilder.toString(); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/x509/X509CertificateResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common.x509; 18 | 19 | import lombok.Data; 20 | import net.sberg.openkim.pipeline.operation.konnektor.vzd.VzdResult; 21 | 22 | import java.util.ArrayList; 23 | import java.util.List; 24 | import java.util.Objects; 25 | 26 | @Data 27 | public class X509CertificateResult { 28 | private String mailAddress; 29 | private TelematikIdResult telematikIdResult; 30 | private List vzdResults; 31 | private List certs = new ArrayList<>(); 32 | private List rsaCerts = new ArrayList<>(); 33 | private EnumX509ErrorCode errorCode = EnumX509ErrorCode.OK; 34 | 35 | @Override 36 | public boolean equals(Object o) { 37 | if (this == o) return true; 38 | if (o == null || getClass() != o.getClass()) return false; 39 | X509CertificateResult that = (X509CertificateResult) o; 40 | return Objects.equals(mailAddress, that.mailAddress); 41 | } 42 | 43 | @Override 44 | public int hashCode() { 45 | return Objects.hash(mailAddress); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/common/x509/X509CertificateUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.common.x509; 18 | 19 | import org.bouncycastle.asn1.ASN1ObjectIdentifier; 20 | import org.bouncycastle.asn1.isismtt.x509.AdmissionSyntax; 21 | import org.bouncycastle.asn1.isismtt.x509.Admissions; 22 | import org.bouncycastle.asn1.isismtt.x509.ProfessionInfo; 23 | import org.bouncycastle.asn1.x509.Extension; 24 | import org.bouncycastle.cert.X509CertificateHolder; 25 | import org.slf4j.Logger; 26 | import org.slf4j.LoggerFactory; 27 | 28 | public class X509CertificateUtils { 29 | 30 | private static final Logger log = LoggerFactory.getLogger(X509CertificateUtils.class); 31 | 32 | public static final TelematikIdResult extractTelematikId(byte[] certBytes, TelematikIdResult telematikIdResult) { 33 | try { 34 | if (!telematikIdResult.getErrorCode().equals(EnumX509ErrorCode.OK)) { 35 | return telematikIdResult; 36 | } 37 | X509CertificateHolder certificateHolder = new X509CertificateHolder(certBytes); 38 | Extension extension = certificateHolder.getExtension(new ASN1ObjectIdentifier("1.3.36.8.3.3")); 39 | AdmissionSyntax admissionSyntax = AdmissionSyntax.getInstance(extension.getParsedValue()); 40 | Admissions[] admissions = admissionSyntax.getContentsOfAdmissions(); 41 | for (Admissions ad : admissions) { 42 | ProfessionInfo[] professionInfos = ad.getProfessionInfos(); 43 | for (ProfessionInfo professionInfo : professionInfos) { 44 | String telematikId = professionInfo.getRegistrationNumber(); 45 | if (telematikIdResult.getTelematikId() == null || telematikIdResult.getTelematikId().trim().isEmpty()) { 46 | telematikIdResult.setTelematikId(telematikId); 47 | } else if (!telematikIdResult.getTelematikId().equals(telematikId)) { 48 | telematikIdResult.setErrorCode(EnumX509ErrorCode.MORE_THAN_ONE_TELEMATIKID); 49 | return telematikIdResult; 50 | } 51 | } 52 | } 53 | } catch (Exception e) { 54 | log.error("error on extracting telematik id: " + telematikIdResult.toErrorText(), e); 55 | telematikIdResult.setErrorCode(EnumX509ErrorCode.OTHER); 56 | } 57 | return telematikIdResult; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/dashboard/KonnektorMonitoringCardResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.dashboard; 18 | 19 | import lombok.Data; 20 | 21 | @Data 22 | public class KonnektorMonitoringCardResult { 23 | private String pinStatus; 24 | private String cardTerminal; 25 | private String cardSlot; 26 | private String cardHandle; 27 | private String cardType; 28 | private String pinTyp; 29 | private String iccsn; 30 | private String telematikId; 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/dashboard/KonnektorMonitoringFachdienstResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.dashboard; 18 | 19 | import lombok.Data; 20 | import net.sberg.openkim.fachdienst.EnumFachdienst; 21 | 22 | @Data 23 | public class KonnektorMonitoringFachdienstResult { 24 | private EnumFachdienst typ; 25 | 26 | private String smtpDomain; 27 | private String smtpIpAddress; 28 | 29 | private String pop3Domain; 30 | private String pop3IpAddress; 31 | 32 | private String kasDomain; 33 | private String kasIpAddress; 34 | private String kasPort; 35 | private String kasContextPath; 36 | 37 | private String accmgrDomain; 38 | private String accmgrIpAddress; 39 | private String accmgrPort; 40 | private String accmgrContextPath; 41 | 42 | private boolean errorOnCreating; 43 | private boolean accmgrInitialized; 44 | private boolean kasInitialized; 45 | private boolean timedOut; 46 | 47 | public String getKasApiUrl() { 48 | if (getKasIpAddress() != null) { 49 | return "https://" + getKasIpAddress() + ":" + getKasPort() + getKasContextPath() + "/attachments/v2.2"; 50 | } 51 | return "-"; 52 | } 53 | 54 | public String getAmApiUrl() { 55 | if (getAccmgrIpAddress() != null) { 56 | return "https://" + getAccmgrIpAddress() + ":" + getAccmgrPort() + getAccmgrContextPath(); 57 | } 58 | return "-"; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/dashboard/KonnektorMonitoringResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.dashboard; 18 | 19 | import lombok.Data; 20 | import net.sberg.openkim.konfiguration.EnumTIEnvironment; 21 | 22 | import java.util.ArrayList; 23 | import java.util.Date; 24 | import java.util.List; 25 | 26 | @Data 27 | public class KonnektorMonitoringResult { 28 | 29 | private String ip; 30 | private EnumTIEnvironment tiEnvironment; 31 | private boolean connectedWithTI; 32 | private boolean connectedWithSIS; 33 | private boolean eccEncryptionAvailable; 34 | private Date konnektorTime; 35 | private Date systemTime; 36 | private long diffSystemKonnektorTime; 37 | private boolean vzdAlive; 38 | private boolean tlsPortAlive; 39 | private List fachdienstResults = new ArrayList<>(); 40 | private List webserviceResults = new ArrayList<>(); 41 | private List cardResults = new ArrayList<>(); 42 | 43 | public String getKonnektorHeadline() { 44 | return ip + " - " + tiEnvironment.getHrText(); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/dashboard/KonnektorMonitoringWebserviceResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.dashboard; 18 | 19 | import lombok.Data; 20 | import net.sberg.openkim.konnektor.EnumKonnektorServiceBeanType; 21 | 22 | @Data 23 | public class KonnektorMonitoringWebserviceResult { 24 | private EnumKonnektorServiceBeanType type; 25 | private String endpoint; 26 | private boolean alive; 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/fachdienst/EnumFachdienst.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.fachdienst; 18 | 19 | public enum EnumFachdienst { 20 | ARVATO( 21 | "Arvato", 22 | "mail.arv.kim.telematik", 23 | "arv.kim.telematik" 24 | ), 25 | TSYSTEMS( 26 | "T-Systems", 27 | "lb-mail.tsi.kim.telematik", 28 | "tsi.kim.telematik" 29 | ), 30 | CGM( 31 | "CGM", 32 | "mail.tm.kim.telematik", 33 | "tm.kim.telematik" 34 | ), 35 | IBM( 36 | "IBM", 37 | "mail.ibm.kim.telematik", 38 | "ibm.kim.telematik" 39 | ), 40 | RISE( 41 | "RISE", 42 | "mail.bitmarck.kim.telematik", 43 | "bitmarck.kim.telematik" 44 | ), 45 | AKQUINET( 46 | "Akquinet", 47 | "mail.akquinet.kim.telematik", 48 | "akquinet.kim.telematik" 49 | ); 50 | 51 | private final String name; 52 | private final String domain; 53 | private final String domainSuffix; 54 | 55 | EnumFachdienst( 56 | String name, 57 | String domain, 58 | String domainSuffix 59 | ) { 60 | this.name = name; 61 | 62 | this.domain = domain; 63 | this.domainSuffix = domainSuffix; 64 | } 65 | 66 | public String getName() { 67 | return name; 68 | } 69 | 70 | public String getDomain() { 71 | return domain; 72 | } 73 | 74 | public String getDomainSuffix() { 75 | return domainSuffix; 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/fachdienst/EnumFachdienstDomainDescrId.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.fachdienst; 18 | 19 | public enum EnumFachdienstDomainDescrId { 20 | SMTP, POP3, AM, KAS 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/fachdienst/Fachdienst.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.fachdienst; 18 | 19 | import lombok.Data; 20 | 21 | @Data 22 | public class Fachdienst { 23 | private EnumFachdienst typ; 24 | 25 | private String smtpDomain; 26 | private String smtpIpAddress; 27 | 28 | private String pop3Domain; 29 | private String pop3IpAddress; 30 | 31 | private String kasDomain; 32 | private String kasIpAddress; 33 | private String kasPort; 34 | private String kasContextPath; 35 | 36 | private String accmgrDomain; 37 | private String accmgrIpAddress; 38 | private String accmgrPort; 39 | private String accmgrContextPath; 40 | 41 | private boolean errorOnCreating; 42 | private boolean accmgrInitialized; 43 | private boolean kasInitialized; 44 | private boolean timedOut; 45 | private de.gematik.kim.kas.api.AttachmentsApi attachmentsApi; 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/fachdienst/FachdienstDescr.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.fachdienst; 18 | 19 | import lombok.Data; 20 | import net.sberg.openkim.konfiguration.EnumTIEnvironment; 21 | 22 | import java.util.ArrayList; 23 | import java.util.Iterator; 24 | import java.util.List; 25 | 26 | @Data 27 | public class FachdienstDescr { 28 | private EnumFachdienst id; 29 | private List services; 30 | 31 | public List extractDomainDescr(EnumFachdienstDomainDescrId id, EnumTIEnvironment env) { 32 | List result = new ArrayList<>(); 33 | for (Iterator iterator = services.iterator(); iterator.hasNext(); ) { 34 | FachdienstDomainDescr fachdienstDomainDescr = iterator.next(); 35 | if (fachdienstDomainDescr.getEnv().equals(env) && fachdienstDomainDescr.getId().equals(id)) { 36 | result.add(fachdienstDomainDescr); 37 | } 38 | } 39 | return result; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/fachdienst/FachdienstDomainDescr.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.fachdienst; 18 | 19 | import lombok.Data; 20 | import net.sberg.openkim.konfiguration.EnumTIEnvironment; 21 | 22 | @Data 23 | public class FachdienstDomainDescr { 24 | private EnumFachdienstDomainDescrId id; 25 | private EnumTIEnvironment env; 26 | private String domain; 27 | private String port; 28 | private String contextpath; 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/fachdienst/README.md: -------------------------------------------------------------------------------- 1 | Verwalten von Fachdiensten 2 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/GatewayKeystoreData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway; 18 | 19 | import lombok.Data; 20 | 21 | @Data 22 | public class GatewayKeystoreData { 23 | private String privateKey; 24 | private String certChain; 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/pop3/EnumPop3GatewayState.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.pop3; 18 | 19 | public enum EnumPop3GatewayState { 20 | UNKNOWN, CONNECT, PROXY, PROCESS 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/pop3/Pop3GatewayConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.pop3; 18 | 19 | import net.sberg.openkim.konfiguration.Konfiguration; 20 | import net.sberg.openkim.log.LogService; 21 | import org.apache.james.protocols.pop3.POP3Configuration; 22 | 23 | public class Pop3GatewayConfiguration extends POP3Configuration { 24 | 25 | private final Konfiguration konfiguration; 26 | private final LogService logService; 27 | 28 | public Pop3GatewayConfiguration(Konfiguration konfiguration, LogService logService) { 29 | this.konfiguration = konfiguration; 30 | this.logService = logService; 31 | } 32 | 33 | @Override 34 | public String getGreeting() { 35 | return "KOM-LE Clientmodul POP3"; 36 | } 37 | 38 | public LogService getLogService() { 39 | return logService; 40 | } 41 | 42 | public Konfiguration getKonfiguration() { 43 | return konfiguration; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/pop3/Pop3GatewayProtocol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.pop3; 18 | 19 | import org.apache.james.protocols.api.ProtocolConfiguration; 20 | import org.apache.james.protocols.api.ProtocolSession; 21 | import org.apache.james.protocols.api.ProtocolTransport; 22 | import org.apache.james.protocols.api.handler.ProtocolHandlerChain; 23 | import org.apache.james.protocols.pop3.POP3Protocol; 24 | 25 | public class Pop3GatewayProtocol extends POP3Protocol { 26 | 27 | 28 | public Pop3GatewayProtocol(ProtocolHandlerChain chain, ProtocolConfiguration config) { 29 | super(chain, config); 30 | } 31 | 32 | @Override 33 | public ProtocolSession newSession(ProtocolTransport transport) { 34 | return new Pop3GatewaySession(transport, (Pop3GatewayConfiguration) this.getConfiguration()); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/pop3/Pop3GatewayProtocolHandlerChain.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.pop3; 18 | 19 | import net.sberg.openkim.gateway.pop3.cmdhandler.*; 20 | import net.sberg.openkim.pipeline.PipelineService; 21 | import org.apache.james.protocols.api.handler.*; 22 | import org.apache.james.protocols.pop3.POP3Session; 23 | 24 | import java.util.ArrayList; 25 | import java.util.List; 26 | 27 | public class Pop3GatewayProtocolHandlerChain extends ProtocolHandlerChainImpl { 28 | 29 | public Pop3GatewayProtocolHandlerChain(PipelineService pipelineService) throws WiringException { 30 | addAll(initDefaultHandlers(pipelineService)); 31 | wireExtensibleHandlers(); 32 | } 33 | 34 | protected List initDefaultHandlers(PipelineService pipelineService) { 35 | List handlers = new ArrayList<>(); 36 | 37 | handlers.add(new Pop3GatewayPassCmdHandler(pipelineService)); 38 | handlers.add(new Pop3GatewayCapaCmdHandler()); 39 | handlers.add(new Pop3GatewayAuthCmdHandler(pipelineService)); 40 | handlers.add(new Pop3GatewayUserCmdHandler()); 41 | handlers.add(new Pop3GatewayListCmdHandler()); 42 | handlers.add(new Pop3GatewayUidlCmdHandler()); 43 | handlers.add(new Pop3GatewayRsetCmdHandler()); 44 | handlers.add(new Pop3GatewayDeleCmdHandler()); 45 | handlers.add(new Pop3GatewayNoopCmdHandler()); 46 | handlers.add(new Pop3GatewayRetrCmdHandler(pipelineService)); 47 | handlers.add(new Pop3GatewayTopCmdHandler()); 48 | handlers.add(new Pop3GatewayStatCmdHandler()); 49 | handlers.add(new Pop3GatewayQuitCmdHandler()); 50 | handlers.add(new Pop3GatewayStlsCmdHandler()); 51 | handlers.add(new Pop3GatewayWelcomeMessageHandler()); 52 | handlers.add(new Pop3GatewayUnknownCmdHandler()); 53 | handlers.add(new CommandDispatcher()); 54 | handlers.add(new CommandHandlerResultLogger()); 55 | 56 | return handlers; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/pop3/README.md: -------------------------------------------------------------------------------- 1 | Das POP3-Gateway laut Spezi https://fachportal.gematik.de/fachportal-import/files/gemSpec_CM_KOMLE_V1.13.0.pdf 2 | Kapitel 3.4 3 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/pop3/cmdhandler/Pop3GatewayNoopCmdHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.pop3.cmdhandler; 18 | 19 | import com.google.common.collect.ImmutableSet; 20 | import net.sberg.openkim.common.metrics.DefaultMetricFactory; 21 | import net.sberg.openkim.gateway.pop3.Pop3GatewaySession; 22 | import org.apache.james.protocols.api.Request; 23 | import org.apache.james.protocols.api.Response; 24 | import org.apache.james.protocols.pop3.POP3Response; 25 | import org.apache.james.protocols.pop3.POP3Session; 26 | import org.apache.james.protocols.pop3.core.AbstractPOP3CommandHandler; 27 | 28 | import java.util.Collection; 29 | 30 | public class Pop3GatewayNoopCmdHandler extends AbstractPOP3CommandHandler { 31 | private static final Collection COMMANDS = ImmutableSet.of("NOOP"); 32 | 33 | @Override 34 | public Response onCommand(POP3Session session, Request request) { 35 | DefaultMetricFactory gatewayMetricFactory = new DefaultMetricFactory(((Pop3GatewaySession) session).getLogger()); 36 | return gatewayMetricFactory.decorateSupplierWithTimerMetric("pop3-noop", () -> noop(session)); 37 | } 38 | 39 | private Response noop(POP3Session session) { 40 | if (session.getHandlerState() == POP3Session.TRANSACTION) { 41 | return POP3Response.OK; 42 | } else { 43 | return POP3Response.ERR; 44 | } 45 | } 46 | 47 | @Override 48 | public Collection getImplCommands() { 49 | return COMMANDS; 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/pop3/cmdhandler/Pop3GatewayUnknownCmdHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.pop3.cmdhandler; 18 | 19 | import net.sberg.openkim.gateway.pop3.Pop3GatewaySession; 20 | import org.apache.james.protocols.api.Request; 21 | import org.apache.james.protocols.api.Response; 22 | import org.apache.james.protocols.api.handler.UnknownCommandHandler; 23 | import org.apache.james.protocols.pop3.POP3Response; 24 | import org.apache.james.protocols.pop3.POP3Session; 25 | 26 | public class Pop3GatewayUnknownCmdHandler extends UnknownCommandHandler { 27 | 28 | @Override 29 | public Response onCommand(POP3Session session, Request request) { 30 | ((Pop3GatewaySession) session).log("unknown begins"); 31 | ((Pop3GatewaySession) session).log(request.getCommand()); 32 | ((Pop3GatewaySession) session).log("unknown ends"); 33 | return POP3Response.ERR; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/pop3/cmdhandler/Pop3GatewayWelcomeMessageHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.pop3.cmdhandler; 18 | 19 | import org.apache.james.protocols.api.Response; 20 | import org.apache.james.protocols.pop3.POP3Response; 21 | import org.apache.james.protocols.pop3.POP3Session; 22 | import org.apache.james.protocols.pop3.core.WelcomeMessageHandler; 23 | 24 | public class Pop3GatewayWelcomeMessageHandler extends WelcomeMessageHandler { 25 | @Override 26 | public Response onConnect(POP3Session session) { 27 | return new POP3Response(POP3Response.OK_RESPONSE, session.getConfiguration().getGreeting()); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/pop3/signreport/VerifyOCSPResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.pop3.signreport; 18 | 19 | import lombok.Data; 20 | 21 | import java.security.cert.X509Certificate; 22 | import java.util.ArrayList; 23 | import java.util.List; 24 | 25 | @Data 26 | public class VerifyOCSPResult { 27 | private boolean revoked; 28 | private boolean unknown; 29 | private String revokeTime; 30 | private String produceTime; 31 | private List certs = new ArrayList<>(); 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/smtp/EnumSmtpGatewayState.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.smtp; 18 | 19 | public enum EnumSmtpGatewayState { 20 | UNKNOWN, CONNECT, PROXY, PROCESS 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/smtp/README.md: -------------------------------------------------------------------------------- 1 | Das SMTP-Gateway laut Spezi https://fachportal.gematik.de/fachportal-import/files/gemSpec_CM_KOMLE_V1.13.0.pdf 2 | Kapitel 3.3 3 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/smtp/SmtpGatewayConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.smtp; 18 | 19 | import net.sberg.openkim.konfiguration.Konfiguration; 20 | import net.sberg.openkim.log.LogService; 21 | import org.apache.james.protocols.smtp.SMTPConfigurationImpl; 22 | 23 | public class SmtpGatewayConfiguration extends SMTPConfigurationImpl { 24 | 25 | private final Konfiguration konfiguration; 26 | private final LogService logService; 27 | 28 | public SmtpGatewayConfiguration(Konfiguration konfiguration, LogService logService) { 29 | this.konfiguration = konfiguration; 30 | this.logService = logService; 31 | } 32 | 33 | @Override 34 | public String getGreeting() { 35 | return "KOM-LE Clientmodul ESMTP"; 36 | } 37 | 38 | public LogService getLogService() { 39 | return logService; 40 | } 41 | 42 | public Konfiguration getKonfiguration() { 43 | return konfiguration; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/smtp/SmtpGatewayProtocol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.smtp; 18 | 19 | import org.apache.james.protocols.api.ProtocolSession; 20 | import org.apache.james.protocols.api.ProtocolTransport; 21 | import org.apache.james.protocols.api.handler.ProtocolHandlerChain; 22 | import org.apache.james.protocols.smtp.SMTPConfiguration; 23 | import org.apache.james.protocols.smtp.SMTPProtocol; 24 | 25 | public class SmtpGatewayProtocol extends SMTPProtocol { 26 | 27 | private int smtpClientIdleTimeoutInSeconds; 28 | 29 | public SmtpGatewayProtocol(ProtocolHandlerChain chain, SMTPConfiguration config) { 30 | super(chain, config); 31 | } 32 | 33 | @Override 34 | public ProtocolSession newSession(ProtocolTransport transport) { 35 | return new SmtpGatewaySession(transport, (SMTPConfiguration) this.getConfiguration()); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/smtp/cmdhandler/SmtpGatewayNoopCmdHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.smtp.cmdhandler; 18 | 19 | import com.google.common.collect.ImmutableSet; 20 | import net.sberg.openkim.common.metrics.DefaultMetricFactory; 21 | import net.sberg.openkim.gateway.smtp.SmtpGatewaySession; 22 | import org.apache.james.protocols.api.Request; 23 | import org.apache.james.protocols.api.Response; 24 | import org.apache.james.protocols.api.handler.CommandHandler; 25 | import org.apache.james.protocols.smtp.SMTPResponse; 26 | import org.apache.james.protocols.smtp.SMTPRetCode; 27 | import org.apache.james.protocols.smtp.SMTPSession; 28 | import org.apache.james.protocols.smtp.dsn.DSNStatus; 29 | 30 | import java.util.Collection; 31 | 32 | public class SmtpGatewayNoopCmdHandler implements CommandHandler { 33 | 34 | /** 35 | * The name of the command handled by the command handler 36 | */ 37 | private static final Collection COMMANDS = ImmutableSet.of("NOOP"); 38 | 39 | private static final Response NOOP = new SMTPResponse(SMTPRetCode.MAIL_OK, DSNStatus.getStatus(DSNStatus.SUCCESS, DSNStatus.UNDEFINED_STATUS) + " OK").immutable(); 40 | 41 | /** 42 | * Handler method called upon receipt of a NOOP command. 43 | * Just sends back an OK and logs the command. 44 | */ 45 | @Override 46 | public Response onCommand(SMTPSession session, Request request) { 47 | DefaultMetricFactory gatewayMetricFactory = new DefaultMetricFactory(((SmtpGatewaySession) session).getLogger()); 48 | return gatewayMetricFactory.decorateSupplierWithTimerMetric("smto-auth", () -> NOOP); 49 | } 50 | 51 | @Override 52 | public Collection getImplCommands() { 53 | return COMMANDS; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/smtp/cmdhandler/SmtpGatewayWelcomeMessageHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.smtp.cmdhandler; 18 | 19 | import net.sberg.openkim.gateway.smtp.EnumSmtpGatewayState; 20 | import net.sberg.openkim.gateway.smtp.SmtpGatewaySession; 21 | import org.apache.james.protocols.api.Response; 22 | import org.apache.james.protocols.smtp.SMTPSession; 23 | import org.apache.james.protocols.smtp.core.WelcomeMessageHandler; 24 | 25 | public class SmtpGatewayWelcomeMessageHandler extends WelcomeMessageHandler { 26 | 27 | @Override 28 | public Response onConnect(SMTPSession session) { 29 | Response response = super.onConnect(session); 30 | ((SmtpGatewaySession) session).setGatewayState(EnumSmtpGatewayState.CONNECT); 31 | return response; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/gateway/smtp/hook/SmtpGatewayQuitHook.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.gateway.smtp.hook; 18 | 19 | import net.sberg.openkim.gateway.smtp.SmtpGatewaySession; 20 | import org.apache.james.protocols.smtp.SMTPSession; 21 | import org.apache.james.protocols.smtp.hook.HookResult; 22 | import org.apache.james.protocols.smtp.hook.QuitHook; 23 | import org.slf4j.Logger; 24 | import org.slf4j.LoggerFactory; 25 | 26 | public class SmtpGatewayQuitHook implements QuitHook { 27 | 28 | private static final Logger log = LoggerFactory.getLogger(SmtpGatewayQuitHook.class); 29 | 30 | @Override 31 | public HookResult doQuit(SMTPSession smtpSession) { 32 | try { 33 | ((SmtpGatewaySession) smtpSession).log("quit hook begins"); 34 | if (((SmtpGatewaySession) smtpSession).getSmtpClient() == null || ((SmtpGatewaySession) smtpSession).getSmtpClient().logout()) { 35 | ((SmtpGatewaySession) smtpSession).setSmtpClient(null); 36 | ((SmtpGatewaySession) smtpSession).log("quit hook ends"); 37 | return HookResult.OK; 38 | } 39 | ((SmtpGatewaySession) smtpSession).log("quit hook ends - error"); 40 | return HookResult.DENY; 41 | } catch (Exception e) { 42 | log.error("error on doQuit smtp gateway quit hook - " + smtpSession.getSessionID(), e); 43 | ((SmtpGatewaySession) smtpSession).log("quit hook ends - error"); 44 | return HookResult.DENY; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konfiguration/EnumGatewayTIMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.konfiguration; 18 | 19 | public enum EnumGatewayTIMode { 20 | FULLSTACK("Konnektor + KIM-Fachdienste werden benutzt"), 21 | KONNEKTOR("Konnektor wird benutzt. Ansonsten kann wird mit Internet/Intranet-Mailservern gearbeitet"), 22 | NO_TI("Konnektor wird NICHT benutzt und es wird mit Internet/Intranet-Mailservern gearbeitet"); 23 | 24 | private final String hrText; 25 | 26 | EnumGatewayTIMode(String hrText) { 27 | this.hrText = hrText; 28 | } 29 | 30 | public String getHrText() { 31 | return hrText; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konfiguration/EnumTIEnvironment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.konfiguration; 18 | 19 | public enum EnumTIEnvironment { 20 | TU("Testumgebung"), 21 | RU("Referenzumgebung"), 22 | PU("Produktivumgebung"); 23 | 24 | private final String hrText; 25 | 26 | EnumTIEnvironment(String hrText) { 27 | this.hrText = hrText; 28 | } 29 | 30 | public String getHrText() { 31 | return hrText; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konfiguration/README.md: -------------------------------------------------------------------------------- 1 | Konfiguration des KIM-Client-Moduls 2 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konfiguration/ServerState.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.konfiguration; 18 | 19 | import lombok.AllArgsConstructor; 20 | import lombok.Data; 21 | 22 | @Data 23 | @AllArgsConstructor 24 | public class ServerState { 25 | private String id; 26 | private String name; 27 | private String host; 28 | private String port; 29 | private boolean alive; 30 | private boolean active; 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konnektor/CMSAttribute.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.konnektor; 18 | 19 | import jakarta.xml.bind.annotation.XmlAccessType; 20 | import jakarta.xml.bind.annotation.XmlAccessorType; 21 | import jakarta.xml.bind.annotation.XmlRootElement; 22 | import jakarta.xml.bind.annotation.XmlValue; 23 | 24 | @XmlRootElement(name = "CMSAttribute") 25 | @XmlAccessorType(XmlAccessType.FIELD) 26 | public class CMSAttribute { 27 | @XmlValue 28 | private String content; 29 | 30 | public void setContent(String content) { 31 | this.content = content; 32 | } 33 | 34 | public String getContent() { 35 | return content; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konnektor/EnumKonnektorAuthMethod.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.konnektor; 18 | 19 | public enum EnumKonnektorAuthMethod { 20 | CERT, BASICAUTH, NONE, UNKNOWN 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konnektor/EnumKonnektorServiceBeanType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.konnektor; 18 | 19 | public enum EnumKonnektorServiceBeanType { 20 | EncryptionService("de.gematik.ws.conn.encryptionservice.v6", "http://ws.gematik.de/conn/EncryptionService/"), 21 | SignatureService("de.gematik.ws.conn.signatureservice.v7", "http://ws.gematik.de/conn/SignatureService/"), 22 | CardService("de.gematik.ws.conn.cardservice.v8", "http://ws.gematik.de/conn/CardService/"), 23 | CardTerminalService("de.gematik.ws.conn.cardterminalservice.v1", "http://ws.gematik.de/conn/CardTerminalService/"), 24 | AuthSignatureService("de.gematik.ws.conn.authsignatureservice", "http://ws.gematik.de/conn/SignatureService/"), 25 | CertificateService("de.gematik.ws.conn.certificateservice.v6", "http://ws.gematik.de/conn/CertificateService/"), 26 | EventService("de.gematik.ws.conn.eventservice.v7", "http://ws.gematik.de/conn/EventService/"); 27 | 28 | private final String packageName; 29 | private final String soapActionPrefix; 30 | 31 | EnumKonnektorServiceBeanType(String packageName, String soapActionPrefix) { 32 | this.packageName = packageName; 33 | this.soapActionPrefix = soapActionPrefix; 34 | } 35 | 36 | public String getPackageName() { 37 | return packageName; 38 | } 39 | 40 | public String getSoapActionPrefix() { 41 | return soapActionPrefix; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konnektor/KonnektorCard.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.konnektor; 18 | 19 | import lombok.Data; 20 | 21 | @Data 22 | public class KonnektorCard { 23 | private String uuid; 24 | private String pinStatus; 25 | private String cardTerminal; 26 | private String cardSlot; 27 | private String cardHandle; 28 | private String cardType; 29 | private String pinTyp; 30 | private String iccsn; 31 | private String telematikId; 32 | private String expiredAt; 33 | private String konnId; 34 | private String wsId; 35 | private String verifyPinOpId; 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konnektor/KonnektorServiceBean.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.konnektor; 18 | 19 | import lombok.Data; 20 | 21 | @Data 22 | public class KonnektorServiceBean { 23 | private String id; 24 | private String version; 25 | private String endpoint; 26 | private String endpointTls; 27 | private EnumKonnektorServiceBeanType enumKonnektorServiceBeanType; 28 | private boolean alive; 29 | private boolean testable = true; 30 | 31 | public boolean isTestable() { 32 | if (enumKonnektorServiceBeanType.equals(EnumKonnektorServiceBeanType.SignatureService)) { 33 | return false; 34 | } 35 | return testable; 36 | } 37 | 38 | public String createClassPackageName() { 39 | return enumKonnektorServiceBeanType.getPackageName(); 40 | } 41 | 42 | public String createSoapAction(String operation) { 43 | //bsp.: "http://ws.gematik.de/conn/EventService/v7.2#Subscribe" 44 | String[] arr = version.split("\\."); 45 | return enumKonnektorServiceBeanType.getSoapActionPrefix() 46 | + "v" 47 | + arr[0] 48 | + "." 49 | + arr[1] 50 | + "#" 51 | + operation; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konnektor/KonnektorWebserviceUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.konnektor; 18 | 19 | import net.sberg.openkim.common.CommonBuilderFactory; 20 | import net.sberg.openkim.log.DefaultLogger; 21 | 22 | import java.util.Arrays; 23 | import java.util.List; 24 | 25 | public class KonnektorWebserviceUtils { 26 | 27 | public static final String STATUS_OK = "OK"; 28 | public static final String CARD_PIN_TYP_SMC = "PIN.SMC"; 29 | public static final String CARD_PIN_TYP_CH = "PIN.CH"; 30 | public static final String CERT_REF_AUT = "C.AUT"; 31 | public static final String CERT_REF_ENC = "C.ENC"; 32 | public static final String CERT_REF_SIG = "C.SIG"; 33 | public static final String CERT_REF_QES = "C.QES"; 34 | 35 | public static final String CARD_TYPE_SMB = "SM-B"; 36 | public static final String CARD_TYPE_SMCB = "SMC-B"; 37 | public static final String CARD_TYPE_HBA = "HBA"; 38 | public static final String CARD_TYPE_HBAx = "HBAx"; 39 | public static final List interestingCardTypes = Arrays.asList(CARD_TYPE_SMCB, CARD_TYPE_SMB); 40 | 41 | public static final String ECC_ENC_AVAILABLE_SIGNATURESERVICE_VERSION = "7.4.1"; 42 | public static final String ECC_ENC_AVAILABLE_ENCRYPTIONSERVICE_VERSION = "6.1.1"; 43 | 44 | public static final String getPinType(String cardType) { 45 | if (cardType.toLowerCase().startsWith("sm")) { 46 | return CARD_PIN_TYP_SMC; 47 | } 48 | return CARD_PIN_TYP_CH; 49 | } 50 | 51 | public static final WebserviceConnector createConnector(Konnektor konnektor, String packageName, KonnektorServiceBean konnektorServiceBean, String soapAction, DefaultLogger logger) throws Exception { 52 | CommonBuilderFactory konnektorConnectionBuilder = new CommonBuilderFactory(); 53 | return konnektorConnectionBuilder.buildWebserviceConnector(logger, packageName, konnektorServiceBean.getEndpointTls(), konnektor, soapAction); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konnektor/README.md: -------------------------------------------------------------------------------- 1 | Verwalten von Konnektoren 2 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/konnektor/WebserviceConnector.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.konnektor; 18 | 19 | import org.springframework.ws.client.core.support.WebServiceGatewaySupport; 20 | import org.springframework.ws.transport.http.HttpComponentsMessageSender; 21 | 22 | public class WebserviceConnector extends WebServiceGatewaySupport { 23 | public Object getSoapResponse(Object requestPayload) throws Exception { 24 | Object response = getWebServiceTemplate().marshalSendAndReceive(requestPayload); 25 | for (int i = 0; i < getMessageSenders().length; i++) { 26 | ((HttpComponentsMessageSender) getMessageSenders()[i]).destroy(); 27 | } 28 | return response; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/log/EnumLogTyp.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.log; 18 | 19 | public enum EnumLogTyp { 20 | POP3, SMTP 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/log/Log.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.log; 18 | 19 | import lombok.Data; 20 | 21 | import java.time.LocalDateTime; 22 | 23 | @Data 24 | public class Log { 25 | private String id; 26 | private EnumLogTyp logTyp; 27 | private LocalDateTime geaendert; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/log/error/IErrorContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.log.error; 18 | 19 | public interface IErrorContext { 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/log/error/MailDecryptErrorContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.log.error; 18 | 19 | import lombok.Data; 20 | 21 | import java.util.ArrayList; 22 | import java.util.List; 23 | 24 | @Data 25 | public class MailDecryptErrorContext implements IErrorContext { 26 | private List errorCodes = new ArrayList<>(); 27 | 28 | public List getErrorCodes() { 29 | return errorCodes; 30 | } 31 | 32 | public boolean isEmpty() { 33 | return errorCodes.isEmpty(); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/log/error/MailEncryptFormatErrorContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.log.error; 18 | 19 | import lombok.Data; 20 | 21 | import java.util.ArrayList; 22 | import java.util.List; 23 | 24 | @Data 25 | public class MailEncryptFormatErrorContext implements IErrorContext { 26 | private List errorCodes = new ArrayList<>(); 27 | 28 | public List getErrorCodes() { 29 | return errorCodes; 30 | } 31 | 32 | public boolean isEmpty() { 33 | return errorCodes.isEmpty(); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/log/error/MailSignEncryptErrorContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.log.error; 18 | 19 | import lombok.Data; 20 | 21 | import java.util.ArrayList; 22 | import java.util.List; 23 | 24 | @Data 25 | public class MailSignEncryptErrorContext implements IErrorContext { 26 | private List errorCodes = new ArrayList<>(); 27 | 28 | public List getErrorCodes() { 29 | return errorCodes; 30 | } 31 | 32 | public boolean isEmpty() { 33 | return errorCodes.isEmpty(); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/log/error/MailSignVerifyErrorContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.log.error; 18 | 19 | import lombok.Data; 20 | 21 | import java.util.ArrayList; 22 | import java.util.List; 23 | 24 | @Data 25 | public class MailSignVerifyErrorContext implements IErrorContext { 26 | private List errorCodes = new ArrayList<>(); 27 | 28 | public List getErrorCodes() { 29 | return errorCodes; 30 | } 31 | 32 | public boolean isEmpty() { 33 | return errorCodes.isEmpty(); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/log/error/MailaddressKimVersionErrorContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.log.error; 18 | 19 | import lombok.Data; 20 | import net.sberg.openkim.common.x509.X509CertificateResult; 21 | 22 | import java.util.ArrayList; 23 | import java.util.HashMap; 24 | import java.util.List; 25 | import java.util.Map; 26 | 27 | @Data 28 | public class MailaddressKimVersionErrorContext implements IErrorContext { 29 | private Map> errorCerts = new HashMap<>(); 30 | private Map> addressErrors = new HashMap<>(); 31 | 32 | private List rcptAddresses = new ArrayList<>(); 33 | private String senderAddress; 34 | 35 | public boolean isEmpty() { 36 | return errorCerts.isEmpty(); 37 | } 38 | 39 | public void add(X509CertificateResult x509CertificateResult, EnumErrorCode errorCode, boolean sender) { 40 | if (!errorCerts.containsKey(errorCode)) { 41 | errorCerts.put(errorCode, new ArrayList<>()); 42 | } 43 | if (!errorCerts.get(errorCode).contains(x509CertificateResult)) { 44 | errorCerts.get(errorCode).add(x509CertificateResult); 45 | } 46 | fill(x509CertificateResult.getMailAddress(), errorCode, sender); 47 | } 48 | 49 | private void fill(String address, EnumErrorCode errorCode, boolean sender) { 50 | if (!addressErrors.containsKey(address)) { 51 | addressErrors.put(address, new ArrayList<>()); 52 | } 53 | if (!addressErrors.get(address).contains(errorCode)) { 54 | addressErrors.get(address).add(errorCode); 55 | } 56 | 57 | if (sender) { 58 | if (senderAddress == null) { 59 | senderAddress = address; 60 | } 61 | } else { 62 | if (!rcptAddresses.contains(address)) { 63 | rcptAddresses.add(address); 64 | } 65 | } 66 | } 67 | 68 | public boolean isError(String address) { 69 | return addressErrors.containsKey(address) && !addressErrors.get(address).isEmpty(); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/log/error/MailaddressRcptToErrorContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.log.error; 18 | 19 | import lombok.Data; 20 | 21 | import java.util.ArrayList; 22 | import java.util.HashMap; 23 | import java.util.List; 24 | import java.util.Map; 25 | 26 | @Data 27 | public class MailaddressRcptToErrorContext implements IErrorContext { 28 | private Map addressErrors = new HashMap<>(); 29 | private List rcptAddresses = new ArrayList<>(); 30 | 31 | public boolean isEmpty() { 32 | return addressErrors.isEmpty() && rcptAddresses.isEmpty(); 33 | } 34 | 35 | public void add(String rcptAddress, EnumErrorCode errorCode) { 36 | if (!addressErrors.containsKey(rcptAddress)) { 37 | addressErrors.put(rcptAddress, errorCode); 38 | } 39 | if (!rcptAddresses.contains(rcptAddress)) { 40 | rcptAddresses.add(rcptAddress); 41 | } 42 | } 43 | public boolean isError(String address) { 44 | return addressErrors.containsKey(address); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/PipelineOperation.java: -------------------------------------------------------------------------------- 1 | package net.sberg.openkim.pipeline; 2 | 3 | import org.springframework.beans.factory.annotation.Qualifier; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Target({ElementType.FIELD, ElementType.TYPE}) 12 | @Qualifier 13 | public @interface PipelineOperation { 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/PipelineService.java: -------------------------------------------------------------------------------- 1 | package net.sberg.openkim.pipeline; 2 | 3 | import net.sberg.openkim.konnektor.KonnektorVzdController; 4 | import net.sberg.openkim.pipeline.operation.IPipelineOperation; 5 | import net.sberg.openkim.pipeline.operation.PipelineOperationLabel; 6 | import org.slf4j.Logger; 7 | import org.slf4j.LoggerFactory; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Service; 10 | 11 | import java.util.List; 12 | import java.util.stream.Collectors; 13 | 14 | @Service 15 | public class PipelineService { 16 | 17 | private static final Logger log = LoggerFactory.getLogger(KonnektorVzdController.class); 18 | 19 | @Autowired 20 | @PipelineOperation 21 | List operations; 22 | 23 | public IPipelineOperation getOperation(String key) throws Exception { 24 | List result = operations.stream().filter(iPipelineOperation -> iPipelineOperation.getOperationKey().equals(key)).collect(Collectors.toList()); 25 | if (result.size() == 1) { 26 | return result.get(0); 27 | } 28 | if (result.size() > 1) { 29 | throw new IllegalStateException("more than one operation available: "+key); 30 | } 31 | throw new IllegalStateException("no operation available: "+key); 32 | } 33 | 34 | public Class getOperationClass(String key) throws Exception { 35 | List result = operations.stream().filter(iPipelineOperation -> iPipelineOperation.getOperationKey().equals(key)).collect(Collectors.toList()); 36 | if (result.size() == 1) { 37 | return result.get(0).getClass(); 38 | } 39 | if (result.size() > 1) { 40 | throw new IllegalStateException("more than one operation available: "+key); 41 | } 42 | throw new IllegalStateException("no operation available: "+key); 43 | } 44 | 45 | public List getTestableOperations() throws Exception { 46 | return operations.stream().filter(s -> s.isTestable()).map(s -> s.createLabel()).collect(Collectors.toList()); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/DefaultPipelineOperationContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation; 18 | 19 | import net.sberg.openkim.log.DefaultLogger; 20 | 21 | import java.util.HashMap; 22 | import java.util.Map; 23 | 24 | public class DefaultPipelineOperationContext implements IPipelineOperationContext { 25 | 26 | public static final String ENV_KONNEKTOR_ID = "konnId"; 27 | public static final String ENV_WEBSERVICE_ID = "wsId"; 28 | public static final String ENV_OP_ID = "opId"; 29 | 30 | private DefaultLogger logger; 31 | private Map environment = new HashMap<>(); 32 | 33 | public DefaultLogger getLogger() { 34 | return logger; 35 | } 36 | 37 | private DefaultPipelineOperationContext() {} 38 | public DefaultPipelineOperationContext(DefaultLogger logger) { this.logger = logger; } 39 | 40 | public Object getEnvironmentValue(String prefix, String key) { 41 | return environment.get(prefix+"."+key); 42 | } 43 | public boolean hasEnvironmentValue(String prefix, String key) { return environment.containsKey(prefix+"."+key); } 44 | public void setEnvironmentValue(String prefix, String key, Object val) { 45 | environment.put(prefix+"."+key, val); 46 | } 47 | public void setEnvironmentValues(Map values) { 48 | environment.putAll(values); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/IPipelineOperation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation; 18 | 19 | import java.io.PrintWriter; 20 | import java.io.StringWriter; 21 | import java.util.function.BiConsumer; 22 | import java.util.function.Consumer; 23 | 24 | public interface IPipelineOperation { 25 | 26 | public static final String BUILTIN_VENDOR = "OpenKIM"; 27 | 28 | public static final String ENV_EXCEPTION = "exception"; 29 | 30 | public String getName(); 31 | public Consumer getDefaultOkConsumer(); 32 | public void execute(DefaultPipelineOperationContext defaultPipelineOperationContext, Consumer okConsumer, BiConsumer failConsumer); 33 | 34 | public default String getOperationKey() { 35 | return getVendor()+"."+getName(); 36 | } 37 | public default String getVendor() { 38 | return BUILTIN_VENDOR; 39 | } 40 | public default BiConsumer getDefaultFailConsumer() { 41 | return (context, e) -> { 42 | context.setEnvironmentValue(getName(), ENV_EXCEPTION, e); 43 | StringWriter sw = new StringWriter(); 44 | PrintWriter pw = new PrintWriter(sw); 45 | e.printStackTrace(pw); 46 | context.getLogger().logLine(sw.toString(), true); 47 | }; 48 | } 49 | public default boolean hasError(DefaultPipelineOperationContext defaultPipelineOperationContext, String... prefixes) { 50 | for (int i = 0; i < prefixes.length; i++) { 51 | if (defaultPipelineOperationContext.hasEnvironmentValue(prefixes[i], ENV_EXCEPTION)) { 52 | return true; 53 | } 54 | } 55 | return false; 56 | } 57 | public default boolean isTestable() { 58 | return false; 59 | } 60 | public default String getHrText() { 61 | return getOperationKey(); 62 | } 63 | public default PipelineOperationLabel createLabel() { 64 | PipelineOperationLabel label = new PipelineOperationLabel(); 65 | label.setLabel(getHrText()); 66 | label.setId(getOperationKey()); 67 | return label; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/IPipelineOperationContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation; 18 | 19 | public interface IPipelineOperationContext { 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/PipelineOperationLabel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation; 18 | 19 | import lombok.Data; 20 | 21 | @Data 22 | public class PipelineOperationLabel { 23 | private String id; 24 | private String label; 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/konnektor/dns/DnsResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.konnektor.dns; 18 | 19 | import lombok.Data; 20 | 21 | @Data 22 | public class DnsResult { 23 | private String address; 24 | private String name; 25 | private int type; 26 | private int port; 27 | private int dclass; 28 | private long ttl; 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/konnektor/dns/DnsResultContainer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.konnektor.dns; 18 | 19 | import lombok.Data; 20 | 21 | import java.util.ArrayList; 22 | import java.util.List; 23 | 24 | @Data 25 | public class DnsResultContainer { 26 | private boolean error; 27 | private List result = new ArrayList<>(); 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/konnektor/ntp/NtpResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.konnektor.ntp; 18 | 19 | import lombok.Data; 20 | 21 | import java.util.Date; 22 | 23 | @Data 24 | public class NtpResult { 25 | private Date systemTime; 26 | private Date konnektorTime; 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/konnektor/vzd/EnumKomLeVersion.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.konnektor.vzd; 18 | 19 | public enum EnumKomLeVersion { 20 | V1_0("1.0", "1.0"), 21 | V1_5("1.5", "1.5"), 22 | V1_5plus("1.5.1", "1.5+"); 23 | 24 | private String innerVersion; 25 | private String officalVersion; 26 | 27 | private EnumKomLeVersion(String innerVersion, String officalVersion) { 28 | this.innerVersion = innerVersion; 29 | this.officalVersion = officalVersion; 30 | } 31 | 32 | public String getInnerVersion() { 33 | return innerVersion; 34 | } 35 | 36 | public String getOfficalVersion() { 37 | return officalVersion; 38 | } 39 | 40 | public static final EnumKomLeVersion get(String officialVersion) { 41 | switch (officialVersion) { 42 | case "1.0": return EnumKomLeVersion.V1_0; 43 | case "1.5": return EnumKomLeVersion.V1_5; 44 | case "1.5+": return EnumKomLeVersion.V1_5plus; 45 | default: throw new IllegalStateException("unknown official version: "+officialVersion); 46 | } 47 | 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/konnektor/vzd/EnumVzdErrorCode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.konnektor.vzd; 18 | 19 | public enum EnumVzdErrorCode { 20 | OK, 21 | NOT_FOUND, 22 | OTHER 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/konnektor/vzd/VzdMailResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.konnektor.vzd; 18 | 19 | import lombok.Data; 20 | 21 | @Data 22 | public class VzdMailResult { 23 | private String mailAddress; 24 | private EnumKomLeVersion version; 25 | 26 | @Override 27 | public String toString() { 28 | return version.getOfficalVersion()+","+mailAddress; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/konnektor/vzd/VzdResult.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.konnektor.vzd; 18 | 19 | import lombok.Data; 20 | 21 | import java.security.cert.X509Certificate; 22 | import java.util.ArrayList; 23 | import java.util.HashMap; 24 | import java.util.List; 25 | import java.util.Map; 26 | import java.util.stream.Collectors; 27 | 28 | @Data 29 | public class VzdResult { 30 | private String uid; 31 | private String cn; 32 | private String sn; 33 | private String displayName; 34 | private String givenName; 35 | private Map mailResults = new HashMap<>(); 36 | private String personalEntry; 37 | private String changeDateTime; 38 | private String countryCode; 39 | private String dataFromAuthority; 40 | private String domainID; 41 | private String entryType; 42 | private String l; 43 | private String organization; 44 | private String otherName; 45 | private String postalCode; 46 | private String professionOID; 47 | private String specialization; 48 | private String st; 49 | private String street; 50 | private String telematikID; 51 | private String title; 52 | private List certs = new ArrayList<>(); 53 | private List certBytes = new ArrayList<>(); 54 | private String certSummary; 55 | private EnumVzdErrorCode errorCode = EnumVzdErrorCode.OK; 56 | 57 | public String createMailStr() { 58 | if (mailResults.isEmpty()) { 59 | return ""; 60 | } 61 | return mailResults.keySet().stream().map(s -> mailResults.get(s).toString()).collect(Collectors.joining(";")); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/mail/kas/EnumKasServiceErrorCode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.mail.kas; 18 | 19 | public enum EnumKasServiceErrorCode { 20 | technical("Technischer Fehler"), 21 | notAttachmentSizeExceded("Größe der Mail ohne Attachments zu groß"), 22 | attachmentIncorrectTypeAndDisposition("Mail enthält Attachments mit Content-Type: text/plain;charset=utf-8 sowie ein Content-Disposition: x-kas"), 23 | kasQuotaReached("Quota-Überschreitung auf dem Kas-Server für den Account"), 24 | readBinariesFromMail("Fehler beim Lesen der Binaries von der Mail"), 25 | encryptAttachment("Fehler beim Verschlüsseln des Anhangs"), 26 | sendAttachment("Fehler beim Senden des Anhangs"), 27 | sendAttachmentBadRequest("Fehler beim Senden des Anhangs - BAD_REQUEST"), 28 | sendAttachmentUnauthorized("Fehler beim Senden des Anhangs - UNAUTHORIZED"), 29 | sendAttachmentPayloadTooLarge("Fehler beim Senden des Anhangs - PAYLOAD_TOO_LARGE"), 30 | sendAttachmentInternalServerError("Fehler beim Senden des Anhangs - INTERNAL_SERVER_ERROR"), 31 | sendAttachmentInsufficientStorage("Fehler beim Senden des Anhangs - INSUFFICIENT_STORAGE"), 32 | hashPlainAttachment("Fehler beim Hashen des Plain-Anhangs"), 33 | creatingXkasMimebodypart("Fehler beim Erstellen des x-kas MimeBodyParts"), 34 | readAttachment("Fehler beim Herunterladen des Anhangs"), 35 | readAttachmentForbidden("Fehler beim Herunterladen des Anhangs - FORBIDDEN"), 36 | readAttachmentNotFound("Fehler beim Herunterladen des Anhangs - NOT_FOUND"), 37 | readAttachmentTooManyRequests("Fehler beim Herunterladen des Anhangs - TOO_MANY_REQUESTS"), 38 | readAttachmentInternalServerError("Fehler beim Herunterladen des Anhangs - INTERNAL_SERVER_ERROR"), 39 | creatingOriginalMimemessage("Fehler beim Erstellen der originalen Mail"), 40 | decryptAttachment("Fehler beim Entschlüsseln des Anhangs"), 41 | checkHashPlainAttachment("Fehler beim Checken und Vergleichen des Hashwertes des Plain-Anhangs"), 42 | unknown("unbekannt"); 43 | 44 | private final String hrText; 45 | 46 | EnumKasServiceErrorCode(String hrText) { 47 | this.hrText = hrText; 48 | } 49 | 50 | public String getHrText() { 51 | return hrText; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/mail/kas/KasMetaObj.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.mail.kas; 18 | 19 | import lombok.AccessLevel; 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @NoArgsConstructor(force = true, access = AccessLevel.PUBLIC) 26 | @AllArgsConstructor 27 | public class KasMetaObj { 28 | private String link; 29 | private String k; 30 | private String hash; 31 | private double size; 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/mail/kas/KasMetaObjError.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.mail.kas; 18 | 19 | import lombok.AccessLevel; 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @NoArgsConstructor(force = true, access = AccessLevel.PUBLIC) 26 | @AllArgsConstructor 27 | public class KasMetaObjError { 28 | private String name; 29 | private int size; 30 | private String type; 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/mail/kas/KasServiceException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.mail.kas; 18 | 19 | public class KasServiceException extends Exception { 20 | 21 | private final EnumKasServiceErrorCode code; 22 | 23 | protected KasServiceException(EnumKasServiceErrorCode code, String message) { 24 | super(message); 25 | this.code = code; 26 | } 27 | 28 | protected KasServiceException(EnumKasServiceErrorCode code, String message, Throwable cause) { 29 | super(message, cause); 30 | this.code = code; 31 | } 32 | 33 | public EnumKasServiceErrorCode getCode() { 34 | return this.code; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/mail/kas/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/mail/part/EnumMailPartContentType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.mail.part; 18 | 19 | public enum EnumMailPartContentType { 20 | MimeMessage, Multipart, Text, Binary, DispositionNotification, DeliveryStatus, Unknown 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/pipeline/operation/mail/part/EnumMailPartDispositionType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.pipeline.operation.mail.part; 18 | 19 | public enum EnumMailPartDispositionType { 20 | Xkas("x-kas"), Unknown("unknown"); 21 | 22 | private final String name; 23 | 24 | EnumMailPartDispositionType(String name) { 25 | this.name = name; 26 | } 27 | 28 | public String getName() { 29 | return name; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/user/UserChangePwd.java: -------------------------------------------------------------------------------- 1 | package net.sberg.openkim.user; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class UserChangePwd { 7 | private String username; 8 | private String oldPwd; 9 | private String newPwd; 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/net/sberg/openkim/user/UserController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 sberg it-systeme GmbH 3 | * 4 | * Licensed under the EUPL, Version 1.1 or - as soon they will be approved 5 | * by the European Commission - subsequent versions of the EUPL (the "Licence"); 6 | * You may not use this work except in compliance with the Licence. 7 | * You may obtain a copy of the Licence at: 8 | * 9 | * http://ec.europa.eu/idabc/eupl 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the Licence is distributed on an "AS IS" basis, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the Licence for the specific language governing permissions and 15 | * limitations under the Licence. 16 | */ 17 | package net.sberg.openkim.user; 18 | 19 | import net.sberg.openkim.common.AbstractWebController; 20 | import org.springframework.beans.factory.annotation.Autowired; 21 | import org.springframework.http.HttpStatus; 22 | import org.springframework.stereotype.Controller; 23 | import org.springframework.web.bind.annotation.*; 24 | 25 | @Controller 26 | public class UserController extends AbstractWebController { 27 | 28 | @Autowired 29 | private UserService userService; 30 | 31 | @RequestMapping(value = "/user/settings", method = RequestMethod.GET) 32 | @ResponseStatus(value = HttpStatus.OK) 33 | public String laden() throws Exception { 34 | return "user/userSettings"; 35 | } 36 | 37 | @RequestMapping(value = "/user/changePwd", method = RequestMethod.POST) 38 | @ResponseStatus(value = HttpStatus.OK) 39 | @ResponseBody 40 | public boolean aendern(@RequestBody UserChangePwd userChangePwd) throws Exception { 41 | return userService.updateExistingUser(userChangePwd); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | servlet: 3 | context-path: / 4 | port: 8080 5 | error: 6 | include-stacktrace: always 7 | 8 | 9 | versions: 10 | #openKim version set by pom.xml project version 11 | openKim: '@project.version@' 12 | ProduktTypVersion: '1.5.0-2' 13 | 14 | konfiguration: 15 | gatewayHostDefaultWert: 127.0.0.1 16 | smtpGatewayPortDefaultWert: 8888 17 | pop3GatewayPortDefaultWert: 8889 18 | encryptionKeys: qwzwebnjcv5461237884,fgjnkfnkndfk,tgzjnbdnbjdfngj,dkgfjgkfjgkjfgkfxccnv,rfughnvvcnbfjgjvnxcbn 19 | encryptPasswords: true 20 | 21 | gatewaykeystore: 22 | password: 123!sberg!456 23 | 24 | spring: 25 | main: 26 | allow-bean-definition-overriding: true 27 | ldap: 28 | base: dc=data,dc=vzd 29 | 30 | security: 31 | authFile: "data/auth.cfg" 32 | users: 33 | - username: admin 34 | password: "admin" 35 | authorities: ROLE_ADMIN 36 | - username: monitoring 37 | password: "monitoring" 38 | authorities: ROLE_MONITORING 39 | 40 | --- 41 | 42 | spring: 43 | config.activate.on-profile: dev 44 | 45 | server: 46 | servlet: 47 | context-path: /openkim 48 | -------------------------------------------------------------------------------- /src/main/resources/fonts/Arial/arial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/fonts/Arial/arial.ttf -------------------------------------------------------------------------------- /src/main/resources/fonts/Arial/arialbd.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/fonts/Arial/arialbd.ttf -------------------------------------------------------------------------------- /src/main/resources/fonts/Arial/arialbi.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/fonts/Arial/arialbi.ttf -------------------------------------------------------------------------------- /src/main/resources/fonts/Arial/ariali.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/fonts/Arial/ariali.ttf -------------------------------------------------------------------------------- /src/main/resources/fonts/arial.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/main/resources/jasperreports_extension.properties: -------------------------------------------------------------------------------- 1 | net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory 2 | net.sf.jasperreports.extension.simple.font.families.arial=fonts/arial.xml -------------------------------------------------------------------------------- /src/main/resources/logback-spring.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 9 | 10 | 11 | 13 | 15 | 17 | 18 | 19 | 20 | ${CONSOLE_LOG_PATTERN} 21 | 22 | 23 | 24 | 25 | 26 | ${CONSOLE_LOG_PATTERN_NO_COLOR} 27 | 28 | 29 | 30 | 31 | logs/${LOG_FILE}.log 32 | 33 | logs/${LOG_FILE}_%d{yyyy-MM-dd}.log 34 | 35 | 36 | 37 | ${FILE_LOG_PATTERN} 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/main/resources/static/css/dashboard-old.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: .875rem; 3 | } 4 | 5 | .feather { 6 | width: 16px; 7 | height: 16px; 8 | vertical-align: text-bottom; 9 | } 10 | 11 | /* 12 | * Sidebar 13 | */ 14 | 15 | .sidebar { 16 | position: fixed; 17 | top: 0; 18 | bottom: 0; 19 | left: 0; 20 | z-index: 100; /* Behind the navbar */ 21 | padding: 0; 22 | box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1); 23 | } 24 | 25 | .sidebar-sticky { 26 | position: -webkit-sticky; 27 | position: sticky; 28 | top: 48px; /* Height of navbar */ 29 | height: calc(100vh - 48px); 30 | padding-top: .5rem; 31 | overflow-x: hidden; 32 | overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */ 33 | } 34 | 35 | .sidebar .nav-link { 36 | font-weight: 500; 37 | color: #333; 38 | } 39 | 40 | .sidebar .nav-link .feather { 41 | margin-right: 4px; 42 | color: #999; 43 | } 44 | 45 | .sidebar .nav-link.active { 46 | color: #007bff; 47 | } 48 | 49 | .sidebar .nav-link:hover .feather, 50 | .sidebar .nav-link.active .feather { 51 | color: inherit; 52 | } 53 | 54 | .sidebar-heading { 55 | font-size: .75rem; 56 | text-transform: uppercase; 57 | } 58 | 59 | /* 60 | * Navbar 61 | */ 62 | .navbar-top { 63 | background-color: rgba(52, 58, 64, .25); 64 | box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25); 65 | } 66 | 67 | .navbar-brand { 68 | padding-top: .75rem; 69 | padding-bottom: .75rem; 70 | font-size: 1rem; 71 | } 72 | 73 | .navbar .form-control { 74 | padding: .75rem 1rem; 75 | border-width: 0; 76 | border-radius: 0; 77 | } 78 | 79 | .form-control-dark { 80 | color: #fff; 81 | background-color: rgba(255, 255, 255, .1); 82 | border-color: rgba(255, 255, 255, .1); 83 | } 84 | 85 | .form-control-dark:focus { 86 | border-color: transparent; 87 | box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); 88 | } 89 | 90 | /* 91 | * Utilities 92 | */ 93 | 94 | .border-top { 95 | border-top: 1px solid #e5e5e5; 96 | } 97 | 98 | .border-bottom { 99 | border-bottom: 1px solid #e5e5e5; 100 | } 101 | 102 | .text-break { 103 | word-wrap: break-word !important; 104 | word-break: break-word !important; 105 | } 106 | 107 | .cut-text { 108 | text-overflow: ellipsis; 109 | overflow: hidden; 110 | } 111 | -------------------------------------------------------------------------------- /src/main/resources/static/css/dashboard.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: .875rem; 3 | } 4 | 5 | .feather { 6 | width: 16px; 7 | height: 16px; 8 | vertical-align: text-bottom; 9 | } 10 | 11 | /* 12 | * Sidebar 13 | */ 14 | 15 | .sidebar { 16 | position: fixed; 17 | top: 0; 18 | bottom: 0; 19 | left: 0; 20 | z-index: 100; /* Behind the navbar */ 21 | padding: 48px 0 0; /* Height of navbar */ 22 | box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1); 23 | } 24 | 25 | .sidebar-sticky { 26 | position: relative; 27 | top: 0; 28 | height: calc(100vh - 48px); 29 | padding-top: .5rem; 30 | overflow-x: hidden; 31 | overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */ 32 | } 33 | 34 | @supports ((position: -webkit-sticky) or (position: sticky)) { 35 | .sidebar-sticky { 36 | position: -webkit-sticky; 37 | position: sticky; 38 | } 39 | } 40 | 41 | .sidebar .nav-link { 42 | font-weight: 500; 43 | color: #333; 44 | } 45 | 46 | .sidebar .nav-link .feather { 47 | margin-right: 4px; 48 | color: #999; 49 | } 50 | 51 | .sidebar .nav-link.active { 52 | color: #007bff; 53 | } 54 | 55 | .sidebar .nav-link:hover .feather, 56 | .sidebar .nav-link.active .feather { 57 | color: inherit; 58 | } 59 | 60 | .sidebar-heading { 61 | font-size: .75rem; 62 | text-transform: uppercase; 63 | } 64 | 65 | /* 66 | * Content 67 | */ 68 | 69 | [role="main"] { 70 | padding-top: 48px; /* Space for fixed navbar */ 71 | } 72 | 73 | /* 74 | * Navbar 75 | */ 76 | 77 | .navbar-brand { 78 | padding-top: .75rem; 79 | padding-bottom: .75rem; 80 | font-size: 1rem; 81 | /* 82 | background-color: rgba(0, 0, 0, .25); 83 | box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25); 84 | */ 85 | } 86 | 87 | .navbar .form-control { 88 | padding: .75rem 1rem; 89 | border-width: 0; 90 | border-radius: 0; 91 | } 92 | 93 | .form-control-dark { 94 | color: #fff; 95 | background-color: rgba(255, 255, 255, .1); 96 | border-color: rgba(255, 255, 255, .1); 97 | } 98 | 99 | .form-control-dark:focus { 100 | border-color: transparent; 101 | box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); 102 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/regular.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.14.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400} -------------------------------------------------------------------------------- /src/main/resources/static/css/solid.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.14.0 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900} -------------------------------------------------------------------------------- /src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-brands-400.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-brands-400.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-regular-400.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-regular-400.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-solid-900.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-solid-900.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-300.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-300.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-300.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-300.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-300italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-300italic.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-300italic.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-300italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-300italic.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-300italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-300italic.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-500.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-500.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-500.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-500.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-500italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-500italic.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-500italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-500italic.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-500italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-500italic.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-500italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-500italic.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-600.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-600.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-600.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-600.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-600.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-600.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-600.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-600.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-600italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-600italic.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-600italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-600italic.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-600italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-600italic.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-600italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-600italic.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-700.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-700.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-700.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-700.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-700italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-700italic.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-700italic.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-700italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-700italic.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-700italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-700italic.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-800.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-800.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-800.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-800.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-800.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-800.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-800.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-800.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-800italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-800italic.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-800italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-800italic.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-800italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-800italic.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-800italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-800italic.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-italic.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-italic.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-italic.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-italic.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-regular.eot -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-regular.ttf -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-regular.woff -------------------------------------------------------------------------------- /src/main/resources/static/fonts/open-sans-v26-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/fonts/open-sans-v26-latin-regular.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/img/bg.jpg -------------------------------------------------------------------------------- /src/main/resources/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/img/favicon.ico -------------------------------------------------------------------------------- /src/main/resources/static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sberg-net/openkim/0a5ee682b6a6e447e84750094492f49ee387afdb/src/main/resources/static/img/logo.png -------------------------------------------------------------------------------- /src/main/resources/static/img/mail.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /src/main/resources/static/js/login.js: -------------------------------------------------------------------------------- 1 | $(window).on("scroll", () => { 2 | const $body = $("body"); 3 | const scrollClass = "scroll"; 4 | 5 | const $navbar = $("nav"); 6 | const navbarClassDark = "navbar-dark"; 7 | const navbarClassLight = "navbar-light"; 8 | 9 | const $navbtns = $(".nav-btns"); 10 | const navbtnsClassDark = "text-white"; 11 | const navbtnsClassLight = "text-black"; 12 | 13 | const $logo = $("#logo"); 14 | const logoClassLight = "ebook-light"; 15 | 16 | if (this.matchMedia("(min-width: 992px)").matches) { 17 | const scrollY = $(this).scrollTop(); 18 | 19 | if (scrollY > 0) { 20 | $body.addClass(scrollClass); 21 | 22 | $navbar.removeClass(navbarClassDark); 23 | $navbar.addClass(navbarClassLight); 24 | 25 | $navbtns.removeClass(navbtnsClassDark); 26 | $navbtns.addClass(navbtnsClassLight); 27 | 28 | $logo.removeClass(logoClassLight); 29 | } else { 30 | $body.removeClass(scrollClass); 31 | 32 | $navbar.addClass(navbarClassDark); 33 | $navbar.removeClass(navbarClassLight); 34 | 35 | $navbtns.addClass(navbtnsClassDark); 36 | $navbtns.removeClass(navbtnsClassLight); 37 | 38 | $logo.addClass(logoClassLight); 39 | } 40 | } else { 41 | $body.removeClass(scrollClass); 42 | 43 | $navbar.removeClass(navbarClassDark); 44 | $navbar.addClass(navbarClassLight); 45 | 46 | $navbtns.removeClass(navbtnsClassDark); 47 | $navbtns.addClass(navbtnsClassLight); 48 | 49 | $logo.removeClass(logoClassLight); 50 | } 51 | }); 52 | 53 | $(window).on('load', function () { 54 | if (window.location.href.indexOf('?error') > -1) { 55 | $('#fehlerModal').modal(); 56 | } 57 | 58 | $("#login-form").submit(function (e) { 59 | const form = $("#login-form"); 60 | const submit = $("#login-submit"); 61 | const close = $("#login-close") 62 | 63 | if (form[0].checkValidity() === false) { 64 | e.preventDefault(); 65 | e.stopPropagation(); 66 | } else { 67 | submit.prop('disabled', true); 68 | close.prop('disabled', true); 69 | submit.prepend($('')); 70 | } 71 | form.addClass('was-validated'); 72 | }); 73 | 74 | if (!this.matchMedia("(min-width: 992px)").matches) { 75 | $("nav").removeClass("navbar-dark"); 76 | $("nav").addClass("navbar-light"); 77 | 78 | $(".nav-btns").removeClass("text-white"); 79 | $(".nav-btns").addClass("text-black"); 80 | 81 | $("#logo").removeClass("ebook-light"); 82 | } 83 | 84 | $(".page-header .nav-link, .navbar-brand").on("click", function (e) { 85 | e.preventDefault(); 86 | const href = $(this).attr("href"); 87 | $("html, body").animate({ 88 | scrollTop: $(href).offset().top - 71 89 | }, 600); 90 | }); 91 | }); 92 | -------------------------------------------------------------------------------- /src/main/resources/templates/dashboard/dashboard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | OpenKIM - Dashboard 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
    22 |
    23 |
    24 |

    Dashboard

    25 |
    26 | 29 |
    30 |
    31 |
    32 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/main/resources/templates/fragments/general-head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/main/resources/templates/fragments/navbar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/main/resources/templates/konfiguration/konfigServerStatus.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 |
    5 |
    Serverstatus
    6 |
      7 |
    • 8 |
      9 | n.a. 10 | ***Nicht aktiviert*** 11 |
      12 |
      13 | n.a. 14 |    15 | n.a. 16 |    17 | n.a. 18 |    19 | 20 | 21 | 22 | 23 |
      24 |
    • 25 |
    • 26 |
      27 |
      28 | 31 |
      32 |
      33 | 36 |
      37 |
      38 | 41 |
      42 |
      43 |
    • 44 |
    45 |
    46 |
    47 |
    48 |
    49 | 52 | -------------------------------------------------------------------------------- /src/main/resources/templates/konfiguration/notselfsignedFormular.html: -------------------------------------------------------------------------------- 1 |
    2 | 3 |
    4 | 5 | 6 |
    7 | 8 |
    9 | 10 | 11 |
    12 | 13 | 14 | 15 | 18 | 19 | 21 |
    22 | -------------------------------------------------------------------------------- /src/main/resources/templates/konndns/dnsEintragUebersicht.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | Abfrage der DNS-Einträge (A, PTR, SRV - Records) über den Konnektor ID
    5 |
    6 |
    7 | Beim Durchsuchen ist ein Fehler aufgetreten 8 |
    9 |
    10 | Logs/Performancelogs 11 | 12 |
    13 |
    14 |
    15 |
    16 | 17 |
    18 |
    19 | 24 |
    25 |
    26 | 31 |
    32 |
    33 |
    34 |
    35 | 38 |
    39 |
    40 | 41 |  DNS-Einträge vorhanden 42 | 43 |
    44 |
    45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 |
    AdresseNameTypDClassTTL
    Keine DNS-Einträge verfügbar
    AdresseNametypdclassttl
    68 | -------------------------------------------------------------------------------- /src/main/resources/templates/konnntp/ntpUebersicht.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | Abfrage der Systemzeit über den Konnektor ID
    5 |
    6 |
    7 | Beim Durchsuchen ist ein Fehler aufgetreten 8 |
    9 |
    10 | Logs/Performancelogs 11 | 12 |
    13 |
    14 |
    15 |
    16 | 19 |
    20 |
    21 |
    22 |
    23 | ergebnis 24 |
    25 |
    26 | -------------------------------------------------------------------------------- /src/main/resources/templates/log/logDetails.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | OpenKIM - POP3 Gateway Loginhalt 11 | OpenKIM - SMTP Gateway Loginhalt 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
    22 |
    23 |

    POP3 Gateway Loginhalt

    24 |

    SMTP Gateway Loginhalt

    25 |
    26 |
    27 | 28 |
    29 |
    30 | 31 | 32 | -------------------------------------------------------------------------------- /src/main/resources/templates/log/logUebersicht.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | 4 |
    5 |
    6 | 11 |
    12 |
    13 | 14 |  Logs vorhanden 15 | 16 |
    17 |
    18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 34 | 35 | 36 | 37 |
    UuidGeändert
    Keine Logs verfügbar
    31 | ID   32 | Log anzeigen 33 |
    38 | -------------------------------------------------------------------------------- /src/main/resources/templates/log/pop3log.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | OpenKIM - POP3 Gateway Logs 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
    22 |
    23 |
    24 |

    POP3 Gateway Logs

    25 |
    26 | 29 |
    30 |
    31 |
    32 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/main/resources/templates/log/smtplog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | OpenKIM - SMTP Gateway Logs 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
    22 |
    23 |
    24 |

    SMTP Gateway Logs

    25 |
    26 | 29 |
    30 |
    31 |
    32 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/main/resources/templates/minimalkonfiguration/minimalKonfiguration.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | OpenKIM - Konfiguration 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
    22 |
    23 |
    24 |

    Minimale Konfiguration

    25 |
    26 | 29 |
    30 |
    31 |
    32 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/main/resources/templates/pipelineoperationtest/OpenKIM_DecryptTextTest_Formular.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 |
    5 | Entschlüsseln eines Textes mit dem ausgewählten Konnektor 6 |
    7 |
    8 |
    9 |
    10 |
    11 |
    12 | 13 |
    14 | 15 | 18 |
    19 | Bitte angeben! 20 |
    21 |
    22 |
    23 | 24 | 25 |
    26 | Bitte angeben! 27 |
    28 |
    29 |
    30 | 31 | 32 |
    33 | Bitte angeben! 34 |
    35 |
    36 |
    37 |
    38 |
    39 | 40 |
    41 |
    42 |
    43 | 45 | 47 |
    48 |
    49 |
    50 | -------------------------------------------------------------------------------- /src/main/resources/templates/pipelineoperationtest/OpenKIM_DecryptVerifyMailTest_Formular.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 |
    5 | Mit dieser Operation können Sie eine Mail über einen Konnektor entschlüsseln und die Signatur prüfen lassen 6 |
    7 |
    8 |
    9 |
    10 |
    11 |
    12 | 13 | 14 |
    15 | 16 | 19 |
    20 | Bitte angeben! 21 |
    22 |
    23 |
    24 | 25 | 26 |
    27 | Bitte angeben! 28 |
    29 |
    30 |
    31 | 32 | 33 |
    34 | Bitte angeben! 35 |
    36 |
    37 |
    38 |
    39 |
    40 | 41 |
    42 |
    43 |
    44 | 46 | 48 |
    49 |
    50 |
    51 | -------------------------------------------------------------------------------- /src/main/resources/templates/pipelineoperationtest/OpenKIM_EncryptTextTest_Formular.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 |
    5 | Verschlüsseln eines Textes mit dem ausgewählten Konnektor 6 |
    7 |
    8 |
    9 |
    10 |
    11 |
    12 | 13 |
    14 | 15 | 18 |
    19 | Bitte angeben! 20 |
    21 |
    22 |
    23 | 24 | 25 |
    26 | Bitte angeben! 27 |
    28 |
    29 |
    30 | 31 | 32 |
    33 | Bitte angeben! 34 |
    35 |
    36 |
    37 |
    38 |
    39 | 40 |
    41 |
    42 |
    43 | 45 | 47 |
    48 |
    49 |
    50 | -------------------------------------------------------------------------------- /src/main/resources/templates/pipelineoperationtest/OpenKIM_GetJobNumber_Formular.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 |
    5 | Holen einer JobNumber vom Konnektor 6 |
    7 |
    8 |
    9 |
    10 |
    11 |
    12 | 13 |
    14 | 15 | 18 |
    19 | Bitte angeben! 20 |
    21 |
    22 |
    23 |
    24 |
    25 | 26 |
    27 |
    28 |
    29 | 31 | 33 |
    34 |
    35 |
    36 | -------------------------------------------------------------------------------- /src/main/resources/templates/pipelineoperationtest/pipelineoperationtest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | OpenKIM - Testen der Pipeline-Operationen 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
    22 |
    23 |
    24 |

    Testen der Pipeline-Operationen

    25 |
    26 | 29 |
    30 |
    31 |
    32 |
    33 |
    34 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/main/resources/templates/pipelineoperationtest/pipelineoperationtestFormular.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 | Hier können Sie die Operationen testen. Nach Auswahl einer Operation wird ein Formular mit den Eingabemöglichkeiten geladen. 5 |
    6 |
    7 |
    8 |
    9 |
    10 |
    11 |
    12 |
    13 |
    14 | 15 | 19 |
    20 |
    21 |
    22 | 25 |
    26 |
    27 |
    28 | --------------------------------------------------------------------------------