java - 在 Jersey Web 服务中设置角色

标签 java jersey jetty dropwizard

我正在使用 Jersey + Jetty + Dropwizard + Hibernate 创建 Web 服务。

假设我有一个像这样的网络资源:

@Path("/")
@PermitAll
public class Resource {
    @RolesAllowed("user")
    @GET
    public String get() { return "GET"; }


@RolesAllowed("admin")
@POST
public String post(String content) { return content; }

@Path("sub")
public SubResource getSubResource() {
    return new SubResource();
}
}

我知道您可以使用HttpServletRequest.isUserInRole检查用户的角色。

问题是,我如何开始分配角色? Jersey 如何知道 isUserInRole 方法返回什么内容,或者知道如何根据角色过滤无法访问特定资源的人员?

我没有 web.xmlwebdefault.xml,因此定义应该在其他地方完成。

最佳答案

你必须提供一个支持@RolesAllowed("admin")注解的提供者类,然后你必须在你的应用程序中注册提供者类。通常它是在web.xml中完成的,但由于你没有使用它,你必须自己提供它。相关的例子可以找到here

关于java - 在 Jersey Web 服务中设置角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39488268/

相关文章:

java - Executor shutdownNow 任务被阻止?

java - POST请求变成GET

java - Spark 重启时使 session 无效

java - 安装 python-bioformats 时 python setup.py Egg_info 失败

java - 在 KAFKA 中生成和使用 JSON

java - 在 Weblogic 9.2 或 10.1 上部署 Jersey 1.3 Web 服务

java - Jersey REST 请求对象更改

linux - 如何在 Windows 操作系统中为 Jetty 7 添加用户

java - PMD 错误 - AvoidThrowingRawExceptionTypes

jakarta-ee - com.sun.jersey.server.impl.application.WebApplicationImpl _handleRequest