package at.gv.egovernment.moa.spss.api; import org.apache.commons.discovery.tools.DiscoverClass; import at.gv.egovernment.moa.spss.MOAException; import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureRequest; import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureResponse; import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureRequest; import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureResponse; /** * Interface providing functions for verifying signatures. * * @author Patrick Peck * @version $Id$ */ public abstract class SignatureVerificationService { /** The default implementation class. */ private static final String DEFAULT_IMPLEMENTATION = "at.gv.egovernment.moa.spss.server.invoke.SignatureVerificationServiceImpl"; /** The single instance of this class. */ private static SignatureVerificationService instance = null; /** * Get an instance of the SignatureVerificationService. * * @return A concrete instance of the * SignatureVerificationService. */ public static synchronized SignatureVerificationService getInstance() { if (instance == null) { try { DiscoverClass discover = new DiscoverClass(); instance = (SignatureVerificationService) discover.newInstance( SignatureVerificationService.class, DEFAULT_IMPLEMENTATION); } catch (Exception e) { // this can not happen since we provide a valid default // implementation } } return instance; } /** * Verify a CMS signature. * * @param request Detailed information on the verification that should be * performed. * @return A VerifyCMSSignatureResponse object that contains * information about the performed verification. * @throws MOAException Error in server side MOA module. */ public abstract VerifyCMSSignatureResponse verifyCMSSignature(VerifyCMSSignatureRequest request) throws MOAException; /** * Verfiy an XML Signature. * * @param request information on the verification that should be performed. * @return A VerifyXMLSignatureResponse object that contains * information about the performed verification. * @throws MOAException Error in server side MOA module. */ public abstract VerifyXMLSignatureResponse verifyXMLSignature(VerifyXMLSignatureRequest request) throws MOAException; }