java - JBoss 的单独登录配置?

标签 java security jboss packaging rpm

我正在尝试创建一个 RPM 打包的 Ear 文件,该文件应该可以与 JBoss 容器中的其他 RPM 打包的 Ear 文件一起安装。 (我可能可以在 JBoss 中创建一个单独的容器,但这对于一只 Ear 来说是很大的开销。)除了一个问题之外,这工作得很好。

我的问题是这个 Ear 文件公开了使用自己的身份验证策略 (login-config.xml policy/application-policy/authentication/login-module) 的 Web 服务。现在多个 RPM 想要通过该文件提供身份验证信息,我们就与 RPM 规范规则发生冲突,即任何文件都不能被多个 RPM 包所拥有(无论如何,无论最后哪个 RPM 都会破坏前一个)。

有没有什么方法可以在单独的文件中声明应用程序策略/身份验证 block ,或者以某种方式将其放置在login-config.xml之外?例如,是否可以声明引用单独的登录 XML 定义的附加安全 mbean(在单独的文件中)?

这是JBoss v4.2,但我愿意稍后考虑它是否解决了这个问题。

更新:

卢卡斯规则。以下是工作配置!

<?xml version='1.0'?>

<server>
<mbean code="org.jboss.security.auth.login.DynamicLoginConfig"
name="jboss.security.tests:service=LoginConfig">

<depends optional-attribute-name="SecurityManagerService">
  jboss.security:service=JaasSecurityManager
</depends>
<depends optional-attribute-name="LoginConfigService">
  jboss.security:service=XMLLoginConfig
</depends>

<attribute name="PolicyConfig" serialDataType="jbxb">

  <jaas:policy
    xsi:schemaLocation="urn:jboss:security-config:4.1 resource:security-config_4_1.xsd"
    xmlns:jaas="urn:jboss:security-config:4.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <jaas:application-policy name="mySecurityDomain">
      <jaas:authentication>
        <jaas:login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
          <jaas:module-option name="unauthenticatedIdentity">noone</jaas:module-option>
          <jaas:module-option name="dsJndiName">java:/myDataSource</jaas:module-option>
          <jaas:module-option name="principalsQuery">SELECT password FROM WebServiceUser WHERE userName=?</jaas:module-option>
          <jaas:module-option name="rolesQuery">SELECT role, 'Roles' FROM WebServiceUser WHERE userName=?</jaas:module-option>
        </jaas:login-module>
      </jaas:authentication>
    </jaas:application-policy>
  </jaas:policy>

</attribute>
</mbean>
</server>

最佳答案

您可以尝试使用 DynamicLoginConfig 服务设置登录模块。我从来没有使用过它,但它看起来可以帮助你。它允许您创建登录模块配置 在不同的文件中并在应用程序安装期间部署它。

在这里您可以找到有关它的更多信息:

关于java - JBoss 的单独登录配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7584776/

相关文章:

c++ - 在低完整性进程下如何查询进程名称?

hibernate - 哪个版本的 Spring + Hibernate + JBoss 工作

java - 如何返回这个 for 循环中的字符串?

java - 身份验证过滤器无法正确识别身份验证

java - 在 UIMA 中访问注解

java - Jaspic ServerAuthModule 委托(delegate)给 JAAS Krb5LoginModule

json - kubernetes 上的 Keycloak 和使用 log4j2 记录 json 布局格式

java - 下载管理器如何在 Android 上工作?

JavaScript:由于安全错误,无法获取图像数据

java - 安全异常 : BC provider not installed