Вход в Spring Cloud Security OAuth2 получил исключение stackoverflow - PullRequest
0 голосов
/ 25 июня 2019

Я настраиваю Spring Cloud OAuth2 AuthorizationServer, когда я запускаю свое приложение в IDE, все идет хорошо, но когда я упаковал свое приложение в jar и запустил его на серверном компьютере, я получил "java.lang.StackOverflowError: null ", и все стеки, которые я вижу, снова и снова вызывают loadClientByClientId, что делается самой платформой.

Я использую Spring Boot 2.0.8 и Spring Cloud Finchley.SR2, openfeign для получения информации о клиенте из другого приложения. Я пытался изменить версию Spring Boot, и она не работала; я пытался использовать okhttp вместо origin feign client, безрезультатно; я пытался добавить в журнал методы loadClientByClientId, и таким образом исключение исчезло, но это меня запутало .

@Slf4j
public class AuthClientDetailsService implements ClientDetailsService {

    private final ClientManagerClient clientManagerClient;

    public AuthClientDetailsService(ClientManagerClient clientManagerClient) {
        this.clientManagerClient = clientManagerClient;
    }

    private Optional<ClientDTO> exists(String clientId) {
        return Optional.ofNullable(clientManagerClient.get(clientId));
    }

    @Override
    public ClientDetails loadClientByClientId(String clientId) {
        log.info("start loadClientByClientId");
        val exists = exists(clientId);
        log.info("get exists client success");
        if (!exists.isPresent()) {
            throw new ClientRegistrationException(String.format("client %s not exists", clientId));
        }
        log.info("exists client:{}", exists.get());
        return new AuthClientDetails(exists.get());
    }

}

когда я упаковываю свой код и запускаю его, я получаю следующее исключение


java.lang.StackOverflowError: null
    at org.springframework.beans.factory.support.AbstractBeanFactory.transformedBeanName(AbstractBeanFactory.java:1130) ~[spring-beans-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:242) ~[spring-beans-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:35) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:193) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at com.sun.proxy.$Proxy150.loadClientByClientId(Unknown Source) ~[na:na]
    at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_201]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_201]
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at com.sun.proxy.$Proxy150.loadClientByClientId(Unknown Source) ~[na:na]
    at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_201]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_201]
.
.
.
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at com.sun.proxy.$Proxy150.loadClientByClientId(Unknown Source) ~[na:na]
    at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_201]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_201]
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at com.sun.proxy.$Proxy150.loadClientByClientId(Unknown Source) ~[na:na]
    at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_201]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_201]
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.12.RELEASE.jar!/:5.0.12.RELEASE]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...