WSO2 API 以 WSO2 IS 作为 KeyManager - 使用 OAuth 授权时的 NPE

WSO2 API with WSO2 IS as KeyManager - NPE when using OAuth authorization

拥有 WSO2 API Manager 2.1.0 和 WSO2 IS 5.3.0 KM(带有预打包的密钥管理器)我将密钥管理器设置为 described in the documentation

主要目的是使用其他联合 IdP 对用户进行身份验证和授权,并添加一些授权功能。我的假设是使用 WSO2IS 授权的用户将收到一个对定义的 APP 和 API.

有效的 OAuth 令牌

到目前为止,所有内容都在 IS 偏移量为 1 的本地主机上。我创建了一个 API,一个可以从 API 商店使用的应用程序。

当尝试通过 WSO2 IS 使用代码 grant_type 授权客户端时:

https://localhost:9444/oauth2/authorize?response_type=code&client_id=KJTbkbFmcDvslo2fjhzfQkaBH3Ea&redirect_uri=http%3A//localhost%3A8080/test2/callback

我被要求提供凭据和授权(看起来没问题),然后我在 IS 上收到异常:

[2018-03-27 10:43:51,822] ERROR {org.apache.catalina.core.StandardWrapperValve} -  Servlet.service() for servlet [OAuth2Endpoints] in context with path [/oauth2] threw exception
java.lang.RuntimeException: org.apache.cxf.interceptor.Fault
        at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116)
...
 Caused by: java.lang.NullPointerException
        at org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorize(OAuth2AuthzEndpoint.java:251)
        at org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.sendRequestToFramework(OAuth2AuthzEndpoint.java:1163)
        at org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorize(OAuth2AuthzEndpoint.java:135)
        at org.wso2.carbon.identity.oauth.endpoint.authz.OAuth2AuthzEndpoint.authorizePost(OAuth2AuthzEndpoint.java:574)

我假设我错误地配置了一些端点,但是 - 知道 OAuth2AuthzEndpoint 实现调用了哪个服务或导致此异常的潜在原因吗?

这已在 https://wso2.org/jira/browse/IDENTITY-5581 中报告。

您可以通过 WUM 更新 WSO2 IS 5.3.0 来解决问题。