【问题标题】:Not able to run spring boot application - rsa.crypto.RsaSecretEncryptor not present无法运行 Spring Boot 应用程序 - rsa.crypto.RsaSecretEncryptor 不存在
【发布时间】:2020-05-22 04:15:24
【问题描述】:

过去一周我一直在开发一个 Spring Boot 应用程序,它工作得很好。但最近我面临这个错误。此外,我没有使用任何类型的密钥库或任何与 rsa 相关的东西,我是 Spring Boot 框架的新手。无法调试此错误 => rsa.crypto.RsaSecretEncryptor 不存在

错误堆栈跟踪:

*Caused by: java.lang.TypeNotPresentException: Type org.springframework.security.rsa.crypto.RsaSecretEncryptor not present**
    at sun.reflect.annotation.TypeNotPresentExceptionProxy.generateException (TypeNotPresentExceptionProxy.java:46)
    at sun.reflect.annotation.AnnotationInvocationHandler.invoke (AnnotationInvocationHandler.java:86)
    at com.sun.proxy.$Proxy28.value (Unknown Source)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.springframework.core.annotation.AnnotationUtils.getAnnotationAttributes (AnnotationUtils.java:585)
    at org.springframework.core.annotation.AnnotatedElementUtils$5.process (AnnotatedElementUtils.java:122)
    at org.springframework.core.annotation.AnnotatedElementUtils$5.process (AnnotatedElementUtils.java:118)
    at org.springframework.core.annotation.AnnotatedElementUtils.doProcess (AnnotatedElementUtils.java:195)
    at org.springframework.core.annotation.AnnotatedElementUtils.process (AnnotatedElementUtils.java:162)
    at org.springframework.core.annotation.AnnotatedElementUtils.getAllAnnotationAttributes (AnnotatedElementUtils.java:118)
    at org.springframework.core.type.StandardAnnotationMetadata.getAllAnnotationAttributes (StandardAnnotationMetadata.java:123)
    at org.springframework.boot.autoconfigure.condition.OnClassCondition.getAttributes (OnClassCondition.java:84)
    at org.springframework.boot.autoconfigure.condition.OnClassCondition.getMatchOutcome (OnClassCondition.java:48)
    at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches (SpringBootCondition.java:45)
    at org.springframework.context.annotation.ConditionEvaluator.shouldSkip (ConditionEvaluator.java:102)
    at org.springframework.context.annotation.ConditionEvaluator.shouldSkip (ConditionEvaluator.java:81)
    at org.springframework.context.annotation.ConditionEvaluator.shouldSkip (ConditionEvaluator.java:64)
    at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.registerBean (AnnotatedBeanDefinitionReader.java:140)
    at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.registerBean (AnnotatedBeanDefinitionReader.java:127)
    at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.register (AnnotatedBeanDefinitionReader.java:122)
    at org.springframework.boot.BeanDefinitionLoader.load (BeanDefinitionLoader.java:159)
    at org.springframework.boot.BeanDefinitionLoader.load (BeanDefinitionLoader.java:135)
    at org.springframework.boot.BeanDefinitionLoader.load (BeanDefinitionLoader.java:127)
    at org.springframework.boot.SpringApplication.load (SpringApplication.java:620)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:315)
    at org.springframework.boot.builder.SpringApplicationBuilder.run (SpringApplicationBuilder.java:139)
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext (BootstrapApplicationListener.java:125)
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent (BootstrapApplicationListener.java:75)
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent (BootstrapApplicationListener.java:1)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener (SimpleApplicationEventMulticaster.java:151)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:128)
    at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent (EventPublishingRunListener.java:100)
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared (EventPublishingRunListener.java:59)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:286)
    at org.springframework.boot.builder.SpringApplicationBuilder.run (SpringApplicationBuilder.java:139)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.springframework.boot.maven.RunMojo$LaunchRunner.run (RunMojo.java:408)
    at java.lang.Thread.run (Thread.java:834)
