我尝试使用Basic Authentication
来更改server.xml
的{{1}}配置,但它无效:BASIC authentication in jersey JAX-RS service and Tomcat 6.0 getting failed
因此我选择了一种不需要服务器特定配置的方法,我可以直接在我的代码中添加角色(客户端或服务器;不确定可用选项)。
请提供一些有关设置用户角色的可能选项的建议,以便我可以使用Tomcat 6.0
注释对我的Web服务方法进行身份验证。
答案 0 :(得分: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顺便说一下,不要忘记添加为你的球衣servlet的init-param。 RolesAllowedResourceFilterFactory从注入的SecurityContext获取其安全信息,我确信在某些时候只需委托给Servlet API获取凭据信息。
所以基本上如果你不想花时间让安全限制工作,你将最终取代大部分链......就像我说的那样,一个坏主意。
应用程序服务器上的功能可以让您不必花时间创建基础架构代码,如果您编写自己的基础架构代码,那么您将会遇到不好的时间。