【问题标题】:How to implement authentification in JSF in glassfish?如何在 glassfish 的 JSF 中实现身份验证?
【发布时间】:2012-04-03 12:29:59
【问题描述】:

我有一个嵌入式 glassfish 服务器和一个小型网络应用程序。我想向它添加登录身份验证的东西。问题:到目前为止,我发现的所有教程都告诉我在 4848 端口上使用 glassfish 管理控制台并在那里配置 jdbc 领域。是否可以使用像 web.xmlglassfish-resources.xml 这样的 xml 文件来做到这一点,并为他们提供我的战争。让我的应用程序完全可移植会很好。提前致谢!

【问题讨论】:

    标签: java jsf jakarta-ee glassfish


    【解决方案1】:

    您是否考虑过简单地创建一个用于输入用户名/密码的安全表单,然后只检查您的数据库中的那些?

    【讨论】:

    • 感谢您的回复!你能详细说明一下吗?我发现了一些关于“程序登录 HttpServletRequest#login()”[stackoverflow.com/questions/2206911/….是这个意思吗?
    • 嗯,这个信息量很大。我想这取决于您需要什么级别的保护。在类似的情况下,我必须为 uni 创建登录名。项目中,我只是有一个 https 表单,输入的数据与 javaDB 实体进行了比较(在途中也对它们进行了加密,但只是为了好玩)。我没有任何工业级安全方面的经验。
    • 我想要一些基本的东西:注册,使用保持登录选项登录,拒绝未经授权用户登录页面以外的所有页面的访问,从已授权用户的登录页面自动重定向。
    • 好吧,我刚刚使用 JSF。对于工业应用来说,它可能不是一个好主意,但对我的情况有用。创建表单后,您需要对 web.xml 文件进行一些修改以提供 https 连接。希望这可以帮助您入门。
    【解决方案2】:

    根据 Java EE 6 规范(以及 Java EE 6 教程,Overview of Java EE Security 章):

    组件的安全性由其容器提供

    因此,使用标准安全概念,让您的 Web 应用程序了解应由容器管理的领域和其他功能是不明智的。

    理论上,有一种方法可以实现您的目标,但它非常复杂,最终它甚至不是完全与容器无关的。这种方式包括开发您自己的JAAS(Java 身份验证和授权服务),并在部署您的应用程序之前将其部署到容器中。

    您可以在此JAAS Tutorial 中找到更多参考资料,我从中提取以下几行来解释我上面总结的概念:

    系统级安全性是根据用户组定义的,称为 角色,以及就安全权限映射定义而言,称为 领域。应用程序级别的安全性由用户组和 领域。

    在应用程序级别,安全权限还列出了 每个用户组可访问的各种应用程序组件 在每个领域。因此,当一个应用程序被部署时,它的应用程序 级别领域和角色映射到系统级别领域和角色 在服务器上定义。

    【讨论】:

    • 感谢您的回复!请你给我推荐一个教程或一个例子来开始吗? 'HttpServletRequest#login()' 也可以被视为容器管理的东西吗?
    • @Melissaa 在这里您可以找到使用 HttpServletRequest 的示例:docs.oracle.com/javaee/6/tutorial/doc/glxce.html。关于 JAAS,我已经在我的回答中插入了一个教程链接
    • 欢迎。如果您认为答案有用,您可以点赞或接受它
    猜你喜欢
    • 2011-08-20
    • 2018-09-29
    • 2017-10-26
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多