我正在开发一个RESTlet API(JAVA),并且我创建了一个自定义授权过滤器,在将其传递给路由器之前运行所有请求。在我的请求中,我总是将会话ID作为请求属性传递,例如
http://localhost:8080/myAPI/{sid}/someResource/
现在,在扩展 ServerResource 的函数中,我可以做这样的事情来轻松提取 {sid} :
String sid = (getRequestAttributes().containsKey("sid")) ? getRequestAttributes().get("sid").toString() : "";
我的问题是,在我的授权功能中,它扩展了过滤器(授权功能不是通过路由器调用,而是在我的主 createInboundRoot()函数中调用),我不能使用相同的方法来提取 {sid} 。我已经使用 request.getResourceRef()。getSegments()的字符串操作创建了一个解决方法,但是必须有更好的方法吗?
任何帮助将不胜感激!
由于