복붙노트

[SPRING] Spring 부트를 1.3.7에서 1.4.0으로 업그레이드하면 AuthenticatorBase.getJaspicProvider에서 NullPointerException이 발생합니다.

SPRING

Spring 부트를 1.3.7에서 1.4.0으로 업그레이드하면 AuthenticatorBase.getJaspicProvider에서 NullPointerException이 발생합니다.

이것은 spring-boot-startter-jersey와 함께 제공되는 tomcat-embed-core 버전 8.5.4에 의해 다소 발생합니다. 모든 통합 테스트에서 다음과 같은 오류가 발생합니다. tomcat-embed-core 버전 8.0.36을 사용하기 위해 pom을 덮어 쓰는 경우에만 작동합니다. 이상한 점은 내가받는 유일한 오류 메시지입니다.

java.lang.NullPointerException: null
    at org.apache.catalina.authenticator.AuthenticatorBase.getJaspicProvider(AuthenticatorBase.java:1140)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:431)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

내 의존성 트리는 다음과 같습니다.

[INFO] --- maven-dependency-plugin:2.10:tree (default-cli) @ sample-services ---
[INFO] com.sample:sample-services:jar:1.0.0-SNAPSHOT
[INFO] +- com.sample:sample-customer:jar:1.0.0-SNAPSHOT:compile
[INFO] |  +- com.sample:sample-core:jar:1.0.0-SNAPSHOT:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.4.0.RELEASE:compile
[INFO] |  |  |  +- org.springframework.boot:spring-boot-starter-aop:jar:1.4.0.RELEASE:compile
[INFO] |  |  |  |  \- org.aspectj:aspectjweaver:jar:1.8.9:compile
[INFO] |  |  |  +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.4.0.RELEASE:compile
[INFO] |  |  |  |  +- org.apache.tomcat:tomcat-jdbc:jar:8.5.4:compile
[INFO] |  |  |  |  |  \- org.apache.tomcat:tomcat-juli:jar:8.5.4:compile
[INFO] |  |  |  |  \- org.springframework:spring-jdbc:jar:4.3.2.RELEASE:compile
[INFO] |  |  |  +- org.hibernate:hibernate-core:jar:5.0.9.Final:compile
[INFO] |  |  |  |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] |  |  |  |  +- antlr:antlr:jar:2.7.7:compile
[INFO] |  |  |  |  +- org.jboss:jandex:jar:2.0.0.Final:compile
[INFO] |  |  |  |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  |  |  |  |  \- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] |  |  |  |  \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
[INFO] |  |  |  +- org.hibernate:hibernate-entitymanager:jar:5.0.9.Final:compile
[INFO] |  |  |  +- javax.transaction:javax.transaction-api:jar:1.2:compile
[INFO] |  |  |  +- org.springframework.data:spring-data-jpa:jar:1.10.2.RELEASE:compile
[INFO] |  |  |  |  \- org.springframework:spring-orm:jar:4.3.2.RELEASE:compile
[INFO] |  |  |  \- org.springframework:spring-aspects:jar:4.3.2.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.4.0.RELEASE:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.1.7:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.1.7:compile
[INFO] |  |  |  +- org.slf4j:jcl-over-slf4j:jar:1.7.21:compile
[INFO] |  |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.21:compile
[INFO] |  |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.21:compile
[INFO] |  |  +- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] |  |  +- com.h2database:h2:jar:1.4.192:compile
[INFO] |  |  +- org.postgresql:postgresql:jar:9.4.1209.jre7:compile
[INFO] |  |  +- javax:javaee-api:jar:7.0:compile
[INFO] |  |  |  \- com.sun.mail:javax.mail:jar:1.5.5:compile
[INFO] |  |  |     \- javax.activation:activation:jar:1.1:compile
[INFO] |  |  +- org.apache.commons:commons-lang3:jar:3.4:compile
[INFO] |  |  +- commons-codec:commons-codec:jar:1.10:compile
[INFO] |  |  +- org.apache.httpcomponents:httpcore:jar:4.4.5:compile
[INFO] |  |  +- org.joda:joda-money:jar:0.10.0:compile
[INFO] |  |  \- com.sun.jna:jna:jar:3.0.9:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-data-elasticsearch:jar:1.4.0.RELEASE:compile
[INFO] |  |  \- org.springframework.data:spring-data-elasticsearch:jar:2.0.2.RELEASE:compile
[INFO] |  |     +- org.springframework:spring-tx:jar:4.3.2.RELEASE:compile
[INFO] |  |     +- org.springframework.data:spring-data-commons:jar:1.12.2.RELEASE:compile
[INFO] |  |     +- commons-lang:commons-lang:jar:2.6:compile
[INFO] |  |     \- org.elasticsearch:elasticsearch:jar:2.3.4:compile
[INFO] |  |        +- org.apache.lucene:lucene-core:jar:5.5.0:compile
[INFO] |  |        +- org.apache.lucene:lucene-backward-codecs:jar:5.5.0:compile
[INFO] |  |        +- org.apache.lucene:lucene-analyzers-common:jar:5.5.0:compile
[INFO] |  |        +- org.apache.lucene:lucene-queries:jar:5.5.0:compile
[INFO] |  |        +- org.apache.lucene:lucene-memory:jar:5.5.0:compile
[INFO] |  |        +- org.apache.lucene:lucene-highlighter:jar:5.5.0:compile
[INFO] |  |        +- org.apache.lucene:lucene-queryparser:jar:5.5.0:compile
[INFO] |  |        |  \- org.apache.lucene:lucene-sandbox:jar:5.5.0:compile
[INFO] |  |        +- org.apache.lucene:lucene-suggest:jar:5.5.0:compile
[INFO] |  |        |  \- org.apache.lucene:lucene-misc:jar:5.5.0:compile
[INFO] |  |        +- org.apache.lucene:lucene-join:jar:5.5.0:compile
[INFO] |  |        |  \- org.apache.lucene:lucene-grouping:jar:5.5.0:compile
[INFO] |  |        +- org.apache.lucene:lucene-spatial:jar:5.5.0:compile
[INFO] |  |        |  +- org.apache.lucene:lucene-spatial3d:jar:5.5.0:compile
[INFO] |  |        |  \- com.spatial4j:spatial4j:jar:0.5:compile
[INFO] |  |        +- org.elasticsearch:securesm:jar:1.0:compile
[INFO] |  |        +- com.carrotsearch:hppc:jar:0.7.1:compile
[INFO] |  |        +- org.joda:joda-convert:jar:1.2:compile
[INFO] |  |        +- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:jar:2.8.1:compile
[INFO] |  |        +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.8.1:compile
[INFO] |  |        +- io.netty:netty:jar:3.10.5.Final:compile
[INFO] |  |        +- com.ning:compress-lzf:jar:1.0.2:compile
[INFO] |  |        +- com.tdunning:t-digest:jar:3.0:compile
[INFO] |  |        +- org.hdrhistogram:HdrHistogram:jar:2.1.6:compile
[INFO] |  |        +- commons-cli:commons-cli:jar:1.3.1:compile
[INFO] |  |        \- com.twitter:jsr166e:jar:1.1.0:compile
[INFO] |  +- com.google.guava:guava:jar:19.0:compile
[INFO] |  +- org.apache.httpcomponents:httpclient:jar:4.5.2:compile
[INFO] |  +- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] |  +- commons-io:commons-io:jar:2.5:compile
[INFO] |  +- net.sf.uadetector:uadetector-core:jar:0.9.22:compile
[INFO] |  |  +- net.sf.qualitycheck:quality-check:jar:1.3:compile
[INFO] |  |  +- com.google.code.findbugs:jsr305:jar:2.0.3:compile
[INFO] |  |  \- javax.annotation:jsr250-api:jar:1.0:compile
[INFO] |  +- net.sf.uadetector:uadetector-resources:jar:2014.10:compile
[INFO] |  \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.8.1:compile
[INFO] +- com.sample:sample-messaging:jar:1.0.0-SNAPSHOT:compile
[INFO] |  +- com.amazonaws:aws-java-sdk-sns:jar:1.11.24:compile
[INFO] |  \- com.amazonaws:aws-java-sdk-sqs:jar:1.11.24:compile
[INFO] +- org.springframework.boot:spring-boot-starter-jersey:jar:1.4.0.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.4.0.RELEASE:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.17:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.4.0.RELEASE:compile
[INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.4:compile
[INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.4:compile
[INFO] |  |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.4:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-validation:jar:1.4.0.RELEASE:compile
[INFO] |  +- org.springframework:spring-web:jar:4.3.2.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-aop:jar:4.3.2.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-beans:jar:4.3.2.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-context:jar:4.3.2.RELEASE:compile
[INFO] |  +- org.glassfish.jersey.core:jersey-server:jar:2.23.1:compile
[INFO] |  |  +- org.glassfish.jersey.core:jersey-client:jar:2.23.1:compile
[INFO] |  |  +- org.glassfish.jersey.media:jersey-media-jaxb:jar:2.23.1:compile
[INFO] |  |  +- javax.annotation:javax.annotation-api:jar:1.2:compile
[INFO] |  |  +- org.glassfish.hk2:hk2-api:jar:2.4.0-b34:compile
[INFO] |  |  |  +- org.glassfish.hk2:hk2-utils:jar:2.4.0-b34:compile
[INFO] |  |  |  \- org.glassfish.hk2.external:aopalliance-repackaged:jar:2.4.0-b34:compile
[INFO] |  |  \- org.glassfish.hk2:hk2-locator:jar:2.4.0-b34:compile
[INFO] |  |     \- org.javassist:javassist:jar:3.20.0-GA:compile
[INFO] |  +- org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.23.1:compile
[INFO] |  +- org.glassfish.jersey.containers:jersey-container-servlet:jar:2.23.1:compile
[INFO] |  +- org.glassfish.jersey.ext:jersey-spring3:jar:2.23.1:compile
[INFO] |  |  +- org.glassfish.hk2:hk2:jar:2.4.0-b34:compile
[INFO] |  |  |  +- org.glassfish.hk2:config-types:jar:2.4.0-b34:compile
[INFO] |  |  |  +- org.glassfish.hk2:hk2-core:jar:2.4.0-b34:compile
[INFO] |  |  |  +- org.glassfish.hk2:hk2-config:jar:2.4.0-b34:compile
[INFO] |  |  |  +- org.glassfish.hk2:hk2-runlevel:jar:2.4.0-b34:compile
[INFO] |  |  |  \- org.glassfish.hk2:class-model:jar:2.4.0-b34:compile
[INFO] |  |  |     \- org.glassfish.hk2.external:asm-all-repackaged:jar:2.4.0-b34:compile
[INFO] |  |  \- org.glassfish.hk2:spring-bridge:jar:2.4.0-b34:compile
[INFO] |  \- org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.23.1:compile
[INFO] |     +- org.glassfish.jersey.ext:jersey-entity-filtering:jar:2.23.1:compile
[INFO] |     +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.8.1:compile
[INFO] |     \- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.8.1:compile
[INFO] |        \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.8.1:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.8.1:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-core:jar:2.8.1:compile
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.8.1:compile
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.4.0.RELEASE:compile
[INFO] |  +- org.hibernate:hibernate-validator:jar:5.2.4.Final:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile
[INFO] |  |  \- com.fasterxml:classmate:jar:1.3.1:compile
[INFO] |  \- org.springframework:spring-webmvc:jar:4.3.2.RELEASE:compile
[INFO] |     \- org.springframework:spring-expression:jar:4.3.2.RELEASE:compile
[INFO] +- com.amazonaws:aws-java-sdk-s3:jar:1.11.24:compile
[INFO] |  +- com.amazonaws:aws-java-sdk-kms:jar:1.11.24:compile
[INFO] |  \- com.amazonaws:aws-java-sdk-core:jar:1.11.24:compile
[INFO] |     +- commons-logging:commons-logging:jar:1.1.3:compile
[INFO] |     +- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.8.1:compile
[INFO] |     \- joda-time:joda-time:jar:2.9.4:compile
[INFO] +- com.wordnik:swagger-jersey2-jaxrs_2.10:jar:1.3.13:compile
[INFO] |  +- com.wordnik:swagger-jaxrs_2.10:jar:1.3.13:compile
[INFO] |  |  +- com.wordnik:swagger-core_2.10:jar:1.3.13:compile
[INFO] |  |  |  +- com.fasterxml.jackson.module:jackson-module-scala_2.10:jar:2.4.1:compile
[INFO] |  |  |  |  \- com.thoughtworks.paranamer:paranamer:jar:2.6:compile
[INFO] |  |  |  +- com.fasterxml.jackson.module:jackson-module-jsonSchema:jar:2.4.1:compile
[INFO] |  |  |  +- com.wordnik:swagger-annotations:jar:1.3.13:compile
[INFO] |  |  |  +- org.json4s:json4s-ext_2.10:jar:3.2.11:compile
[INFO] |  |  |  +- org.json4s:json4s-native_2.10:jar:3.2.11:compile
[INFO] |  |  |  |  \- org.json4s:json4s-core_2.10:jar:3.2.11:compile
[INFO] |  |  |  |     +- org.json4s:json4s-ast_2.10:jar:3.2.11:compile
[INFO] |  |  |  |     \- org.scala-lang:scalap:jar:2.10.0:compile
[INFO] |  |  |  |        \- org.scala-lang:scala-compiler:jar:2.10.0:compile
[INFO] |  |  |  \- org.json4s:json4s-jackson_2.10:jar:3.2.11:compile
[INFO] |  |  \- org.reflections:reflections:jar:0.9.9:compile
[INFO] |  |     \- com.google.code.findbugs:annotations:jar:2.0.1:compile
[INFO] |  \- org.glassfish.jersey.media:jersey-media-multipart:jar:2.1:compile
[INFO] |     \- org.jvnet.mimepull:mimepull:jar:1.8:compile
[INFO] +- org.glassfish.jersey.ext:jersey-bean-validation:jar:2.23.1:compile
[INFO] |  +- org.glassfish.hk2.external:javax.inject:jar:2.4.0-b34:compile
[INFO] |  +- org.glassfish.jersey.core:jersey-common:jar:2.23.1:compile
[INFO] |  |  +- org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.23.1:compile
[INFO] |  |  \- org.glassfish.hk2:osgi-resource-locator:jar:1.0.1:compile
[INFO] |  +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] |  +- javax.el:javax.el-api:jar:2.2.4:compile
[INFO] |  +- org.glassfish.web:javax.el:jar:2.2.4:compile
[INFO] |  \- javax.ws.rs:javax.ws.rs-api:jar:2.0.1:compile
[INFO] +- com.jayway.restassured:rest-assured:jar:2.9.0:test
[INFO] |  +- org.codehaus.groovy:groovy:jar:2.4.7:test
[INFO] |  +- org.codehaus.groovy:groovy-xml:jar:2.4.7:test
[INFO] |  +- org.apache.httpcomponents:httpmime:jar:4.5.2:test
[INFO] |  +- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] |  +- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] |  +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:test
[INFO] |  +- com.jayway.restassured:json-path:jar:2.9.0:test
[INFO] |  |  +- org.codehaus.groovy:groovy-json:jar:2.4.7:test
[INFO] |  |  \- com.jayway.restassured:rest-assured-common:jar:2.9.0:test
[INFO] |  \- com.jayway.restassured:xml-path:jar:2.9.0:test
[INFO] +- com.jayway.jsonpath:json-path:jar:2.2.0:compile
[INFO] |  +- net.minidev:json-smart:jar:2.2.1:compile
[INFO] |  |  \- net.minidev:accessors-smart:jar:1.1:compile
[INFO] |  |     \- org.ow2.asm:asm:jar:5.0.3:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.21:compile
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:1.4.0.RELEASE:test
[INFO] |  +- org.springframework.boot:spring-boot-test:jar:1.4.0.RELEASE:test
[INFO] |  +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.4.0.RELEASE:test
[INFO] |  +- junit:junit:jar:4.12:test
[INFO] |  +- org.mockito:mockito-core:jar:1.10.19:test
[INFO] |  |  \- org.objenesis:objenesis:jar:2.1:test
[INFO] |  +- org.skyscreamer:jsonassert:jar:1.3.0:test
[INFO] |  +- org.springframework:spring-core:jar:4.3.2.RELEASE:compile
[INFO] |  \- org.springframework:spring-test:jar:4.3.2.RELEASE:test
[INFO] +- org.assertj:assertj-core:jar:3.2.0:compile
[INFO] +- org.springframework.boot:spring-boot-configuration-processor:jar:1.4.0.RELEASE:compile
[INFO] |  \- org.json:json:jar:20140107:compile
[INFO] +- org.neo4j:neo4j-cypher-compiler-2.2:jar:2.2.5:compile
[INFO] |  +- org.scala-lang:scala-library:jar:2.10.5:compile
[INFO] |  +- org.scala-lang:scala-reflect:jar:2.10.5:compile
[INFO] |  +- org.parboiled:parboiled-scala_2.10:jar:1.1.7:compile
[INFO] |  |  \- org.parboiled:parboiled-core:jar:1.1.7:compile
[INFO] |  \- com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.4:compile
[INFO] \- org.springframework.boot:spring-boot-devtools:jar:1.4.0.RELEASE:compile
[INFO]    +- org.springframework.boot:spring-boot:jar:1.4.0.RELEASE:compile
[INFO]    \- org.springframework.boot:spring-boot-autoconfigure:jar:1.4.0.RELEASE:compile

