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