Ясыпт и зимовка

Привет, я хотел зашифровать ключ, который у меня есть для базы данных в файле hibernate.cfg.xml, и я обнаружил, что Jasypt может это сделать, я следовал этим урокам.

http://www.jasypt.org/hibernate.html

http://java-rd.blogspot.mx/2012/07/encrypting-hibernate -configuration-file.html

Я использовал encrypt.bat и ввод параметров для возврата ключа зашифрованной базы данных, конфигурация моего файла hibernate.cfg.xml оставлена таким образом.

org.jasypt.hibernate4.connectionprovider.EncryptedPasswordDriverManagerConnectionProvider

configurationHibernateEncryptor 
    org.hibernate.dialect.MySQLDialect 
    com.mysql.jdbc.Driver 
    jdbc:mysql://localhost:3306/aprendiendojsf?autoReconnect=true 
    root 
    ENC(lhFCMXdRkAw7Cz5JU17lvg==) 
    true 
    thread

Мой класс HibernateUtil таким образом

public class HibernateUtil { 

private static SessionFactory sessionFactory = null; 

static { 
    try { 
        // Create the SessionFactory from standard (hibernate.cfg.xml)  
        // config file. 
        sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); 

        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); 
        encryptor.setAlgorithm("PBEWithMD5AndDES"); 
        encryptor.setPassword("clave"); 
        HibernatePBEEncryptorRegistry registry = HibernatePBEEncryptorRegistry.getInstance(); 
        registry.registerPBEStringEncryptor("configurationHibernateEncryptor", encryptor); 
        } catch (Throwable ex) { 
        // Log the exception.  
        System.err.println("Initial SessionFactory creation failed." + ex); 
        ex.printStackTrace(); 
    } 
} 

public static SessionFactory getSessionFactory() { 
    return sessionFactory; 
} 

}

Мой проект корректно поднимается, но во время входа в систему это отображается в журнале:

INFO: HHH000046: Connection properties: {user=root, encryptor_registered_name=configurationHibernateEncryptor, password=****} 

WARN: HHH000342: Could not obtain connection to query metadata : Could not create connection to database server. Attempted reconnect 3 times. Giving up.

Я не понимаю, что может происходить, у меня уже есть 3 дня на это, и я не могу дать это, я надеюсь, что вы можете мне помочь, это мне очень поможет!

Я внес следующее изменение в Класс Hibernate Util, который мне предложили.

public class HibernateUtil { 

private static SessionFactory sessionFactory = null;


static { 
try { 



  EnvironmentStringPBEConfig envConfig = new EnvironmentStringPBEConfig();
  envConfig.setPasswordEnvName(“DB_SIMETRIC_KEY”);

  sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); 

  StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); 
  encryptor.setAlgorithm("PBEWithMD5AndDES"); 
  encryptor.setConfig(envConfig); 

  HibernatePBEEncryptorRegistry registry = HibernatePBEEncryptorRegistry.getInstance(); 
  registry.registerPBEStringEncryptor("configurationHibernateEncryptor", encryptor); 
} catch (Throwable ex) { 
  // Log the exception.  
  System.err.println("Initial SessionFactory creation failed." + ex); 
  ex.printStackTrace(); 
} 


} 
public static SessionFactory getSessionFactory() { 
return sessionFactory; 


 } 
}

Однако консоль Apache выдает мне то же самое.

WARN: HHH000342: Could not obtain connection to query metadata : Could not create connection to database server. Attempted reconnect 3 times. Giving up.

Я думал, что установка была проще.

0
задан 07.04.2016, 08:49
1 ответ

Ты должен определять переменную на уровне системы со стоимостью для того, чтобы он реализовал ее encriptaciГіn password базы данных. Когда ты использовал encript.bat introduciste стоимость реализовывать, чтобы получать lhFCMXdRkAw7Cz5JU17lvg == посредством указанного алгоритма PBEWithMD5AndDES.

Например, я помещаю переменную системы с этой стоимостью, названный DB_SIMETRIC_KEY=tu стоимость .

Сейчас класс переходит к тому, чтобы быть таким:

public class HibernateUtil { 

  private static SessionFactory sessionFactory = null; 

  static { 
    try { 

      EnvironmentStringPBEConfig envConfig = new EnvironmentStringPBEConfig();
      envConfig.setPasswordEnvName(“DB_SIMETRIC_KEY”);

      sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); 

      StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); 
      encryptor.setAlgorithm("PBEWithMD5AndDES"); 
      encryptor.setConfig(envConfig); 

      HibernatePBEEncryptorRegistry registry = HibernatePBEEncryptorRegistry.getInstance(); 
      registry.registerPBEStringEncryptor("configurationHibernateEncryptor", encryptor); 
    } catch (Throwable ex) { 
      // Log the exception.  
      System.err.println("Initial SessionFactory creation failed." + ex); 
      ex.printStackTrace(); 
    } 
  } 

  public static SessionFactory getSessionFactory() { 
    return sessionFactory; 
  } 

}

Он Загружает ты aplicaciГіn и помести стоимость переменной системы в null. Этой формы lhFCMXdRkAw7Cz5JU17lvg == будет desencriptado из-за Вашего ключа simГ©trica DB_SIMETRIC_KEY получая стоимость password, с которым ты присоединяешься.

0
ответ дан 24.11.2019, 14:38