【问题标题】:java.net.SocketTimeoutException: Read timed out on WSO2 Identity Server OAuth Token Validationjava.net.SocketTimeoutException:WSO2 身份服务器 OAuth 令牌验证读取超时
【发布时间】:2013-12-19 17:48:16
【问题描述】:

当尝试对 LDAP 用户从 WSO2 ESB 到 WSO2 IS 进行 OAuth 令牌验证时,ESB 有时会出现以下错误。

    {org.apache.axis2.transport.http.HTTPSender} -  Unable to sendViaPost to url
    [https://identityserver.com/services/OAuth2TokenValidationService] 
    {org.apache.axis2.transport.http.HTTPSender} java.net.SocketTimeoutException: 
    Read timed out

OAuth 令牌验证成功在服务器启动后的前几次和发生上述错误之后。

出现上述错误的原因是什么?如何解决这个问题?

更新

身份服务器日志同时显示以下错误。

 TID: [0] [IS] [2013-12-19 05:04:52,904] ERROR {java.lang.Class} - 
 Access Denied. Failed authorization attempt to access service 'OAuth2TokenValidationService' operation 'validate' by 'LDAP/admin' {java.lang.Class}
    TID: [0] [IS] [2013-12-19 05:04:52,904] ERROR {org.apache.axis2.engine.AxisEngine} -  Access Denied. {org.apache.axis2.engine.AxisEngine}
    org.apache.axis2.AxisFault: Access Denied.
        at org.wso2.carbon.server.admin.module.handler.AuthorizationHandler.doAuthorization(AuthorizationHandler.java:124)
        at org.wso2.carbon.server.admin.module.handler.AuthorizationHandler.invoke(AuthorizationHandler.java:88)
        at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)

为什么有时会出现此访问被拒绝错误。它成功登录了一些其他时间。??

【问题讨论】:

    标签: java wso2 axis2 wso2esb wso2is


    【解决方案1】:

    根据错误,似乎是 ESB 无法将消息发送到以下 url。有时,此服务需要很长时间才能响应 ESB(超过 30 秒)。然后我们可以猜测,问题可能出在 WSO2IS 端。你能在 WSO2IS 端看到任何错误或任何日志吗?如果没有,您能否在 WSO2IS 中启用调试日志并查看。您可以为此使用 log4j.properties 文件。如果响应迟了,通过查看 log4j 日志中的时间戳,我们可以了解瓶颈发生在哪里。

    https://identityserver.com/services/OAuth2TokenValidationService

    【讨论】:

    • 您在 OAuth 中介中配置的用户名/密码,用于登录服务器并访问“OAuth2TokenValidationService”。用户/密码,必须是 WSO2IS 服务器中的管理员用户(具有管理员角色的用户或访问此服务的某些权限)。不知道为什么这在某些时候不起作用。你在做任何负载测试吗?
    • 问题是这样的:我们使用了两个用户存储( Primary 和 ldap )。 “OAuth2TokenValidationService”配置为在主用户中使用管理员用户。有时它尝试以 ldap/用户名登录并产生拒绝访问错误。当有多个用户存储时,我认为这是 OAuth2TokenValidationService 中的一个错误。
    • 您的意思是同一用户(具有相同用户名的用户)存在于两个用户存储(主和 LDAP)中?你能验证一下吗?
    • 只有一个用户。
    猜你喜欢
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 2022-08-16
    • 2014-08-26
    • 2015-11-02
    • 2016-06-04
    • 1970-01-01
    • 2021-01-26
    相关资源
    最近更新 更多