java - 以编程方式配置 glassfish 身份验证的两个领域

标签 java jsf-2 jdbc glassfish ldap

对于当前的应用,客户向我们提出了以下要求:

  • Glassfish 4 应用服务器的使用
  • JEE7
  • PrimeFaces
  • 允许针对 LDAP 和 JDBC 数据库进行授权,可以在部署应用程序后在这两种数据库之间进行切换

我想知道是否有人对我如何实现这一目标有任何想法,因为我只使用预定义的领域与 glassfish 合作,而不必创建一个。其流程是,部署应用程序后,管理员可以选择访问站点的用户是根据 LDAP 还是本地 JDBC 数据库进行身份验证。这一决定不应该影响前端的流程,这意味着应该只有一个登录页面,该页面转到一个功能,然后根据配置确定使用哪个领域进行身份验证。

任何帮助将不胜感激。

最佳答案

我认为你有三种选择:

配置两个 glassfish 领域并在 web.xml:/web-app/login-config/auth-realm 中进行切换

  • 优点:非常简单,您可以使用管理 ui(服务器配置 -> 安全 -> 领域)或 asadmin 来配置它们
  • 缺点:
    • 一次只能使用一个
    • 必须在应用程序外部配置
    • 切换需要重新加载应用程序(无需重新部署,只需重新加载)
<小时/>

开发自己的 glassfish 领域,其中封装了 jdbc 领域和 ldap 领域

  • 优点:
    • 您可以同时使用两者(无需切换)
    • 您仍然可以使用 ui 或 asadmin 配置它们,但支持有限
  • 缺点:
    • 需要领域和模块类的知识和外部开发
    • 必须在应用程序外部配置
    • glassfish 特定实现(不适用于其他容器)

一些引用herehere

<小时/>

开发可插入身份验证架构 (JASPIC)

  • 优点:
    • 程序化方法:最大程度的自由
    • 可以在应用程序内部署(无需外部配置且无需重新加载)
    • 标准,可以在(几乎)所有 JEE 容器中重用
  • 缺点:
    • 非常难以开发,需要有关 JASPIC 和(可选,但建议)JAAS 的知识
    • 缺少 JASPIC 文档

如果您确实想要可插入的身份验证,一些引用文献是 here和优秀的article来自Arjan Tijms

祝你好运!

关于java - 以编程方式配置 glassfish 身份验证的两个领域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21540080/

相关文章:

Ajax Listener 事件 valueChange 似乎触发了 onClick 而不是 onChange

java - JDBC 和 Sql Server 2008 连接

mysql - 使用 spring boot、hibernate 和 mysql 批量插入无法正常工作

java - 无法在 Android 中使用 AlarmManager 停止服务

java - 解密网页cookie

java - 在 hibernate 中将多个集合映射到一个表中

JSF 如何使用命令按钮重定向到运行时确定的另一个页面?

java - Scala 中的集合 <?>

jsf - 从请求作用域 bean 访问 session 作用域 bean

java - resultset.getObject 上的 AbstractMethodError