我正在开发一个基于 OSGi 的Web 应用程序,它公开了几个REST资源。为此,我利用了Amdatu 项目的两个包,即org.amdatu.web.rest.jaxrs
和org.amdatu.web.rest.wink
.
系统运行良好,但现在我必须解决一些安全问题。登录后,我的 OSGi 服务器为用户提供了一个 JWT 令牌,其中存储了用户的角色。对于 Authorization 标头中的每个请求,此令牌都会发送回服务器。
我可以在资源方法的开头轻松检查令牌的有效性和用户的角色,但我想通过注释来做到这一点。通过扩展javax.servlet.Filter interface
,我实现了一个能够拦截所有 http 请求的过滤器类。
不幸的是,在这个类中,我无法知道为资源方法设置了哪些注释(HttpServletRequest 对象仅提供资源路径信息)。
所以,我的问题是:有没有办法从过滤器类中检查资源方法注释以正确处理 JWT?
我找到了几个基于 Jersey 的解决方案,但它与前面提到的 Amdatu 包冲突。提前致谢。