WSO2 IS 5.2.0 中的自定义授权类型
Custom grant type in WSO2 IS 5.2.0
我最近将我的环境从 WSO2 IS 5.0.0 更新到 WSO2 IS 5.2.0。我的环境由 2 台正在创建集群的机器组成(使用启用了粘性会话的 WKA 成员资格方案和负载均衡器(AWS ELB))。我正在使用 MySQL(不是默认的 H2 数据库)。部署IS的机器是Windows Server 2012 R2(EC2 AWS机器)。
在 IS 5.0.0 版本中,我们有自定义授权 OAuth 授权类型。它是根据以下文章实施的:
https://docs.wso2.com/display/IS500/Writing+a+Custom+OAuth+2.0+Grant+Type
升级完成后,在[IS_HOME]\repository\components\lib中添加了.jar文件,在console.log中系统启动成功,没有报错。但是当我们开始调用令牌端点时,系统开始出错:
https://slack-files.com/T0DDMMC9Y-F2QRF2JLA-bcd85857dc
https://slack-files.com/T0DDMMC9Y-F2QRFES10-ab528f64e5
然后我们重建自定义 OAuth 授权类型。我们将 org.wso2.carbon.identity.oauth_4.2.3.jar 更新到版本 4.2.7。我们关注了这些文章:
https://docs.wso2.com/display/IS520/Extension+Points+for+OAuth#ExtensionPointsforOAuth-CustomOAuthgranthandler
https://docs.wso2.com/display/IS520/Writing+a+Custom+OAuth+2.0+Grant+Type
但是,当我们启用自定义授权类型并开始调用令牌端点时,上述错误仍会记录在 console.log 中,并作为响应由 tomcat 服务器返回。
在我们为解决一些问题而进行了一些调整之后,我们取得了进展,但是我们仍然没有一个完整的解决方案:
https://slack-files.com/T0DDMMC9Y-F2S5LKT6V-560a2854ea
这可能与从 5.0.0 迁移到 5.2.0 时出现的某些问题有关,或者这是 Tomcat 服务器的某种配置问题?
或者这与授权类型本身有关?我们按照对 IS 5.0.0 所做的所有说明进行操作,但我们无法在 IS 5.2.0 上实现 运行。
提前致谢。
根本原因是,
原因:java.lang.ClassNotFoundException:org.apache.amber。oauth2.common.validators.AbstractValidator
WSO2 IS 不再使用 Amber 库。因此 amber 库在 IS 5.2.0 运行时不可用,导致 class 未找到错误。
相反,我们在 5.2.0
中使用 Apache Oltu
您只需将 IS 5.0.0 的 IS_HOME/repository/components/plugins 中的 amber amber_0.22.1358727.wso2v4.jar 复制到IS_HOME/repository/components/dropins。
更新:
此扩展不起作用的另一个原因是使用了 class,它在运行时未由 OAuth osgi 包导出。
我最近将我的环境从 WSO2 IS 5.0.0 更新到 WSO2 IS 5.2.0。我的环境由 2 台正在创建集群的机器组成(使用启用了粘性会话的 WKA 成员资格方案和负载均衡器(AWS ELB))。我正在使用 MySQL(不是默认的 H2 数据库)。部署IS的机器是Windows Server 2012 R2(EC2 AWS机器)。
在 IS 5.0.0 版本中,我们有自定义授权 OAuth 授权类型。它是根据以下文章实施的:
https://docs.wso2.com/display/IS500/Writing+a+Custom+OAuth+2.0+Grant+Type
升级完成后,在[IS_HOME]\repository\components\lib中添加了.jar文件,在console.log中系统启动成功,没有报错。但是当我们开始调用令牌端点时,系统开始出错:
https://slack-files.com/T0DDMMC9Y-F2QRF2JLA-bcd85857dc
https://slack-files.com/T0DDMMC9Y-F2QRFES10-ab528f64e5
然后我们重建自定义 OAuth 授权类型。我们将 org.wso2.carbon.identity.oauth_4.2.3.jar 更新到版本 4.2.7。我们关注了这些文章:
https://docs.wso2.com/display/IS520/Extension+Points+for+OAuth#ExtensionPointsforOAuth-CustomOAuthgranthandler
https://docs.wso2.com/display/IS520/Writing+a+Custom+OAuth+2.0+Grant+Type
但是,当我们启用自定义授权类型并开始调用令牌端点时,上述错误仍会记录在 console.log 中,并作为响应由 tomcat 服务器返回。
在我们为解决一些问题而进行了一些调整之后,我们取得了进展,但是我们仍然没有一个完整的解决方案:
https://slack-files.com/T0DDMMC9Y-F2S5LKT6V-560a2854ea
这可能与从 5.0.0 迁移到 5.2.0 时出现的某些问题有关,或者这是 Tomcat 服务器的某种配置问题? 或者这与授权类型本身有关?我们按照对 IS 5.0.0 所做的所有说明进行操作,但我们无法在 IS 5.2.0 上实现 运行。
提前致谢。
根本原因是,
原因:java.lang.ClassNotFoundException:org.apache.amber。oauth2.common.validators.AbstractValidator
WSO2 IS 不再使用 Amber 库。因此 amber 库在 IS 5.2.0 运行时不可用,导致 class 未找到错误。 相反,我们在 5.2.0
中使用 Apache Oltu您只需将 IS 5.0.0 的 IS_HOME/repository/components/plugins 中的 amber amber_0.22.1358727.wso2v4.jar 复制到IS_HOME/repository/components/dropins。
更新:
此扩展不起作用的另一个原因是使用了 class,它在运行时未由 OAuth osgi 包导出。