Search in sources :

Example 1 with ServiceSecurityManager

use of org.nhindirect.common.rest.ServiceSecurityManager in project nhin-d by DirectProject.

the class DefaultRESTServiceModule method getInitiziedSecurityManager.

protected static ServiceSecurityManager getInitiziedSecurityManager(Provider<ServiceSecurityManager> securityManagerProvider) {
    final ServiceSecurityManager retVal = securityManagerProvider.get();
    retVal.init();
    return retVal;
}
Also used : ServiceSecurityManager(org.nhindirect.common.rest.ServiceSecurityManager)

Example 2 with ServiceSecurityManager

use of org.nhindirect.common.rest.ServiceSecurityManager in project nhin-d by DirectProject.

the class DefaultRESTServiceProvider method getInitiziedSecurityManager.

protected static ServiceSecurityManager getInitiziedSecurityManager(Provider<ServiceSecurityManager> securityManagerProvider) {
    final ServiceSecurityManager retVal = securityManagerProvider.get();
    retVal.init();
    return retVal;
}
Also used : ServiceSecurityManager(org.nhindirect.common.rest.ServiceSecurityManager)

Example 3 with ServiceSecurityManager

use of org.nhindirect.common.rest.ServiceSecurityManager in project nhin-d by DirectProject.

the class NHINDSecurityAndTrustMailet method getServiceSecurityManagerProvider.

/**
	 * Gets a custom service security manager provider.  If this is null, the system will us a default provider.
	 * @return Gets a service security manager provider.
	 */
protected Provider<ServiceSecurityManager> getServiceSecurityManagerProvider() {
    Provider<ServiceSecurityManager> retVal = null;
    String providerClazz = GatewayConfiguration.getConfigurationParam(SecurityAndTrustMailetOptions.SERVICE_SECURITY_MANAGER_PROVIDER, this, "");
    if (providerClazz != null && !providerClazz.isEmpty()) {
        try {
            // create an instance of the provider
            @SuppressWarnings("unchecked") Class<Provider<ServiceSecurityManager>> clazz = (Class<Provider<ServiceSecurityManager>>) getClass().getClassLoader().loadClass(providerClazz);
            retVal = clazz.newInstance();
        } catch (Exception e) {
            LOGGER.warn("Failed to load service security manager provider class " + providerClazz + ": " + e.getMessage(), e);
            retVal = new OpenServiceSecurityManagerProvider();
        }
    } else {
        retVal = new OpenServiceSecurityManagerProvider();
    }
    if (retVal instanceof MailetAwareProvider)
        ((MailetAwareProvider) retVal).setMailet(this);
    return retVal;
}
Also used : ServiceSecurityManager(org.nhindirect.common.rest.ServiceSecurityManager) OpenServiceSecurityManagerProvider(org.nhindirect.common.rest.provider.OpenServiceSecurityManagerProvider) MailetAwareProvider(org.nhindirect.gateway.smtp.provider.MailetAwareProvider) MessagingException(javax.mail.MessagingException) InvocationTargetException(java.lang.reflect.InvocationTargetException) SmtpAgentException(org.nhindirect.gateway.smtp.SmtpAgentException) MalformedURLException(java.net.MalformedURLException) ServiceException(org.nhindirect.common.rest.exceptions.ServiceException) RejectedRecipientDSNCreatorProvider(org.nhindirect.gateway.smtp.dsn.provider.RejectedRecipientDSNCreatorProvider) URLAccessedConfigProvider(org.nhindirect.gateway.smtp.provider.URLAccessedConfigProvider) SecureURLAccessedConfigProvider(org.nhindirect.gateway.smtp.provider.SecureURLAccessedConfigProvider) OpenServiceSecurityManagerProvider(org.nhindirect.common.rest.provider.OpenServiceSecurityManagerProvider) WSSmtpAgentConfigProvider(org.nhindirect.gateway.smtp.provider.WSSmtpAgentConfigProvider) XMLSmtpAgentConfigProvider(org.nhindirect.gateway.smtp.provider.XMLSmtpAgentConfigProvider) MailetAwareProvider(org.nhindirect.gateway.smtp.provider.MailetAwareProvider) KeyStoreProtectionConfigProvider(org.nhindirect.gateway.smtp.provider.KeyStoreProtectionConfigProvider) Provider(com.google.inject.Provider)

Example 4 with ServiceSecurityManager

use of org.nhindirect.common.rest.ServiceSecurityManager in project nhin-d by DirectProject.

the class NHINDSecurityAndTrustMailet method init.

/**
	 * {@inheritDoc}
	 */
