Настройка JAAS на OC4J - PullRequest
       4

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

0 голосов
/ 19 августа 2010

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

Ответы [ 2 ]

1 голос
/ 24 января 2011

a) На самом деле, лучший способ - поместить это в приложение 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>

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

1 голос
/ 19 августа 2010

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

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

UPDATE: Еще лучше, нашел официальные веб-страницы:

...