@EnableEncryptableProperties не работает

Я новичок в Spring-boot и пытаюсь зашифровать пароль в файле application.properties с помощью библиотеки jasypt. Я использовал @EnableEncryptableProperties с @SpringBootApplication и получил ошибку. Не знаю, как получить его разрешение. Ниже приведена зависимость, используемая в моем файле pom.xml. Я использую JDK 7 для создания этого приложения. Если вы знаете какую-либо другую структуру для шифрования пароля в свойствах, это будет оценено.

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

Мой основной класс:

@SpringBootApplication
@EnableSwagger2
@EnableJSONDoc
@EnableAsync
@EnableEncryptableProperties

public class App extends SpringBootServletInitializer{
...
}

И я получаю следующее исключение:

java.lang.UnsupportedClassVersionError: com/ulisesbocchio/jasyptspringboot/annotation/EnableEncryptableProperties : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
    at sun.reflect.annotation.AnnotationParser.parseSig(AnnotationParser.java:432)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:238)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:117)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:70)
    at java.lang.Class.initAnnotationsIfNecessary(Class.java:3271)
    at java.lang.Class.getDeclaredAnnotations(Class.java:3248)

person Sohaib Yasir    schedule 06.05.2016    source источник


Ответы (1)


В сообщениях говорится, что файл класса, который должен быть загружен, был скомпилирован для java 8. Поэтому вам нужен JDK8 для использования библиотеки «com.github.ulisesbocchio/jasypt-spring-boot».

Вы можете взглянуть на весеннее облако. Он поддерживает зашифрованные свойства и нуждается только в Java 7 (афаик).

person joshiste    schedule 06.05.2016
comment
Весеннее облако не соответствует моим требованиям. Чтобы скрыть свой пароль из файла свойств, я решил переместить его в переменную среды следующим образом: spring.datasource.password=${PASSWORD_ENV}. Проблема в том, что файлы свойств не компилируют переменную среды. - person Sohaib Yasir; 12.05.2016