1

我尝试Basic Authentication通过更改server.xml配置来使用,Tomcat 6.0但没有成功:BASIC authentication in jersey JAX-RS service and Tomcat 6.0 getting failed

因此,我选择了一种不需要服务器特定配置的方式,我可以直接在我的代码中添加角色(客户端或服务器;不确定可用选项)。

请提供一些关于设置用户角色的可能选项的想法,以便我可以使用@RolesAllowed注释验证我的 Web 服务方法。

4

1 回答 1

1

您需要回过头来弄清楚为什么您的安全约束不起作用。可能先从默认文件领域开始,然后再转到 JDBC 领域。@RolesAllowed 在一个注释中触发容器中的行为。

如果您真的想自己做(一个坏主意),您可能会先创建一个自定义 servlet 过滤器,该过滤器实现了整个基本的 http 质询机制。接下来,您必须替换 Jersey 中的 SecurityContext 提供程序。

他们在球衣中启用@RolesAllowed 的“东西”是这样的:http: //java.net/projects/jersey/sources/svn/content/trunk/jersey/jersey-server/src/main/java/com/sun/jersey /api/container/filter/RolesAllowedResourceFilterFactory.java顺便说一句,不要忘记将其作为 init-param 添加到您的 jersey servlet。RolesAllowedResourceFilterFactory 从注入的 SecurityContext 获取其安全信息,我确信在某些时候它只是委托给 Servlet API 以获取凭据信息。

因此,基本上,如果您不想花时间让安全约束发挥作用,那么您最终将更换大部分链条……就像我说的那样,这是个坏主意。

应用服务器上的功能可以让您不必花时间创建基础架构代码,如果您编写自己的基础架构代码,您将度过一段糟糕的时光。

于 2013-03-17T04:47:42.813 回答