@Override
public void init() throws MessagingException {
    LOGGER.info("Initializing NHINDSecurityAndTrustMailet");
    super.init();
    // set the outbound policy for notifications if possible
    try {
        final boolean useOutboundPolicy = Boolean.parseBoolean(GatewayConfiguration.getConfigurationParam(SecurityAndTrustMailetOptions.USE_OUTGOING_POLICY_FOR_INCOMING_NOTIFICATIONS, this, "false"));
        // we don't know if this parameter came from the mailet config or the options manager, so just go ahead and set it at
        // the options manager level because that it where the agent reads the value... no danger that we will overwrite the value that we want...
        // we would just be writing the same value if the information came from the options manager module
        // the mailet parameter gets precedence, so we want to overwrite the options manager if the value exists in the mailet configuration
        OptionsManager.getInstance().setOptionsParameter(new OptionsParameter(OptionsParameter.USE_OUTGOING_POLICY_FOR_INCOMING_NOTIFICATIONS, Boolean.toString(useOutboundPolicy)));
    } catch (Exception e) {
    // log a warning that the parameter could not be set
    }
    // set the rejection policy for tampered routing headers
    try {
        final boolean rejectOnTamperPolicy = Boolean.parseBoolean(GatewayConfiguration.getConfigurationParam(SecurityAndTrustMailetOptions.REJECT_ON_ROUTING_TAMPER, this, "false"));
        OptionsManager.getInstance().setOptionsParameter(new OptionsParameter(OptionsParameter.REJECT_ON_ROUTING_TAMPER, Boolean.toString(rejectOnTamperPolicy)));
    } catch (Exception e) {
    // log a warning that the parameter could not be set
    }
    // set the JCE providers if available
    final String JCEName = GatewayConfiguration.getConfigurationParam(SecurityAndTrustMailetOptions.JCE_PROVIDER_NAME, this, "");
    if (!StringUtils.isEmpty(JCEName))
        OptionsManager.getInstance().setOptionsParameter(new OptionsParameter(OptionsParameter.JCE_PROVIDER, JCEName));
    final String sensitiveJCEName = GatewayConfiguration.getConfigurationParam(SecurityAndTrustMailetOptions.JCE_SENTITIVE_PROVIDER, this, "");
    if (!StringUtils.isEmpty(sensitiveJCEName))
        OptionsManager.getInstance().setOptionsParameter(new OptionsParameter(OptionsParameter.JCE_SENTITIVE_PROVIDER, sensitiveJCEName));
    // Get the configuration URL
    final String configURLParam = getInitParameter(SecurityAndTrustMailetOptions.CONFIG_URL_PARAM);
    if (StringUtils.isEmpty(configURLParam)) {
        LOGGER.error("NHINDSecurityAndTrustMailet Configuration URL cannot be empty or null.");
        throw new MessagingException("NHINDSecurityAndTrustMailet Configuration URL cannot be empty or null.");
    }
    // parse into a URL and validate it is properly formed
    URL configURL = null;
    try {
        configURL = new URL(configURLParam);
    } catch (MalformedURLException ex) {
        LOGGER.error("Invalid configuration URL:" + ex.getMessage(), ex);
        throw new MessagingException("NHINDSecurityAndTrustMailet Configuration URL cannot be empty or null.", ex);
    }
    final Collection<Module> modules = getInitModules();
    Provider<SmtpAgentConfig> configProvider;
    try {
        configProvider = this.getConfigProvider();
        if (configProvider == null)
            configProvider = createCompatConfigProvider(configURL);
        if (configProvider instanceof URLAccessedConfigProvider)
            ((URLAccessedConfigProvider) configProvider).setConfigURL(configURL);
        final Provider<ServiceSecurityManager> srvSecMgr = getServiceSecurityManagerProvider();
        if (configProvider instanceof SecureURLAccessedConfigProvider)
            ((SecureURLAccessedConfigProvider) configProvider).setServiceSecurityManager(srvSecMgr);
        final Provider<KeyStoreProtectionManager> keyStoreManagerProvider = getKeyStoreManagerProvider();
        if (configProvider instanceof KeyStoreProtectionConfigProvider && keyStoreManagerProvider != null)
            ((KeyStoreProtectionConfigProvider) configProvider).setKeyStoreProtectionManger(keyStoreManagerProvider);
        agent = SmtpAgentFactory.createAgent(configURL, configProvider, null, modules);
    } catch (SmtpAgentException e) {
        LOGGER.error("Failed to create the SMTP agent: " + e.getMessage(), e);
        throw new MessagingException("Failed to create the SMTP agent: " + e.getMessage(), e);
    }
    ///CLOVER:OFF
    if (agent == null) {
        LOGGER.error("Failed to create the SMTP agent. Reason unknown.");
        throw new MessagingException("Failed to create the SMTP agent.  Reason unknown.");
    }
    ///CLOVER:ON
    // get the DSN creation options
    // default is RELIABLE_DSN_OPTION
    final String dnsCreateOptions = GatewayConfiguration.getConfigurationParam(SecurityAndTrustMailetOptions.AUTO_DSN_FAILURE_CREATION_PARAM, this, RELIABLE_DSN_OPTION);
    for (String dsnOption : dnsCreateOptions.split(",")) {
        if (dsnOption.equalsIgnoreCase(RELIABLE_DSN_OPTION))
            autoDSNForTimelyAndReliable = true;
        else if (dsnOption.equalsIgnoreCase(GENERAL_DSN_OPTION))
            autoDSNForGeneral = true;
    }
    // set the agent and config in the Gateway state
    final GatewayState gwState = GatewayState.getInstance();
    if (gwState.isAgentSettingManagerRunning())
        gwState.stopAgentSettingsManager();
    gwState.setSmtpAgent(agent);
    gwState.setSmptAgentConfig(SmptAgentConfigFactory.createSmtpAgentConfig(configURL, configProvider, null));
    gwState.startAgentSettingsManager();
    LOGGER.info("NHINDSecurityAndTrustMailet initialization complete.");
}
Also used : MalformedURLException(java.net.MalformedURLException) SmtpAgentException(org.nhindirect.gateway.smtp.SmtpAgentException) MessagingException(javax.mail.MessagingException) KeyStoreProtectionManager(org.nhindirect.common.crypto.KeyStoreProtectionManager) MessagingException(javax.mail.MessagingException) InvocationTargetException(java.lang.reflect.InvocationTargetException) SmtpAgentException(org.nhindirect.gateway.smtp.SmtpAgentException) MalformedURLException(java.net.MalformedURLException) ServiceException(org.nhindirect.common.rest.exceptions.ServiceException) URL(java.net.URL) SmtpAgentConfig(org.nhindirect.gateway.smtp.config.SmtpAgentConfig) OptionsParameter(org.nhindirect.stagent.options.OptionsParameter) ServiceSecurityManager(org.nhindirect.common.rest.ServiceSecurityManager) GatewayState(org.nhindirect.gateway.smtp.GatewayState) SecureURLAccessedConfigProvider(org.nhindirect.gateway.smtp.provider.SecureURLAccessedConfigProvider) URLAccessedConfigProvider(org.nhindirect.gateway.smtp.provider.URLAccessedConfigProvider) SecureURLAccessedConfigProvider(org.nhindirect.gateway.smtp.provider.SecureURLAccessedConfigProvider) Module(com.google.inject.Module) AuditorModule(org.nhindirect.gateway.smtp.module.AuditorModule) KeyStoreProtectionConfigProvider(org.nhindirect.gateway.smtp.provider.KeyStoreProtectionConfigProvider)

