0

我目前正致力于在我的 RESTFul Web 服务中实现安全性。我发现有一个易于使用的 SecurityContext ,然后又被困在将我的用户信息放入其中。

@GET
@Path("item/{item_id}")
@Produces(MediaType.APPLICATION_JSON)
public Item getItem(@Context SecurityContext sc, @PathParam("item_id") Long id)
{

    if(!sc.isSecure())
        throw new SecurityException("You have to use a secure connection!");
    if(!sc.isUserInRole("admin"))
    {
        throw new SecurityException("You have to be an admin to access this information");
    }
    return itemFacade.find(id);
}

所以我的问题是我需要为我的 Web 服务编写一个登录,但我不知道该怎么做(所以我可以将它与 SecurityContext 对象一起使用)。如果无法使用 SecurityContext 对象,如果您能给我一些链接,我将不胜感激,这样我就可以完成它们。它还必须是最新的技术,这意味着如果可以不修改 web.xml 文件并且只使用注释来管理它,这可能是最好的方法。

我正在使用 NetBeans 7.3、JavaEE6 并使用 GlassFish 作为应用程序服务器。

4

1 回答 1

0

对于身份验证和授权,您应该考虑使用 JAAS。JAAS API 由一组专为用户身份验证和授权而设计的 Java 包组成。它实现了标准可插入身份验证模块 (PAM) 框架的 Java 版本,并兼容地扩展了 Java 2 平台的访问控制体系结构以支持基于用户的授权。JAAS 最初是作为 JDK 1.3 的扩展包发布的,并与 JDK 1.4+ 捆绑在一起。因为 JBossSX 框架仅使用 JAAS 的身份验证功能来实现声明性的基于角色的 J2EE 安全模型,所以本介绍仅关注该主题。

JAAS 身份验证以可插入方式执行。这允许 Java 应用程序保持独立于底层身份验证技术,并允许 JBossSX 安全管理器在不同的安全基础设施中工作。无需更改 JBossSX 安全管理器实现即可实现与安全基础架构的集成。需要更改的只是 JAAS 使用的身份验证堆栈的配置。

以下是为您提供进一步帮助的教程:

http://www.kopz.org/public/documents/tomcat/jaasintomcat.html

http://www.javacodegeeks.com/2012/06/java-jaas-form-b​​ased-authentication.html

于 2013-06-08T15:51:32.143 回答