| Age | Commit message (Collapse) | Author | Files | Lines | 
|---|
|  | - Refactor: Move genTimestamp from ITMzsServiceTest to TestUtils
  (because needed in multiple test cases).
- application.yaml: Complete app-client config in config profile. | 
|  | - Put SSL client auth guide into separate file.
- Add download link to apps.egiz.gv.at/releases.
- Put note that cluster mode is not ready. | 
|  |  | 
|  | Upgrade zusemsg 2.2.0 to 2.2.007:
- msg:RelayedViaERV
  - Change from boolean to complex type (ervcode).
  - Move from msg:DeliveryRequestStatusType/Success into
    msg:DeliveryRequestStatusType, which affects Success, Error, and
    PartialSuccess.
  - Was removed from DeliveryNotificationType.
- Change msg:DeliveryNotification/Answer from list to singleton.
- Change msg:DeliveryRequestStatusType/PartialSuccess is to type AnswerType.
- msg:DeliveryRequestStatusType and msg:DeliveryNotificationType
  receive the attribute ID (for signature referencing).
- Add new optional element msg:AustrianAdressesOnly (IndicatorType) to
  DeliveryRequestType/Receiver/(choice sequence).
- Add new optional element ClearingProfilID to DeliveryRequestType/Sender.
- Add new element ERVConfirmedDelivery, which subsitutes msg:Answer
  and extends msg:AbstractOperation
  - Has element ErvCode (also new token256 type).
  - Has element ERVDeliveryTimestamp.
- Add new optional element TargetIdentification of type
  p:IdentificationType to msg:DeliveryNotification/User/ as optional
  element.
- Add new enumeration "System" to msg:DeliveryNotification/User/Role.
- Rename type AustrianLanguageType from
  "AustrianEthicMinorityLanguageType" to "AustrianLanguageType" and
  add "DE" as value.
- msg:Tags were unbounded, now they are limited to 20.
- VersionNumberType: Patch version can have three digits.
Upgrade zusetnvz 2.2.0 to 2.2.006:
- Add StandardMimeTypeList to tnvz:QueryPersonResponse and
  tnvz:QueryAdressabilityResponse.
- Add AllStandardMimeTypes (indicator) to tnvz:PersonResult/Success.
- Add optional msg:MetadataList to tnvz:PersonQueryType/Metadata
  tnvz:AddressabilityQueryType/Metadata.
- Move tnvz:AustrianAdressesOnly to msg namespace.
Carry zusemsg changes into app2mzs interface:
- Switch namespace of AustrianAdressesOnly from tnvz to msg.
- Add new optional element ClearingProfilID to
  mzs:DeliveryRequestType/Sender; Reason: Element was added to zusemsg
  2.2.007.
- Add new choice in mzs:DeliveryNotification to forward new answer
  type msg:ERVConfirmedDelivery to the app.
- Move msg:RelayedViaERV from SuccessType into MessageType (now it's
  available to all types that derive from MessageType).
Accommodate zusemsg/tnvz changes in code base:
- TNVZHelper: Consider StandardMimeTypeList when assessing if
  DeliveryRequest/mimetypes overlap with TNVZ's Accepted Mimetypes.
- Msg2MzsConverter:
  - Put getRelayedViaERV() into all DeliveryStatusRequest replies.
  - Honor that Notification/Answer is Singleton instead of List.
  - Handle case were DeliveryNotification/Answer is of type
    ERVConfirmedDeliveryType.
  - Remove RelayedViaERV from DeliveryNotification as this element is
    not available anymore.
- NotificationResponse: Honor that Notification/Answer is Singleton
  instead of List.
Fix all testcases and sample soap messages to comply with schema changes. | 
|  | - But: Leave MZS Interface at Soap 1.1
- Add ClientFactory.createSOAP11 to ensure that we can talk back to the app. | 
|  | ...since it's a client that communicates with the app. | 
|  | - sed 's/tvnz/tnvz/' | 
|  |  | 
|  |  | 
|  | - Otherwise app wont detect it | 
|  | - Add better descriptions.
- Reorder entries. | 
|  | Reason: Restructure not neccessary. | 
|  | - Add loggin dependency.
- Enable Message Logging for Services and Clients.
- Add message logging config + examples to application.yaml | 
|  |  | 
|  | - Reason: Integration tests need configuration, but config files
  should not be packaged into the final artifact.
- Update paths. | 
|  | - Reason: Now we can run integration tests without the need to set up
  SSL reverse proxy with client certificates. | 
|  |  | 
|  |  | 
|  | Schema Changes:
- Remove mzs:DeliveryRequest/TnvzMetaData because all metadata fields
  can be collected from DeliveryRequest and redundancy is not needed.
Fixes and Refactoring in preprocess:
- MzsDeliveryRequestValidator: Instead of returning false, throw an
  exception when a condition is not met, and explain which condition
  is not met / why it is not met in the exception's message.
- Integrate interface change in ConfigProfileGenerator and
  DeliveryRequestAugmenter.
- Rewrite and simplify DeliveryRequestAugmenter's augmentation.
- ConfigUtil Fixes: Ensure that we do not override the wrong
  parameters while merging. This error appeared in tnvz / msg client,
  connection / receive timeout, key / trust store, and lax hostname
  verification / trust all.
Fix Bugs in Interceptor / SoapUtils:
- Problem: DOM access and information extraction was implemented
  somewhat sloppy.
- SolutioN: Change DOM access interface to access DOM more
  efficiently. Add boundary checks and handle edge cases while
  extracting information from SOAP Messages.
