技术文章 - CS387974
在 Windchill 中使用 Azure Active Directory 作为中央验证服务器 (CAS) 和身份提供程序 (IdP) 对 SSO 使用 OAuth 身份验证时出现异常“无效令牌异常:(wt.jwt.servlet.JWTTokenGenerationResource/JWT_SIGNATURE_VALIDATION_ERROR)”
已修改: 20-Feb-2024
适用于
- Windchill PDMLink 12.0 to 13.0
- Azure Active Directory as Central Auth Server(CAS) and Identity Provider(IdP)
说明
- 异常“无效令牌异常:(wt.jwt.servlet.JWTTokenGenerationResource/JWT_SIGNATURE_VALIDATION_ERROR) ”使用Azure Active Directory作为中央身份验证服务器(CAS)和身份提供者(IdP)对单点登录( SSO)使用OAuth 身份验证时
wt.jwt.oauth2.token.AuditLogger.Log - 无效的令牌异常:(wt.jwt.servlet.JWTTokenGenerationResource/JWT_SIGNATURE_VALIDATION_ERROR)wt.util.WTException:签名验证期间发生错误
在 wt.jwt.framework.JWTTokenServiceProvider.verifyToken(JWTTokenServiceProvider.java:185)
在 wt.jwt.framework.JWTTokenServiceProvider.getClaims(JWTTokenServiceProvider.java:140)
在 wt.jwt.oauth2.token.JWTLocalTokenService.loadAuthentication(JWTLocalTokenService.java:94)
在 org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationManager.authenticate(OAuth2AuthenticationManager.java:87)
在 com.ptc.eauth.identity.oauth2.rs.ResourceAwareOAuth2AuthenticationManager.authenticate(ResourceAwareOAuth2AuthenticationManager.java:44)
在 org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:156)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
在 org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)
在 org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
在 org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
在 org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
在 org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
在 org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:367)
在 org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:526)
在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:882)
在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1657)
在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
在 org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
在 org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
在 java.base/java.lang.Thread.run(Thread.java:829)
在 wt.jwt.framework.JWTTokenServiceProvider.verifyToken(JWTTokenServiceProvider.java:185)
在 wt.jwt.framework.JWTTokenServiceProvider.getClaims(JWTTokenServiceProvider.java:140)
在 wt.jwt.oauth2.token.JWTLocalTokenService.loadAuthentication(JWTLocalTokenService.java:94)
在 org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationManager.authenticate(OAuth2AuthenticationManager.java:87)
在 com.ptc.eauth.identity.oauth2.rs.ResourceAwareOAuth2AuthenticationManager.authenticate(ResourceAwareOAuth2AuthenticationManager.java:44)
在 org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:156)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
在 org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)
在 org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)
在 org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
在 org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
在 org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
在 org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
在 org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:367)
在 org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:526)
在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:882)
在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1657)
在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
在 org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
在 org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
在 java.base/java.lang.Thread.run(Thread.java:829)
这是文章 387974 的 PDF 版本,可能已过期。最新版本 CS387974