【问题标题】:WSO2IS access token always invalidWSO2IS 访问令牌始终无效
【发布时间】:2018-03-15 16:08:17
【问题描述】:

我使用Sparkpac4j 构建了一个简单的Web 应用程序。它应该使用 WSO2 Identity Server 5.0.0 对用户进行身份验证,使用 OAuth 2“授权代码授予”。

OAuth 流程似乎运行良好,但并不完全:

  • 用户被重定向到 WSO2 (/oauth2/authorize?response_type=code&client_id=foo&redirect_uri=bar&scope=openid&prompt=consent)
  • 用户使用用户名/密码标识
  • 用户同意与我的网络应用程序交换声明
  • 我的 Web 应用程序将其接收到的 代码 交换为 访问令牌刷新令牌

然而,最后 pac4j 使用 访问令牌 检索用户配置文件 (/oauth2/userinfo?schema=openid)。这总是给我回应

{"error":"invalid_token","error_description":"Access token validation failed"}

和 WSO2 日志

TID:[0] [IS] [2018-03-14 16:20:30,446] 调试 {org.wso2.carbon.identity.oauth.endpoint.user.OpenIDConnectUserEndpoint} - org.wso2.carbon.identity。 oauth.endpoint.user.UserInfoEndpointException:访问令牌验证失败 {org.wso2.carbon.identity.oauth.endpoint.user.OpenIDConnectUserEndpoint}

访问令牌仍然存在于IDN_OAUTH2_ACCESS_TOKEN 数据库表中:

TIME_CREATED            VALIDITY_PERIOD TOKEN_STATE TOKEN_STATE_ID
------------------------------------------------------------------
2018-03-14 10:40:35.940 3600000         ACTIVE      NONE

我不明白为什么 WSO2 说我的访问令牌无效。

有人能解释一下吗?

【问题讨论】:

  • 尝试在日志中查找原因。查看WSO2 sources,应该有来自 TokenValidationHandler.buildClientAppErrorResponse() 方法的调试消息。
  • WSO2 提供的唯一日志记录已包含在问题中。

标签: oauth-2.0 wso2is spark-java


【解决方案1】:

好吧,虽然很奇怪...删除 WSO2 数据库中的所有访问令牌授权令牌解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 2021-02-12
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    相关资源
    最近更新 更多