Зашифруйте пароль базы данных в файле application.properties - PullRequest
0 голосов
/ 09 ноября 2019

Я следовал руководству по шифрованию пароля файла application.properties, но не могу заставить его работать.

Я поставил зависимость jasypt-spring-boot, класс конфигурации и класс обслуживания.

вот моя зависимость в pom.xml:

<dependency>
  <groupId>com.github.ulisesbocchio</groupId>
  <artifactId>jasypt-spring-boot</artifactId>
  <version>2.0.0</version>
</dependency>

Мой файл application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/virtualschool2? 
serverTimezone=UTC
spring.datasource.username= root
spring.datasource.password=ENC(XgGZCA/2CA3k0+GZOkwjLQvwJaDMM/FE)
spring.jpa.properties.hibernate.dialect = 
org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=validate
spring.jpa.hibernate.naming.physical- 
strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.mvc.view.prefix=WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
spring.session.jdbc.initialize-schema=always

здесь мой класс конфигурации:

@Configuration
@EncryptablePropertySource("spring.datasource.password")
public class AppConfigForJasyptSimple {
}

вот мой класс обслуживания:

@Service
public class PropertyServiceForJasyptSimple {

    @Value("${spring.datasource.password}")
    private String property;

    public String getProperty() {
     return property;
    }
}

А есть этот метод, который я не знаю, куда поставить? :

@Test
public void whenDecryptedPasswordNeeded_GetFromService() {
    System.setProperty("jasypt.encryptor.password", "password");
    PropertyServiceForJasyptSimple service = appCtx
      .getBean(PropertyServiceForJasyptSimple.class);

    assertEquals("kikit31t", service.getProperty());
}

Сообщение об ошибке в консоли: Accus refusé pour l'utilisateur: 'root' @ '@ localhost' (mot de passe: OUI)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...