以编程方式为glassfish auth配置两个领域

时间:2014-02-03 23:35:38

标签: java jsf-2 jdbc glassfish ldap

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

  • 使用Glassfish 4 Application Server
  • JEE7
  • PrimeFaces
  • 允许对LDAP和JDBC数据库进行授权,可以在部署应用程序后进行切换

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我认为你有三种选择:

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

中切换它们
  • 专业人员:非常简单,您可以使用管理ui(server-config - > security - >域)或asadmin配置它们
  • 缺点
    • 一次只能使用一个
    • 必须在应用程序外配置
    • switch需要重新加载应用程序(不重新部署,只需重新加载)

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

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

一些参考herehere


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

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

如果你真的想要一个可插拔的身份验证,一些引用是here和来自Arjan Tijms的优秀article

祝你好运!