}
}
final boolean isIndex;
final String sharedLibrary = OcspConfiguration.getSharedLibrary();
final String configFile = OcspConfiguration.getSunP11ConfigurationFile();
final P11Slot slot;
if ( sharedLibrary!=null && sharedLibrary.length()>0 ) {
final String sSlot;
final String sSlotRead = OcspConfiguration.getSlot();
if ( sSlotRead==null || sSlotRead.length()<1 ) {
throw new ServletException("No slot number given.");
}
final char firstChar = sSlotRead.charAt(0);
if ( firstChar=='i'||firstChar=='I' ) {
sSlot = sSlotRead.substring(1).trim();
isIndex = true;
} else {
sSlot = sSlotRead.trim();
isIndex = false;
}
slot = P11Slot.getInstance(sSlot, sharedLibrary, isIndex, null, this, 0); // no CA, set id to 0 to indicate just one juser
m_log.debug("sharedLibrary is: "+sharedLibrary);
} else if ( configFile!=null && configFile.length()>0 ) {
slot = P11Slot.getInstance(configFile, this, 0); // no CA set caid to 0 to indicate only one user
m_log.debug("Sun P11 configuration file is: "+configFile);
} else {
slot = null;
m_log.debug("No shared P11 library.");
}
final String keystoreDirectoryName = OcspConfiguration.getSoftKeyDirectoryName();
if ( keystoreDirectoryName==null || keystoreDirectoryName.length()<1 ) {
throw new ServletException(intres.getLocalizedMessage("ocsp.errornovalidkeys"));
}
m_log.debug("softKeyDirectoryName is: "+keystoreDirectoryName);
final String webURL = OcspConfiguration.getEjbcawsracliUrl();
final int renewTimeBeforeCertExpiresInSeconds = OcspConfiguration.getRenewTimeBeforeCertExpiresInSeconds();
if ( webURL!=null && webURL.length()>0 ){
if ( renewTimeBeforeCertExpiresInSeconds<0 ) {
throw new ServletException(OcspConfiguration.RENEW_TIMR_BEFORE_CERT_EXPIRES_IN_SECONDS+" must be defined if "+OcspConfiguration.REKEYING_WSURL+" is defined.");
}
final String wsSwKeystorePath = OcspConfiguration.getWsSwKeystorePath();
// Setting system properties to ssl resources to be used
if ( wsSwKeystorePath!=null && wsSwKeystorePath.length()>0 ) {
final String password = OcspConfiguration.getWsSwKeystorePassword();
if ( password==null ) {
throw new ServletException(OcspConfiguration.WSSWKEYSTOREPASSWORD+" must be specified if "+OcspConfiguration.WSSWKEYSTOREPATH+" is specified.");
}
System.setProperty("javax.net.ssl.keyStore", wsSwKeystorePath);
System.setProperty("javax.net.ssl.keyStorePassword", password);
} else if ( slot!=null ) {
System.setProperty("javax.net.ssl.keyStoreType", "pkcs11");
final String sslProviderName = slot.getProvider().getName();
if ( sslProviderName==null ) {
throw new ServletException("Problem with provider. No name.");
}
m_log.debug("P11 provider name for WS: "+sslProviderName);
System.setProperty("javax.net.ssl.keyStoreProvider", sslProviderName);