그리고 여기 내 응용 프로그램 클래스 :

@EntityScan(basePackageClasses = { Application.class, Jsr310JpaConverters.class })
@EnableScheduling
@EnableAsync
@SpringBootApplication(scanBasePackages = "com.sample")
public class Application extends Loggable implements AsyncConfigurer {

    /**
     * This forces the SNS topics to be created and/or linked.
     */
    @Autowired
    @SuppressWarnings("all")
    private TopicFactory topicFactory;

    /**
     * It all begins here.
     */
    public static void main(String[] args) throws Exception {
        SpringApplication application = new SpringApplication(Application.class);
        application.setBanner(new SampleBanner());
        application.run(args);
    }

    /**
     * Returns the @Async executor.
     */
    @Override
    public Executor getAsyncExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(4);
        executor.setMaxPoolSize(4);
        executor.setQueueCapacity(0);
        executor.setThreadNamePrefix("Async-");
        executor.initialize();
        return executor;
    }

    /**
     * Returns the uncaught exception handler for @Async operations.
     */
    @Override
    public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
        return (e, method, params) -> log.error("Uncaught async error", e);
    }
}

누군가가 나를 시작하거나 실패의 원인이되는 것을 지적하면 큰 도움이 될 것입니다.

해결법

  1. ==============================

    1.가능한 수정 사항 :

    가능한 수정 사항 :

    1) authConfigFactory를 Tomcat 8.5에서 사용되는 기본 AuthConfigFactory 구현으로 설정합니다 (기본 구현 예).

    package com.example;
    
    import org.apache.catalina.authenticator.jaspic.AuthConfigFactoryImpl;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    import javax.security.auth.message.config.AuthConfigFactory;
    
    @SpringBootApplication
    public class DemoApplication {
    
        public static void main(String[] args) {
            if (AuthConfigFactory.getFactory() == null) {
                AuthConfigFactory.setFactory(new AuthConfigFactoryImpl());
            }
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    

    또는

    2) 클래스 경로에서 중복 된 AuthConfigFactory 클래스를 제거하십시오. 내 경우에는 동일한 클래스의 두 가지 구현이 있습니다.

    org.apache.tomcat.embed/tomcat-embed-core/8.5.4/tomcat-embed-core-8.5.4.jar!/javax/security/auth/message/config/AuthConfigFactory.class
    javax/javaee-api/7.0/javaee-api-7.0.jar!/javax/security/auth/message/config/AuthConfigFactory.class
    

    javaee-api-7.0.jar는 Tomcat 8.5와 완전히 호환되지 않는 AuthConfigFactory 구현을 가지고 있으며 NullPointerException을 발생시킵니다 (Tomcat의 버전에는 기본 jaspic 구현 클래스를 정의하는 상수가 있습니다) gradee / mvn 프로젝트에서 javaee-api 의존성 (또는 다른 AuthConfigFactory 구현을 포함하는 다른 것)을 제거하십시오 (가능한 경우).

    또는

    3) Tomcat을 8.0 또는 7.0으로 다운 그레이드 :

    http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-use-tomcat-7

    설명:

    이 문제는 Spring Boot 1.3.x에서 1.4로 업그레이드 할 때 만들어진 Tomcat 업그레이드 (8.0.x에서 8.5.x 로의 업그레이드)와 관련이 있습니다. 문제는 Tomcat 8.5가 jaspic 지원 (https://tomcat.apache.org/tomcat-8.5-doc/config/jaspic.html)을 소개하고 AuthConfigFactory의 자체 구현을 제공한다는 것입니다. 이 구현은 기본 jaspic 인증 팩토리 구현을 정의합니다.

    private static final String DEFAULT_JASPI_AUTHCONFIGFACTORYIMPL =
                "org.apache.catalina.authenticator.jaspic.AuthConfigFactoryImpl";
    

    이것은 다른 구현 (예 : javaee-api-7.0)에서 정의되지 않았으며 AuthConfigFactory가 인스턴스화되지 않았으므로 NullPointerException이 발생합니다.

  2. from https://stackoverflow.com/questions/38802437/upgrading-spring-boot-from-1-3-7-to-1-4-0-causing-nullpointerexception-in-authen by cc-by-sa and MIT license