springboot-Oauth2-错误,未授权,未输入ooauth /令牌

时间:2020-06-08 09:08:06

标签: spring-boot spring-security-oauth2

Springboot集成了Oauth2。当我使用client_credentials方法请求令牌时,我输入BasicAuthenticationFilter,然后在BasicAuthenticationConverter的Convert方法中获取授权信息,但是当我传递授权信息“ Basic base64(client_id:client_secret)时,客户端模式不需要通过授权)”,它转到用户表中查找用户,而不是oauth_client_details表,现在,我有点崩溃了,以下是我的相关代码

@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {

    @Autowired
    private RedisConnectionFactory connectionFactory;
    @Autowired
    private AuthenticationManager authenticationManager;
    @Autowired
    private SecurityUserDetailsServiceImpl securityUserDetailsService;
    @Autowired
    private OAuth2WebResponseExceptionTranslator oAuth2WebResponseExceptionTranslator;
    @Autowired
    private DataSource dataSource;

    public static final String PREFIX = "ic-";
    public static final int TOKEN_VALIDITY_SECONDS = 60 * 60 * 12;//12 hours
    public static final int TOKEN_REFRESH_SECONDS = 60 * 60 * 24 * 7;//7 days

    @Bean
    public TokenStore tokenStore() {
        RedisTokenStore redisTokenStore = new RedisTokenStore(connectionFactory);
        redisTokenStore.setPrefix(PREFIX); 
        return redisTokenStore;
    }

    @Override
    public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
        security.passwordEncoder(PasswordEncoderFactories.createDelegatingPasswordEncoder())
        .tokenKeyAccess("permitAll()").checkTokenAccess("isAuthenticated()")
        .allowFormAuthenticationForClients();
    }

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.jdbc(dataSource).dataSource(dataSource)
        .passwordEncoder(PasswordEncoderFactories.createDelegatingPasswordEncoder());
    }

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints.authenticationManager(authenticationManager).userDetailsService(securityUserDetailsService)
        .tokenStore(tokenStore()).exceptionTranslator(oAuth2WebResponseExceptionTranslator);
    }
}

经理

@Configuration
@EnableWebSecurity
public class AuthenticationManagerConfiguration extends GlobalAuthenticationConfigurerAdapter {

    @Autowired
    private SecurityUserDetailsServiceImpl securityUserDetailsService;

    @Override
    public void init(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(securityUserDetailsService).passwordEncoder(PasswordEncoderFactories.createDelegatingPasswordEncoder());
    }

}

SecurityConfig

@EnableGlobalMethodSecurity(prePostEnabled = true)
@Configuration
@EnableWebSecurity
@Order(-1)
public class SecurityConfigurer extends WebSecurityConfigurerAdapter {

    //此处必须声明这个bean类,否则无法注入AuthenticationManager
    @Bean
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }

    @Autowired
    CaptchaFilter verifyCodeFilter;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.addFilterBefore(verifyCodeFilter, UsernamePasswordAuthenticationFilter.class);
        http
                //.formLogin().permitAll()
                //.and()
                .authorizeRequests()
                .antMatchers(
                "/webjars/**",
                "/resources/**",
                "/doc.html/**",
                "/swagger-resources/**",
                "/auth/sign",
                "/health/**",
                "/info",
                "/logout",
                "/user/export",
                "/captchaImage").permitAll()
                .and().authorizeRequests().anyRequest().authenticated()
                .and().exceptionHandling()
                .and().logout().permitAll()
                .and().httpBasic()
                .and().csrf().disable();
    }
}

并登录

