我正在尝试实现多租户AppEngine Web RESTful界面的不同方式。 其中之一是使用URL的一部分作为租户名称。 问题是我使用Jersey作为RESTful接口的JAX-RS实现,我希望像/ tenant1 / res1这样的url首先被某种解析,它将占用/ tenant1部分,将命名空间设置为tenant1,然后将其余的URL传递给Jerseys的servlet以进行常规处理。
某事可能是ServletFilter或Servlet,也可能是我想不到的。
我该如何实施? 这种实施可能存在哪些问题?
谢谢你, IDO。
答案 0 :(得分:2)
我这样做但是使用Restlet。命名空间唯一标识用户所属的客户。
第一个URL片段包含命名空间。我在RESTLET身份验证器(基本上是一个过滤器)中验证命名空间,当经过身份验证的用户不属于给定的命名空间/客户时,我拒绝继续。
我使用客户的主键作为命名空间。这有一个额外的好处,即可以轻松地(mem-)缓存有效的命名空间/客户,并且我拒绝任何包含无效命名空间的调用。
对此设置非常满意并且没有遇到任何问题。