Spring Cloud Security OAuth2登录名出现stackoverflow异常

时间:2019-06-25 01:36:54

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

我正在设置一个Spring Cloud OAuth2 AuthorizationServer,当我在IDE中运行我的应用程序时,一切都很好,但是当我将应用程序打包到jar并在服务器计算机上运行时,出现了“ java.lang.StackOverflowError: null”,我看到的所有堆栈都一遍又一遍地调用loadClientByClientId,这是由框架本身完成的。

我使用Spring Boot 2.0.8和Spring Cloud Finchley.SR2,openfeign从另一个应用程序获取客户端信息。 我试图更改Spring Boot版本,但没有用;我试图使用okhttp代替原始的伪装客户端,没用;我试图在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]

0 个答案:

没有答案