我使用的是Nimbus-JOSE-JWT库库(版本4.39)。使用这个库,我尝试执行本地JWT令牌验证,它从OAuth授权服务器获取JWK集。
我的代码在JSE应用程序中运行得很好,但是,当我在WebLogic 12.1.3中运行完全相同的代码(作为JEE应用程序的一部分)时,它无法运行,并出现以下异常:
com.nimbusds.jose.RemoteKeySourceException: Couldn't retrieve remote JWK set: Hostname verification failed: HostnameVerifier=weblogic.security.utils.SSLWLSHostnameVerifier, hostname=corpZ.oktapreview.com.
at com.nimbusds.jose.jwk.source.RemoteJWKSet.updateJWKSetFromURL(RemoteJWKSet.java:141)
at com.nimbusds.jose.jwk.source.RemoteJWKSet.get(RemoteJWKSet.java:219)
at com.nimbusds.jose.proc.JWSVerificationKeySelector.selectJWSKeys(JWSVerificationKeySelector.java:129)
at com.nimbusds.jwt.proc.DefaultJWTProcessor.process(DefaultJWTProcessor.java:323)
at com.nimbusds.jwt.proc.DefaultJWTProcessor.process(DefaultJWTProcessor.java:284)
at com.nimbusds.jwt.proc.DefaultJWTProcessor.process(DefaultJWTProcessor.java:275)
at org.corpZ.sec.okta.OktaClient.getAccessTokenInfoLocally(Unknown Source)
at org.corpZ.sec.okta.OktaClient.validateAccessTokenLocally(Unknown Source)
at org.corpZ.sec.okta.TokenValidator.isTokenValid(Unknown Source)
at org.corpZ.eis.ws.interceptor.WSInterceptor.handleRequest(WSInterceptor.java:126)
at org.springframework.ws.server.endpoint.interceptor.DelegatingSmartEndpointInterceptor.handleRequest(DelegatingSmartEndpointInterceptor.java:78)
at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:224)
at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:173)
at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88)
at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:59)
at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:292)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServ下面是我的代码中的Maven依赖项:
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
<version>4.39</version>
</dependency>任何帮助都将不胜感激。
谢谢。
发布于 2020-05-21 22:29:28
迟做总比不做好,这要归功于WebLogic服务器的配置。您必须进入SSL属性选项卡,并将“主机名验证”更改为“无”。
https://stackoverflow.com/questions/45179924
复制相似问题