Search in sources :

Example 1 with AuditLogType

use of com.tremolosecurity.provisioning.objects.AuditLogType in project OpenUnison by TremoloSecurity.

the class SendMessageThread method initializeHibernate.

private void initializeHibernate(ApprovalDBType adbt) {
    StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
    Configuration config = new Configuration();
    config.setProperty("hibernate.connection.driver_class", adbt.getDriver());
    config.setProperty("hibernate.connection.password", adbt.getPassword());
    config.setProperty("hibernate.connection.url", adbt.getUrl());
    config.setProperty("hibernate.connection.username", adbt.getUser());
    config.setProperty("hibernate.dialect", adbt.getHibernateDialect());
    if (adbt.isHibernateCreateSchema() == null || adbt.isHibernateCreateSchema()) {
        config.setProperty("hibernate.hbm2ddl.auto", "update");
    }
    config.setProperty("show_sql", "true");
    config.setProperty("hibernate.current_session_context_class", "thread");
    config.setProperty("hibernate.c3p0.max_size", Integer.toString(adbt.getMaxConns()));
    config.setProperty("hibernate.c3p0.maxIdleTimeExcessConnections", Integer.toString(adbt.getMaxIdleConns()));
    if (adbt.getValidationQuery() != null && !adbt.getValidationQuery().isEmpty()) {
        config.setProperty("hibernate.c3p0.testConnectionOnCheckout", "true");
    }
    config.setProperty("hibernate.c3p0.autoCommitOnClose", "true");
    if (adbt.getHibernateProperty() != null) {
        for (ParamType pt : adbt.getHibernateProperty()) {
            config.setProperty(pt.getName(), pt.getValue());
        }
    }
    // config.setProperty("hibernate.c3p0.debugUnreturnedConnectionStackTraces", "true");
    // config.setProperty("hibernate.c3p0.unreturnedConnectionTimeout", "30");
    String validationQuery = adbt.getValidationQuery();
    if (validationQuery == null) {
        validationQuery = "SELECT 1";
    }
    config.setProperty("hibernate.c3p0.preferredTestQuery", validationQuery);
    LoadedConfig lc = null;
    if (adbt.getHibernateConfig() == null || adbt.getHibernateConfig().trim().isEmpty()) {
        JaxbCfgHibernateConfiguration jaxbCfg = new JaxbCfgHibernateConfiguration();
        jaxbCfg.setSessionFactory(new JaxbCfgSessionFactory());
        JaxbCfgMappingReferenceType mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(AllowedApprovers.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(Approvals.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(ApproverAttributes.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(Approvers.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(AuditLogs.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(AuditLogType.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(Escalation.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(Targets.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(UserAttributes.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(Users.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(WorkflowParameters.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        mrt = new JaxbCfgMappingReferenceType();
        mrt.setClazz(Workflows.class.getName());
        jaxbCfg.getSessionFactory().getMapping().add(mrt);
        lc = LoadedConfig.consume(jaxbCfg);
    } else {
        lc = LoadedConfig.baseline();
    }
    StandardServiceRegistry registry = builder.configure(lc).applySettings(config.getProperties()).build();
    try {
        sessionFactory = null;
        if (adbt.getHibernateConfig() == null || adbt.getHibernateConfig().trim().isEmpty()) {
            sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
        } else {
            sessionFactory = new MetadataSources(registry).addResource(adbt.getHibernateConfig()).buildMetadata().buildSessionFactory();
        }
        this.cfgMgr.addThread(new StopableThread() {

            @Override
            public void run() {
            // TODO Auto-generated method stub
            }

            @Override
            public void stop() {
                logger.info("Stopping hibernate");
                sessionFactory.close();
            }
        });
        org.hibernate.Session session = sessionFactory.openSession();
        this.auditLogTypes = new HashMap<String, AuditLogType>();
        List<AuditLogType> alts = session.createCriteria(AuditLogType.class).list();
        if (alts.size() == 0) {
            session.beginTransaction();
            AuditLogType alt = new AuditLogType();
            alt.setName("Add");
            session.save(alt);
            this.auditLogTypes.put("add", alt);
            alt = new AuditLogType();
            alt.setName("Delete");
            session.save(alt);
            this.auditLogTypes.put("delete", alt);
            alt = new AuditLogType();
            alt.setName("Replace");
            session.save(alt);
            this.auditLogTypes.put("replace", alt);
            session.getTransaction().commit();
        } else {
            for (AuditLogType alt : alts) {
                this.auditLogTypes.put(alt.getName().toLowerCase(), alt);
            }
        }
        session.close();
    } catch (Exception e) {
        e.printStackTrace();
        // The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory
        // so destroy it manually.
        StandardServiceRegistryBuilder.destroy(registry);
    }
}
Also used : ApproverAttributes(com.tremolosecurity.provisioning.objects.ApproverAttributes) StandardServiceRegistryBuilder(org.hibernate.boot.registry.StandardServiceRegistryBuilder) Configuration(org.hibernate.cfg.Configuration) JaxbCfgHibernateConfiguration(org.hibernate.boot.jaxb.cfg.spi.JaxbCfgHibernateConfiguration) Escalation(com.tremolosecurity.provisioning.objects.Escalation) MetadataSources(org.hibernate.boot.MetadataSources) Approvals(com.tremolosecurity.provisioning.objects.Approvals) Users(com.tremolosecurity.provisioning.objects.Users) UserAttributes(com.tremolosecurity.provisioning.objects.UserAttributes) AllowedApprovers(com.tremolosecurity.provisioning.objects.AllowedApprovers) Approvers(com.tremolosecurity.provisioning.objects.Approvers) AllowedApprovers(com.tremolosecurity.provisioning.objects.AllowedApprovers) StopableThread(com.tremolosecurity.server.StopableThread) StandardServiceRegistry(org.hibernate.boot.registry.StandardServiceRegistry) WorkflowParameters(com.tremolosecurity.provisioning.objects.WorkflowParameters) AuditLogType(com.tremolosecurity.provisioning.objects.AuditLogType) DynamicWorkflows(com.tremolosecurity.provisioning.workflows.DynamicWorkflows) Workflows(com.tremolosecurity.provisioning.objects.Workflows) AuditLogs(com.tremolosecurity.provisioning.objects.AuditLogs) LoadedConfig(org.hibernate.boot.cfgxml.spi.LoadedConfig) DynamicTargets(com.tremolosecurity.provisioning.targets.DynamicTargets) Targets(com.tremolosecurity.provisioning.objects.Targets) JaxbCfgMappingReferenceType(org.hibernate.boot.jaxb.cfg.spi.JaxbCfgMappingReferenceType) ParamType(com.tremolosecurity.config.xml.ParamType) InvocationTargetException(java.lang.reflect.InvocationTargetException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) InvalidKeyException(java.security.InvalidKeyException) LDAPException(com.novell.ldap.LDAPException) InvalidAlgorithmParameterException(java.security.InvalidAlgorithmParameterException) SocketException(java.net.SocketException) SQLException(java.sql.SQLException) SchedulerException(org.quartz.SchedulerException) IOException(java.io.IOException) MessagingException(javax.mail.MessagingException) IllegalBlockSizeException(javax.crypto.IllegalBlockSizeException) JMSException(javax.jms.JMSException) JAXBException(javax.xml.bind.JAXBException) FileNotFoundException(java.io.FileNotFoundException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) NoSuchPaddingException(javax.crypto.NoSuchPaddingException) BadPaddingException(javax.crypto.BadPaddingException) JaxbCfgHibernateConfiguration(org.hibernate.boot.jaxb.cfg.spi.JaxbCfgHibernateConfiguration) JaxbCfgSessionFactory(org.hibernate.boot.jaxb.cfg.spi.JaxbCfgHibernateConfiguration.JaxbCfgSessionFactory)

Aggregations

LDAPException (com.novell.ldap.LDAPException)1 ParamType (com.tremolosecurity.config.xml.ParamType)1 AllowedApprovers (com.tremolosecurity.provisioning.objects.AllowedApprovers)1 Approvals (com.tremolosecurity.provisioning.objects.Approvals)1 ApproverAttributes (com.tremolosecurity.provisioning.objects.ApproverAttributes)1 Approvers (com.tremolosecurity.provisioning.objects.Approvers)1 AuditLogType (com.tremolosecurity.provisioning.objects.AuditLogType)1 AuditLogs (com.tremolosecurity.provisioning.objects.AuditLogs)1 Escalation (com.tremolosecurity.provisioning.objects.Escalation)1 Targets (com.tremolosecurity.provisioning.objects.Targets)1 UserAttributes (com.tremolosecurity.provisioning.objects.UserAttributes)1 Users (com.tremolosecurity.provisioning.objects.Users)1 WorkflowParameters (com.tremolosecurity.provisioning.objects.WorkflowParameters)1 Workflows (com.tremolosecurity.provisioning.objects.Workflows)1 DynamicTargets (com.tremolosecurity.provisioning.targets.DynamicTargets)1 DynamicWorkflows (com.tremolosecurity.provisioning.workflows.DynamicWorkflows)1 StopableThread (com.tremolosecurity.server.StopableThread)1 FileNotFoundException (java.io.FileNotFoundException)1 IOException (java.io.IOException)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1