0

我试图让 JAAS 与 OC4J 一起工作。
我之前已经让 JAAS 与 JBoss 合作过。将 JAAS 与 JBoss 一起使用很简单(对我而言)。

在应用程序的 jboss-web.xml 中,输入以下内容:

<security-domain>java:/jaas/myApp</security-domain>

并将以下内容放入 JBoss 的 login-config.xml 中:

<application-policy name = "myApp">
   <authentication>
      <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag = "required">
        <module-option name="dsJndiName">java:/jdbc/myDS</module-option>
        <module-option name="principalsQuery">SELECT password FROM users WHERE username=?</module-option>
        <module-option name="rolesQuery">select name, 'Roles' from groups ...</module-option>
      </login-module>
   </authentication>
</application-policy>

那么 OC4J 中的等价物是什么?我真的需要处理领域、用户管理器等,还是我可以在 system-jazn-data.xml 文件中添加一些 XML?最简单的解决方案是什么?

4

2 回答 2

1

好的,做了更多的功课,发现它已经接近了。您需要将此添加到 $OC4J_HOME/j2ee/yourinstance/config/system-jazn-data.xml

<application>
  <name>myApp</name>
  <login-modules>
    <login-module>
      <class>com.company.project.JDBCLoginModule</class>
      <control-flag>required</control-flag>
      <options>
        <option>
          <name>principalsQuery</name>
          <value>SELECT password FROM users WHERE username=?</value>
        </option>
        <option>
          <name>dsJndiName</name>
          <value>jdbc/myDS</value>
        </option>
      </options>
    </login-module>
  </login-modules>
</application>

然后,您必须创建 JDBCLoginModule 类,该类实现javax.security.auth.spi.LoginModule. 也许 OC4J 已经有那个类,但我找不到它。将该类包含在部署到 OC4J 的 EAR/WAR/JAR 中。

仍在处理登录的组/角色方面。

更新:更好的是,找到了官方网页:

于 2010-08-19T17:54:46.200 回答
1

a)实际上,最好的方法是将它放在 orion-applcation 上,它会在每次部署应用程序时自动安装:它看起来像

<jazn-loginconfig>
  <application>
    <name>ApplicationName</name>
    <login-modules>
      <login-module>
        <class>mycomapany.idm.loginmodules.BlahBlahLoginModule</class>
        <control-flag>required</control-flag>
        <options>
          <option>
          <name>debug</name>
          <value>true</value>
          </option>
        </options>
      </login-module>
    </login-modules>
  </application>
</jazn-loginconfig>

b) 您应该检查 JAZN,它是 JAAS 的 Oracle 实现/替换。它更健壮和灵活(虽然更复杂)。现在,如果您的登录逻辑像上面发布的那样简单,我认为这就足够了。

于 2011-01-24T16:02:19.183 回答