- Test those changes properly.
Testing:
- Implement Delivery Request Flow in ITEndToEndTest.
- Start application on random port instead of fixed port when running
  integration tests.
- Add assertions to tests in ITMzsServiceTest suite.
Others Bug Fixes:
- ServicesConfig: Ensure that mzs service and msg service run on
  different endpoint addresses (/msg and /mzs).
- DeliveryRequestBackend: Throw exception when binary message is
  missing. Don't wrap the exception.
- SaveResponseToFileSink: Wrap Response in JAXB Element (otherwise,
  marshaller does not recognize it) | 
|  |  | 
|  | Per default, integration tests are excluded from build. They can be
included with the `-P integration-test` argument.
- Pom: Add maven profile for integration tests.
- Rename integration tests (add `IT` prefix).
- Move Resources into IT* folders.
- Add MsgClientTest to test suite and add assertions to each test case. | 
|  |  | 
|  | - Interpret `ISignatureVerificationService` response properly (by
  following security layer spec [1] and moaspss handbook [2]).
- Add config flag `moa.spss.is-manifest-check-active`
- Change SignatureVerifier Interface: Remove @return boolean, just
  throw an exception when a validation error occurs. Reason: In case
  the signature cannot be validated, the application always needs the
  reason for the validation error, which requires the verifier to
  throw an exception. In turn, the only valid return value for
  `verify()` becomes `true`, which can be omitted at that point.
- Add testcase for verifying a valid enveloped xml signature
- Remove Certificates that are not needed.
[1] https://www.buergerkarte.at/konzept/securitylayer/spezifikation/20140114/core/core.html
[2] https://apps.egiz.gv.at/handbooks/moa-spss/handbook/handbook/usage/usage.html | 
|  |  | 
|  |  | 
|  | - Relax Validation for now by only validating incoming requests. | 
|  | Problem: Apache CXF does not validate incoming mzs:DeliveryRequests
  automatically. Per default, validation is off (performs better).
  However, (1) we need to validate incoming requests, and (2)
  automated CXF validation requires less maintenance and is
  expected to be more stable than manual validation.
Solution:
- Add @SchemaValidation annotation to @Service.
- Endpoint Configuration: set WsdlLocation and ServiceName (needed
  to prevent parser errors; see [1]).
  Without those, CXF validates against generated classes and not
  against the WSDL spec, and generated classes do not contain format
  restrictions.
Add a testcase with an invalid delivery request ("rejectBothProfile-
  AndCorporateBody") to ensure that the validator works.
[1] https://stackoverflow.com/questions/2231779/cxf-and-validation-schema-restrictions-ignored | 
|  |  | 
|  |  | 
|  | - Reason: Converter does not perform validation | 
|  | - Implement and test conversion from mzs:DeliveryRequest to
  msg:DeliveryRequest with the "convert-pojos-by-hand"-strategy.
  Reason: The chosen strategy benefits from JAXB's strong typing,
  which is useful in this scenario: Differences between msg and mzs
  are nuanced and easy to overlook. The chosen strategy is,
  unfortunately, verbose and could become expensive to maintain.
- Update SameThreadDeliveryPipeline: Integrate tnvz query, conversion,
  and msg query.
- Add MsgClient stub.
tnvz:
- Change TnvzClient stub interface.
- Implement mimetype mismatch check from tnvz Response.
- Put p:Identification from tnvz response into msg:DeliveryRequest.
MZS Schema changes:
- Replace DeliveryRequest/Sender/Person with CorporateBody (because
  thats the only sender that is allowed by zusemsg) and add a
  SenderProfile choice.
- Add ID Attribute to DeliveryRequest/Sender because
  msg/DeliveryRequest/Sender/AbstractSenderPersonType also has an id
  attribute.
- Remove PersonDataType because it's dead code. | 
|  | Add Optional "Config" to MZS Schema:
- Add mzs:DeliveryRequest/Config Element with a
  "PerformQueryPersonRequest" node
- The config element contains parameters that are interpreted by
  moa-zs and not forwarded to the ZD
- The boolean PerformQueryPersonRequest tells moa-zs if moa-zs should
  perform a QueryPersonRequest towards the TNVZ.
- If config is missing, moa-zs augments the delivery request with
  parameters from the app's configuartion or the default configuartion
Other Changes:
- Validate and augment incoming requests with the
  DeliveryPreprocessor.
- Add stub for TlnvzClient.
- Remove some leftover ObjectFactory imports (because of the builder
  they are not needed anymore)
Fixes
- Fixed incorrect API usage of Messageformat.format: format string
  needs an index.
pom.xml
- Add Hamcrest Dependency (for writing more expressive tests)
- Add copy constructor to JAXB Builder
Testing
- Test validation of incoming request
- Refactor testcases to improve readability | 
|  |  | 
|  | - Add Target to CorporateBodyType
- Remove Authority
- make DateOfBirth optional | 
|  | - Important Fix: I forgot to annotate App2MzsService with @Service and
  autowire the App2MzsService object when creating the endpoint
  bean. For this reason, Spring did not autowire the dependencies in
  App2MzsService and I ended up with NullPointerExceptions in the
  testsuite.
- Updated some more namespaces
- Add objectFactory bean. objectfactory is autogenerated via the
  cxf-code-generation plugin, so i cannot annotate it with @Component
  or @Service. Alternative: create the @Bean by myself
- Update the validDeliveryRequest SOAP Message to match the mzs 2.0.0
  scheme. | 
|  |  | 
|  | - Unit test makes a http request to the service
- Fix NPE by adding endpoint.setAdress("/")
- Choose better name for App2MzsService |