package at.gv.egovernment.moa.spss.server.invoke;
import iaik.server.modules.cmsverify.CMSSignatureVerificationProfile;
import at.gv.egovernment.moa.spss.MOAException;
import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureRequest;
import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;
import at.gv.egovernment.moa.spss.server.iaik.cmsverify.CMSSignatureVerificationProfileImpl;
import at.gv.egovernment.moa.spss.server.iaik.pki.PKIProfileImpl;
import at.gv.egovernment.moa.spss.server.transaction.TransactionContext;
import at.gv.egovernment.moa.spss.server.transaction.TransactionContextManager;
/**
* A factory to create a CMSSignatureVerificationProfile
from a
* VerifyCMSSignatureRequest
and the current MOA configuration
* data.
*
* @author Patrick Peck
* @version $Id$
*/
public class CMSSignatureVerificationProfileFactory {
/** The VerifyCMSSignatureRequest
to draw profile data from. */
private VerifyCMSSignatureRequest request;
/**
* Create a new CMSSignatureVerificationProfileFactory
.
*
* @param request The VerifyCMSSignatureRequest
to draw profile
* data from.
*/
public CMSSignatureVerificationProfileFactory(VerifyCMSSignatureRequest request) {
this.request = request;
}
/**
* Create a CMSSignatureVerificationProfile
from the given
* request and the current MOA configuration.
*
* @return The CMSSignatureVerificationProfile
for the
* request
, based on the current configuration.
* @throws MOAException An error occurred creating the profile.
*/
public CMSSignatureVerificationProfile createProfile()
throws MOAException {
TransactionContext context =
TransactionContextManager.getInstance().getTransactionContext();
ConfigurationProvider config = context.getConfiguration();
CMSSignatureVerificationProfileImpl profile =
new CMSSignatureVerificationProfileImpl();
String trustProfileID;
// set the certificate validation profile
trustProfileID = request.getTrustProfileId();
profile.setCertificateValidationProfile(
new PKIProfileImpl(config, trustProfileID));
return profile;
}
}