@EnableEncryptableProperties tidak berfungsi

Saya baru mengenal Spring-boot dan mencoba mengenkripsi kata sandi di file application.properties menggunakan perpustakaan jasypt. Saya menggunakan @EnableEncryptableProperties dengan @SpringBootApplication dan mendapatkan kesalahan. Tidak tahu bagaimana mendapatkan resolusinya. Berikut ini adalah ketergantungan yang digunakan di pom.xml saya. Saya menggunakan JDK 7 untuk membangun Aplikasi ini. Jika Anda mengetahui kerangka lain untuk mengenkripsi kata sandi di properti, itu akan dihargai.

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

Kelas utama saya adalah:

@SpringBootApplication
@EnableSwagger2
@EnableJSONDoc
@EnableAsync
@EnableEncryptableProperties

public class App extends SpringBootServletInitializer{
...
}

Dan saya mendapatkan pengecualian berikut:

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 sumber


Jawaban (1)


Pesan tersebut memberitahu Anda bahwa file kelas yang harus dimuat telah dikompilasi untuk Java 8. Jadi, Anda memerlukan JDK8 untuk menggunakan perpustakaan "com.github.ulisesbocchio/jasypt-spring-boot".

Anda dapat melihat awan musim semi. Ini mendukung properti terenkripsi dan hanya membutuhkan Java 7 (afaik)

person joshiste    schedule 06.05.2016
comment
Spring cloud tidak sesuai dengan kebutuhan saya. Untuk menyembunyikan kata sandi saya dari file properti saya memutuskan untuk memindahkannya ke variabel Lingkungan dengan cara ini: spring.datasource.password=${PASSWORD_ENV}. Masalahnya adalah file properti tidak mengkompilasi variabel lingkungan. - person Sohaib Yasir; 12.05.2016