2010-08-18 3 views
0

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

В JBoss-web.xml в приложения, поставить это:

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

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

ответ

1

Хорошо, сделал еще несколько домашних заданий и выяснил, что близко. Вам нужно добавить это $ OC4J_HOME/j2ee/yourinstance/конфигурации/системы 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: Даже лучше, нашел официальные веб-страницы:

1

а) На самом деле, лучший способ, чтобы положить, что на 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, который является реализацией/заменой Oracle для JAAS. Он более прочный и гибкий (хотя и более сложный). Теперь, если логика входа в систему так же проста, как вы писали выше, я думаю, этого будет достаточно.