我正在尝试让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的等效功能是什么?我是否真的需要处理Realms,UserManagers等,还是可以只在system-jazn-data.xml文件中添加一些XML?什么是最简单的解决方案?

最佳答案

好的,再做一些作业,发现它快要完成了。您需要将此添加到$ 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>


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

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

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


http://download.oracle.com/docs/cd/B32110_01/web.1013/b28957/jaas_intro.htm
http://download.oracle.com/docs/cd/B32110_01/web.1013/b28957/loginmod.htm#BABCDDAI

10-01 18:34