我遵循了一个教程来加密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());
}
控制台中的错误消息: 帐户拒绝使用:'root'@'@ localhost'(密码:OUI)