Caused by: java.lang.ClassNotFoundException: org.springframework.security.rsa.crypto.RsaSecretEncryptor
    at java.net.URLClassLoader.findClass (URLClassLoader.java:471)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:588)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:521)
    at java.lang.Class.forName0 (Native Method)
    at java.lang.Class.forName (Class.java:398)
    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:440)
    at sun.reflect.annotation.AnnotationParser.parseClassValue (AnnotationParser.java:421)
    at sun.reflect.annotation.AnnotationParser.lambda$parseClassArray$0 (AnnotationParser.java:719)
    at sun.reflect.annotation.AnnotationParser.parseArrayElements (AnnotationParser.java:747)
    at sun.reflect.annotation.AnnotationParser.parseClassArray (AnnotationParser.java:718)
    at sun.reflect.annotation.AnnotationParser.parseArray (AnnotationParser.java:532)
    at sun.reflect.annotation.AnnotationParser.parseMemberValue (AnnotationParser.java:356)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation2 (AnnotationParser.java:287)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2 (AnnotationParser.java:121)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations (AnnotationParser.java:73)
    at java.lang.Class.createAnnotationData (Class.java:3757)
    at java.lang.Class.annotationData (Class.java:3746)
    at java.lang.Class.getDeclaredAnnotations (Class.java:3713)
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext (BootstrapApplicationListener.java:117)
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent (BootstrapApplicationListener.java:75)
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent (BootstrapApplicationListener.java:1)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener (SimpleApplicationEventMulticaster.java:151)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:128)
    at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent (EventPublishingRunListener.java:100)
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared (EventPublishingRunListener.java:59)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:286)
    at org.springframework.boot.builder.SpringApplicationBuilder.run (SpringApplicationBuilder.java:139)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.springframework.boot.maven.RunMojo$LaunchRunner.run (RunMojo.java:408)
    at java.lang.Thread.run (Thread.java:834)

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.xyz</groupId>
    <artifactId>srs-v2</artifactId>
    <packaging>jar</packaging>

    <name>srs-v2</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.0.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <retrofit.version>2.3.0</retrofit.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-bom</artifactId>
                <version>1.10.50</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>1.2.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-parent</artifactId>
                <version>1.0.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <dependencies>

        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
            <version>2.17</version>
        </dependency>

        <dependency>
            <groupId>com.qubole.qds-sdk-java</groupId>
            <artifactId>qds-sdk-java</artifactId>
            <version>1.0.0</version>
        </dependency>

        <!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency> -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jersey</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-cypher-compiler-2.1</artifactId>
            <version>2.1.8</version>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>19.0</version>
        </dependency>
        <dependency>
            <groupId>com.goldmansachs</groupId>
            <artifactId>gs-collections-api</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-junit</artifactId>
            <version>2.0.0.0</version>
        </dependency>
        <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>8.4-702.jdbc4</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>${hibernate.version}</version>
        </dependency>

        <dependency>
            <groupId>org.mapdb</groupId>
            <artifactId>mapdb</artifactId>
            <version>1.0.8</version>
        </dependency>
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-cypher-compiler-2.2</artifactId>
            <version>2.2.5</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-s3</artifactId>
        </dependency>


        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-oauth2</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-jwt</artifactId>
        </dependency>

        <dependency>
            <groupId>com.univocity</groupId>
            <artifactId>univocity-parsers</artifactId>
            <version>2.0.0</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->

        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </dependency>


        <dependency>
            <groupId>com.facebook.presto</groupId>
            <artifactId>presto-jdbc</artifactId>
            <version>0.214</version>
        </dependency>
        <dependency>
            <groupId>io.prometheus</groupId>
            <artifactId>simpleclient</artifactId>
            <version>0.4.0</version>
        </dependency>

        <dependency>
            <groupId>io.prometheus</groupId>
            <artifactId>simpleclient_spring_boot</artifactId>
            <version>0.4.0</version>
        </dependency>

        <dependency>
            <groupId>io.prometheus</groupId>
            <artifactId>simpleclient_hotspot</artifactId>
            <version>0.4.0</version>
        </dependency>

        <dependency>
            <groupId>io.prometheus</groupId>
            <artifactId>simpleclient_dropwizard</artifactId>
            <version>0.4.0</version>
        </dependency>

        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>converter-gson</artifactId>
            <version>${retrofit.version}</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>retrofit</artifactId>
            <version>${retrofit.version}</version>
        </dependency>





        <!-- END: Retrofit Dependencies -->


        <dependency>
            <!-- JSON Web Token Support -->
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.7.0</version>
        </dependency>

        <dependency>
            <groupId>com.okta.jwt</groupId>
            <artifactId>okta-jwt-verifier</artifactId>
            <version>${okta-jwt.version}</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/com.okta.jwt/okta-jwt-verifier -->
        <dependency>
            <groupId>com.okta.jwt</groupId>
            <artifactId>okta-jwt-verifier</artifactId>
            <version>0.4.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.okta.jwt/okta-jwt-verifier-impl -->
        <dependency>
            <groupId>com.okta.jwt</groupId>
            <artifactId>okta-jwt-verifier-impl</artifactId>
            <version>0.4.0</version>
        </dependency>






    </dependencies>
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


    <version>1.0</version>
</project>

【问题讨论】:

  • 我的猜测是,因为它工作你添加了一些使用 rsa 的类。尝试注释掉 pom 中的安全部分,看看哪些类在更改后无法编译。错误的答案就在那里。注释掉这个 pom 部分 org.springframework.securityspring-security-jwt
  • 嘿! @DannyFried 我没有添加任何课程或没有做任何修改。是否任何弹簧安全依赖项都需要这种依赖项?我也厌倦了从 m2 中删除所有 jar 并重新安装它仍然没有运气。

标签: java spring-boot spring-security spring-cloud


【解决方案1】:

问题出在 OpenJDK 版本上。较新的版本(> 8)有安全问题。我将我的 OpenJDK 版本从 12 更改为 8,它工作得很好。

【讨论】:

    猜你喜欢
    • 2020-10-03
    • 2018-05-13
    • 2018-05-08
    • 2021-08-12
    • 2017-04-19
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2020-11-06
    相关资源
    最近更新 更多