我已经实现了一个自定义的WSO2处理程序,以验证外部生成的JWT令牌,该令牌除其他外还包含用户范围。
在处理程序执行期间,我想添加另一项检查:获取与当前执行的端点关联的范围/作用域,并验证JWT令牌至少包含那些范围之一:
例如:
JWT有效载荷
user: xxx, scopes: ["write", "read"]
WSO2 API Publisher中的端点配置
POST /customers - scope: write
==> JWT.getScopes()->应该包含写入内容。
如何在自定义处理程序中获取当前执行的端点的范围/范围?
处理程序
public class JwtAuthHandler extends AbstractHandler {
@Override
public boolean handleRequest(MessageContext messageContext) {
//GET the scopes (write) of the currently invoked endpoint