gpt4 book ai didi

java - 使用 jersey 在 JAX-RS 中设置 @RolesAllowed 的角色

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:42 24 4
gpt4 key购买 nike

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

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

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

最佳答案

您需要返回并找出安全限制不起作用的原因。也许先从默认文件领域开始,然后再转向 JDBC 领域。 @RolesAllowed 在触发容器中行为的注释中。

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

他们在 Jersey 中启用@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 从注入(inject)的 SecurityContext 获取其安全信息,我确信在某些时候它只是委托(delegate)给 Servlet API 来获取凭据信息。

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

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

关于java - 使用 jersey 在 JAX-RS 中设置 @RolesAllowed 的角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15187613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com