泽西岛 - 要求进行身份验证

时间:2012-12-21 20:52:03

标签: java java-ee authentication glassfish jersey

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

现在我想“也”将我的一些服务类暴露为REST服务(我可能会使用Jersey),因此也可以通过移动设备访问它。但令我担心的是登录部分。

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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

public void adminOrCustomer() {}

}

我猜你已经拥有了角色和映射,所以只需使用你所拥有的相同角色,应用服务器将负责其余的工作。