您需要回过头来弄清楚为什么您的安全约束不起作用。可能先从默认文件领域开始,然后再转到 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 以获取凭据信息。
因此,基本上,如果您不想花时间让安全约束发挥作用,那么您最终将更换大部分链条……就像我说的那样,这是个坏主意。
应用服务器上的功能可以让您不必花时间创建基础架构代码,如果您编写自己的基础架构代码,您将度过一段糟糕的时光。