java - Jersey - 身份验证请求

标签 java jakarta-ee authentication glassfish jersey

我在 Glassfish 上有一个运行中的 JavaEE 6 Web 应用程序,这个应用程序已经有一个 JSF 前端并且有它的身份验证机制((使用 CDI 和基于注释的安全性)所以有一个登录屏幕,用户输入用户名密码,按下登录按钮Java EE 身份验证过程开始。

现在我想“也”将我的一些服务类公开为 REST 服务(我可能会使用 Jersey),这样它也可以从移动设备访问。但让我担心的是登录部分。

我将使用完全相同的现有身份验证但现在我希望我的应用程序将从 Rest 请求而不是从登录屏幕获取此凭据。然后继续使用已经存在的现有验证方法(从数据库中检查用户名密码等)

我有点迷路了我该怎么做,我想我需要使用这些过滤器之一来拦截请求并获取用户名密码,但不确定如何使用以及使用哪个过滤器?或者我不需要这样的东西?

最佳答案

您可以像保护 REST 服务一样保护 REST 服务,例如:

@Path("/foo")
@RolesAllowed({"admin", "customer"})
public class Foo {

@GET
@Produces("text/plain")
@RolesAllows("admin")
public void adminOnly() {}

public void adminOrCustomer() {}

}

我想您已经有了角色和它们的映射,所以只需使用您获得的相同角色,应用程序服务器将处理其余部分。

关于java - Jersey - 身份验证请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13997040/

相关文章:

java - 将我的 Java Web 应用程序链接到 Web?

java - 强制先执行 "WebFilter"

java - 通过 J_security_check

java - 如何将文件内容传递给 swagger @ExampleProperty 注释值?

jpa - 如何在 Java SE 中使用持久性 API 来防止不可重复的查询结果?

java - 使用正则表达式删除java中转义的unicode字符串

Java RS Rest API 方法成功返回值,状态码为 500,服务器日志中无异常

firebase - Google 登录弹出窗口自动选择让我登录的用户

c# - 在 ASP.NET Core 中,从 Cookie 而不是 Headers 中读取 JWT token

java - 在 Mojo 中使用 @requiresDependencyResolution 时调试 ClassNotFoundException 抛出我的 Maven Mojo