2020-06-08 17:03:41.963 [http-nio-80-exec-1] DEBUG org.apache.tomcat.util.http.Parameters - Set query string encoding to UTF-8
2020-06-08 17:03:41.965 [http-nio-80-exec-1] DEBUG org.apache.tomcat.util.http.Rfc6265CookieProcessor - Cookies: Parsing b[]: JSESSIONID=D8CACE55E9E6DF44CC3AB2AF4B1A2DF5
2020-06-08 17:03:41.966 [http-nio-80-exec-1] DEBUG org.apache.catalina.connector.CoyoteAdapter -  Requested cookie session id is D8CACE55E9E6DF44CC3AB2AF4B1A2DF5
2020-06-08 17:03:41.968 [http-nio-80-exec-1] DEBUG org.apache.catalina.authenticator.AuthenticatorBase - Security checking request POST /oauth/token
2020-06-08 17:03:41.969 [http-nio-80-exec-1] DEBUG org.apache.catalina.realm.RealmBase -   No applicable constraints defined
2020-06-08 17:03:41.976 [http-nio-80-exec-1] DEBUG org.apache.catalina.authenticator.jaspic.AuthConfigFactoryImpl - Loading persistent provider registrations from [C:\Users\Administrator\AppData\Local\Temp\tomcat.1690911797503551653.80\conf\jaspic-providers.xml]
2020-06-08 17:03:41.977 [http-nio-80-exec-1] DEBUG org.apache.catalina.authenticator.AuthenticatorBase - Not subject to any constraint
2020-06-08 17:03:41.982 [http-nio-80-exec-1] INFO  org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-06-08 17:03:41.983 [http-nio-80-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
2020-06-08 17:03:41.983 [http-nio-80-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Detected StandardServletMultipartResolver
2020-06-08 17:03:41.999 [http-nio-80-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data
2020-06-08 17:03:41.999 [http-nio-80-exec-1] INFO  org.springframework.web.servlet.DispatcherServlet - Completed initialization in 16 ms
2020-06-08 17:03:42.018 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 1 of 12 in additional filter chain; firing Filter: 'WebAsyncManagerIntegrationFilter'
2020-06-08 17:03:42.020 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 2 of 12 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter'
2020-06-08 17:03:42.020 [http-nio-80-exec-1] DEBUG org.springframework.security.web.context.HttpSessionSecurityContextRepository - No HttpSession currently exists
2020-06-08 17:03:42.020 [http-nio-80-exec-1] DEBUG org.springframework.security.web.context.HttpSessionSecurityContextRepository - No SecurityContext was available from the HttpSession: null. A new one will be created.
2020-06-08 17:03:42.023 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 3 of 12 in additional filter chain; firing Filter: 'HeaderWriterFilter'
2020-06-08 17:03:42.024 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 4 of 12 in additional filter chain; firing Filter: 'LogoutFilter'
2020-06-08 17:03:42.024 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.OrRequestMatcher - Trying to match using Ant [pattern='/logout', GET]
2020-06-08 17:03:42.024 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Request 'POST /oauth/token' doesn't match 'GET /logout'
2020-06-08 17:03:42.024 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.OrRequestMatcher - Trying to match using Ant [pattern='/logout', POST]
2020-06-08 17:03:42.024 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/logout'
2020-06-08 17:03:42.024 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.OrRequestMatcher - Trying to match using Ant [pattern='/logout', PUT]
2020-06-08 17:03:42.024 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Request 'POST /oauth/token' doesn't match 'PUT /logout'
2020-06-08 17:03:42.024 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.OrRequestMatcher - Trying to match using Ant [pattern='/logout', DELETE]
2020-06-08 17:03:42.024 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Request 'POST /oauth/token' doesn't match 'DELETE /logout'
2020-06-08 17:03:42.024 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.OrRequestMatcher - No matches found
2020-06-08 17:03:42.025 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 5 of 12 in additional filter chain; firing Filter: 'CaptchaFilter'
2020-06-08 17:03:42.025 [http-nio-80-exec-1] DEBUG org.apache.tomcat.util.http.Parameters - Set encoding to UTF-8
2020-06-08 17:03:42.025 [http-nio-80-exec-1] DEBUG org.apache.tomcat.util.http.Parameters - Start processing with input [grant_type=client_credentials&client_id=demo&client_secret=123456]
2020-06-08 17:03:42.025 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 6 of 12 in additional filter chain; firing Filter: 'BasicAuthenticationFilter'
2020-06-08 17:03:42.025 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 7 of 12 in additional filter chain; firing Filter: 'RequestCacheAwareFilter'
2020-06-08 17:03:42.025 [http-nio-80-exec-1] DEBUG org.springframework.security.web.savedrequest.HttpSessionRequestCache - saved request doesn't match
2020-06-08 17:03:42.025 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 8 of 12 in additional filter chain; firing Filter: 'SecurityContextHolderAwareRequestFilter'
2020-06-08 17:03:42.026 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 9 of 12 in additional filter chain; firing Filter: 'AnonymousAuthenticationFilter'
2020-06-08 17:03:42.027 [http-nio-80-exec-1] DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter - Populated SecurityContextHolder with anonymous token: 'org.springframework.security.authentication.AnonymousAuthenticationToken@c5508870: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS'
2020-06-08 17:03:42.027 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 10 of 12 in additional filter chain; firing Filter: 'SessionManagementFilter'
2020-06-08 17:03:42.027 [http-nio-80-exec-1] DEBUG org.springframework.security.web.session.SessionManagementFilter - Requested session ID D8CACE55E9E6DF44CC3AB2AF4B1A2DF5 is invalid.
2020-06-08 17:03:42.027 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 11 of 12 in additional filter chain; firing Filter: 'ExceptionTranslationFilter'
2020-06-08 17:03:42.027 [http-nio-80-exec-1] DEBUG org.springframework.security.web.FilterChainProxy - /oauth/token at position 12 of 12 in additional filter chain; firing Filter: 'FilterSecurityInterceptor'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.OrRequestMatcher - Trying to match using Ant [pattern='/logout', GET]
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Request 'POST /oauth/token' doesn't match 'GET /logout'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.OrRequestMatcher - Trying to match using Ant [pattern='/logout', POST]
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/logout'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.OrRequestMatcher - Trying to match using Ant [pattern='/logout', PUT]
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Request 'POST /oauth/token' doesn't match 'PUT /logout'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.OrRequestMatcher - Trying to match using Ant [pattern='/logout', DELETE]
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Request 'POST /oauth/token' doesn't match 'DELETE /logout'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.OrRequestMatcher - No matches found
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/webjars/**'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/resources/**'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/doc.html/**'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/swagger-resources/**'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/auth/sign'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/health/**'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/info'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/logout'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/user/export'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.util.matcher.AntPathRequestMatcher - Checking match of request : '/oauth/token'; against '/captchaImage'
2020-06-08 17:03:42.029 [http-nio-80-exec-1] DEBUG org.springframework.security.web.access.intercept.FilterSecurityInterceptor - Secure object: FilterInvocation: URL: /oauth/token; Attributes: [authenticated]
2020-06-08 17:03:42.030 [http-nio-80-exec-1] DEBUG org.springframework.security.web.access.intercept.FilterSecurityInterceptor - Previously Authenticated: org.springframework.security.authentication.AnonymousAuthenticationToken@c5508870: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS
2020-06-08 17:03:42.037 [http-nio-80-exec-1] DEBUG org.springframework.security.access.vote.AffirmativeBased - Voter: org.springframework.security.web.access.expression.WebExpressionVoter@4a901d70, returned: -1
2020-06-08 17:03:42.038 [http-nio-80-exec-1] DEBUG org.springframework.security.web.access.ExceptionTranslationFilter - Access is denied (user is anonymous); redirecting to authentication entry point
org.springframework.security.access.AccessDeniedException: Access is denied
    at org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:84)
    at org.springframework.security.access.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:233)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:123)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:155)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at com.hyy.wechat.bean.CaptchaFilter.doFilter(CaptchaFilter.java:56)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92)
    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:109)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

0 个答案:

没有答案