当前位置: 首页 > 知识库问答 >
问题:

在JBoss中使用多登录模块

暴辰龙
2023-03-14

我是身份验证和安全领域的新手,我试图扩展我的应用程序的身份验证机制,该机制目前提供传统的用户名/密码身份验证,以提供用户通过LDAP服务器进行身份验证。

在当前的实现中,应用程序使用服务器API的j_security_check线程对用户进行身份验证。Jboss的standalone.xml文件有一个登录模块,指向myLoginModuleClass类,该类扩展了Jboss.security.auth.spi.UsernamePasswordLoginModule。

<security-domain name="db-domain">
  <authentication>
    <login-module code="myLoginModuleClass" flag="required" module="packageForClass">
      <module-option name="hashAlgorithm" value="SHA-256" />
      <module-option name="hashEncoding" value="base64" />
      <module-option name="password-stacking" value="useFirstPass" />
    </login-module>
  </authentication>
</security-domain>

我在一个单独的安全性中添加了另一个登录模块,称为LDAP登录模块。

html prettyprint-override"><security-domain name="ldap-domain">
  <authentication>
    <login-module code="LDAPLoginModule" flag="required" module="LDAPModulePackage">
      <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory" />
      <module-option name="java.naming.security.authentication" value="simple" />
      <module-option name="bindCredential" value="secret" />
      <module-option name="password-stacking" value="useFirstPass" />
    </login-module>
  </authentication>
</security-domain>

我目前面临的问题是:jboss-web.xml和项目的web.xml都指向现有的安全域:DB-domain。我只能在那里指定一个安全域。问:我如何通过编程方式告诉jboss基于用户选择指向特定的登录类,这意味着如果用户选择go have ldap auth,则调用LDAPLoginModule类?或者还有其他更好的方法来进行混合模式身份验证吗?

提前致谢

共有1个答案

爱亮
2023-03-14

与此同时,我在附近找到了一份工作。我可以在单个安全域中指定登录模块,并将标志从“必需”更改为“足够”。

<security-domain name="common-domain">
  <authentication>
    <login-module code="LDAPLoginModule" flag="sufficient" module="LDAPModulePackage">
      <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory" />
      <module-option name="java.naming.security.authentication" value="simple" />
      <module-option name="bindCredential" value="secret" />
      <module-option name="password-stacking" value="useFirstPass" />
    </login-module>

    <login-module code="mydbLoginModuleClass" flag="sufficient" module="packageForClass">
      <module-option name="hashAlgorithm" value="SHA-256" />
      <module-option name="hashEncoding" value="base64" />
      <module-option name="password-stacking" value="useFirstPass" />
    </login-module>

  </authentication>
</security-domain>
 类似资料:
  • 问题内容: 我有一个具有以下结构的小型python项目- 我计划使用默认的日志记录模块将消息打印到stdout和日志文件。要使用日志记录模块,需要进行一些初始化- 目前,在开始记录消息之前,我会在每个模块中执行此初始化。是否可以只在一个位置执行一次初始化,以便通过在整个项目中记录日志来重复使用相同的设置? 问题答案: 最佳实践是在每个模块中都定义一个记录器,如下所示: 在模块顶部附近,然后在模块中

  • 我正试图用LDAP登录模块配置JBoss,但到目前为止我还没有成功。当我打开我的webapp时,我得到了身份验证框,但我的凭据不起作用。 以下是我在服务器日志中看到的错误: 15:40:15,951 TRACE[org.jboss.security.auth.spi.LdapExtLoginModul](超文本传输协议--127.0.0.1-8088-1)初始化15:40:15,952 TRACE

  • JBoss Wildfly 8.0.0-最终 JSF 2.2.4 首先,我创建登录使用application-users.properties和application-roles.properties.添加用户add-user.bat 网状物xml 独立的。xml 登录。xhtml 所以这很有效。。现在我想使用数据库身份验证。。因此,我改变了独立。xml。 我使用此sql在数据库中插入角色和用户(

  • 我有一个小的python项目,它有如下结构-- 我计划使用默认日志模块将消息打印到stdout和一个日志文件。要使用日志模块,需要进行一些初始化- 目前,我在开始记录消息之前在每个模块中执行此初始化。是否有可能在一个地方只执行一次初始化,以便通过在整个项目中进行日志记录来重用相同的设置?

  • 我问这个问题是因为最近有一些用户的密码更改。我正在试图找出最新的密码,这意味着,我必须尝试两者。这方面的应用程序还没有部署,所以我需要一种方法在Jboss本身中验证这一点。我使用的JBOSS版本为7.2。

  • 问题内容: 我正在尝试使用Selenium登录gmail。在新的gmail登录中,首先输入您的电子邮件ID,然后在下一页输入密码。电子邮件页面的URL和密码页面的URL不同。因此,当我在其中传递密码URL时,它将重新加载页面,并且如果您刷新URL而未输入密码,它将重定向到电子邮件页面。因此,它缺少密码字段选择器。仍然是先前的网址,即电子邮件页面的网址。这是我的代码。我正在使用Chrome驱动程序和