Aggregations

ServiceSecurityManager (org.nhindirect.common.rest.ServiceSecurityManager)4 InvocationTargetException (java.lang.reflect.InvocationTargetException)2 MalformedURLException (java.net.MalformedURLException)2 MessagingException (javax.mail.MessagingException)2 ServiceException (org.nhindirect.common.rest.exceptions.ServiceException)2 SmtpAgentException (org.nhindirect.gateway.smtp.SmtpAgentException)2 KeyStoreProtectionConfigProvider (org.nhindirect.gateway.smtp.provider.KeyStoreProtectionConfigProvider)2 SecureURLAccessedConfigProvider (org.nhindirect.gateway.smtp.provider.SecureURLAccessedConfigProvider)2 URLAccessedConfigProvider (org.nhindirect.gateway.smtp.provider.URLAccessedConfigProvider)2 Module (com.google.inject.Module)1 Provider (com.google.inject.Provider)1 URL (java.net.URL)1 KeyStoreProtectionManager (org.nhindirect.common.crypto.KeyStoreProtectionManager)1 OpenServiceSecurityManagerProvider (org.nhindirect.common.rest.provider.OpenServiceSecurityManagerProvider)1 GatewayState (org.nhindirect.gateway.smtp.GatewayState)1 SmtpAgentConfig (org.nhindirect.gateway.smtp.config.SmtpAgentConfig)1 RejectedRecipientDSNCreatorProvider (org.nhindirect.gateway.smtp.dsn.provider.RejectedRecipientDSNCreatorProvider)1 AuditorModule (org.nhindirect.gateway.smtp.module.AuditorModule)1 MailetAwareProvider (org.nhindirect.gateway.smtp.provider.MailetAwareProvider)1 WSSmtpAgentConfigProvider (org.nhindirect.gateway.smtp.provider.WSSmtpAgentConfigProvider)1