Настройка JAAS на OC4J

Я пытаюсь заставить JAAS работать с OC4J.
Я уже добился того, чтобы JAAS работал с JBoss. Использовать JAAS с JBoss просто (для меня).

В jboss-web.xml приложения поместите это:

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

И поместите следующее в файл login-config.xml JBoss:

<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 и т. д., или я могу просто добавить XML в файл system-jazn-data.xml? Какое самое простое решение?


person Gary Kephart    schedule 18.08.2010    source источник


Ответы (2)


Хорошо, сделал еще немного домашней работы и узнал, что это близко. Вам нужно добавить это в $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 уже есть этот класс, но я не смог его найти. Включите этот класс в свой EAR/WAR/JAR, который будет развернут в OC4J.

Все еще работаю над аспектом входа в систему с группами/ролями.

ОБНОВЛЕНИЕ: Еще лучше, нашел официальные веб-страницы:

person Gary Kephart    schedule 19.08.2010

а) На самом деле, лучше всего поместить это в приложение orion, и оно будет устанавливаться автоматически каждый раз при развертывании приложения: это будет выглядеть примерно так:

<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>

б) Вы должны проверить JAZN, который является реализацией/заменой Oracle для JAAS. Он более надежный и гибкий (хотя и более сложный). Теперь, если логика входа в систему так же проста, как вы написали выше, я думаю, этого будет достаточно.

person mfcabrera    schedule 24.01.2011