JavaEE安全-使用哪种方法?

JavaEE安全-使用哪种方法?,java,security,authentication,jakarta-ee,authorization,Java,Security,Authentication,Jakarta Ee,Authorization,哪一种是在JavaEE中实现安全性的最佳方法?(JPA/JSP) 我正在从事一个个人项目,以便学习JavaEE,对于如何在我的网站上进行授权和身份验证过程,我有点困惑 我有不同的角色,我不希望某些用户访问网站的某些部分。所以我一直在搜索文档和教程等,但我找到的一切都是3-4年前的事了。有什么比这更近期的事情需要我调查吗 以下是我发现的一些东西: 任何帮助都将不胜感激!!!:) 我最近与一个Java EE应用程序一起工作。这是相当流行的,你可以检查一下 它与角色、身份验证等一起工作 您可以在中使

哪一种是在JavaEE中实现安全性的最佳方法?(JPA/JSP)

我正在从事一个个人项目,以便学习JavaEE,对于如何在我的网站上进行授权和身份验证过程,我有点困惑

我有不同的角色,我不希望某些用户访问网站的某些部分。所以我一直在搜索文档和教程等,但我找到的一切都是3-4年前的事了。有什么比这更近期的事情需要我调查吗

以下是我发现的一些东西:


任何帮助都将不胜感激!!!:)

我最近与一个Java EE应用程序一起工作。这是相当流行的,你可以检查一下

它与角色、身份验证等一起工作


您可以在中使用它,也可以在其他部分使用它。

比JAAS更新的是框架。它支持JSR-350(EJB3),因此可以在JavaEE中正常工作。

。虽然它被称为春天;请注意,使用Spring安全性不需要编写Spring应用程序

如果您希望坚持使用JAAS,我建议您在尝试编写自己的登录模块之前,先使用容器的一个登录模块,以便开始使用。如果容器提供的模块不符合您的要求,您可能会编写一个。而且,有一个很好的方法可以帮助您详细了解它

此外,在定义哪些角色可以访问哪个HTTP方法(使用@RolesAllowed)之前,请先查看如何使用注释来声明servlet本身中的角色(@DeclareRoles,它出现在servlet规范2.5中)。您还可以使用@DenyAll和@PermitAll等注释来允许或禁止所有用户访问@TransportProtected将确保通过HTTPS访问HTTP方法。我们需要做的就是将源代码中的这些角色映射到JAAS领域中的实际角色;这通常使用特定于容器的描述符文件来完成

附录

由于您使用的是JSP,而不是Facelets或任何其他技术作为表示层,因此您可能会对。在一个庞大的web.xml文件中维护所有授权元数据要干净得多

就jpa而言,对它们的底层访问通常是在servlet或ejb上强制执行的。当然,您可以根据您的需要构建更具编程性的安全性—在这个过程中,使用实体侦听器会有所帮助,因为您可以拦截加载、更新和持久化操作(如果您非常特殊,但在大多数情况下,在执行业务逻辑之前构建安全性通常就足够了)


哦,看看(和Seam安全性),因为它是一个基于JavaEE构建的完整应用程序开发框架。

Spring安全教程。强烈推荐。

我正在发现春天,它从未停止让我感到惊讶。好的,现在我必须去读关于Spring安全性的书……我只是想知道,为什么每个人都认为JAAS可以直接在JavaEE中使用,而不提JASPIC?看见