...
This task will be implemented in Release x.x.x. of assertion-validator. Here is the JIRA:
Jira Legacy | ||||||||
---|---|---|---|---|---|---|---|---|
|
Design
The diagram shows how the AssertionAttributeValidator uses the ServiceLoader to load the National implementation of PolicyManager.
...
We use the same approach for the Integration between Protocol Teminators and the National Connector. Please refer to that page for more information about the ServiceLoader.
Interface
Here is a first shot at the Policy Manager public interface.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
public interface PolicyManagerInterface {
void XSPASubjectValidatorForHCP(Assertion assertion) throws MissingFieldException, InvalidFieldException;
void XSPASubjectValidatorForTRC(Assertion assertion) throws MissingFieldException, InvalidFieldException;
void XSPARoleValidator(Assertion assertion) throws MissingFieldException, InvalidFieldException;
void OnBehalfOfValidator(Assertion assertion) throws MissingFieldException, InvalidFieldException;
void HealthcareFacilityValidator(Assertion assertion) throws MissingFieldException, InvalidFieldException;
void PurposeOfUseValidator(Assertion assertion) throws MissingFieldException, InsufficientRightsException;
void XSPALocalityValidator(Assertion assertion) throws MissingFieldException, InvalidFieldException;
void XCPDPermissionValidator(Assertion assertion) throws InsufficientRightsException;
void XCAPermissionValidatorPS(Assertion assertion) throws InsufficientRightsException;
void XCAPermissionValidatorEP(Assertion assertion) throws InsufficientRightsException;
void XDRPermissionValidatorED(Assertion assertion) throws InsufficientRightsException;
void XDRPermissionValidatorConsent(Assertion assertion) throws InsufficientRightsException;
} |
We need urgent expert input about which methods need to be localized and which are applicable for all countries!!
Packaging
It is the responsibility of the PN to develop scripts to package the National implementation. The recommended approach is to package the class (and any supporting classes) into a jar file. This jar file must be bundled into the lib directory in the epsos-server.war. The Swedish team have Maven scripts which fetch the war from joinup, extract, add the National jars and then create a new war.