2010-08-18 76 views
0

我試圖讓JAAS與OC4J一起工作。
我已經得到JAAS與JBoss合作了。使用JAAS和JBoss很簡單(對我來說)。在OC4J上配置JAAS

在應用程序中的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等,還是隻需要在system-jazn-data.xml文件中添加一些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已經有了這門課,但我找不到它。將該類包含在部署到OC4J的EAR/WAR/JAR中。

仍在處理登錄的組/角色方面。

UPDATE: 更妙的是,發現官方網頁:

1

一)其實,最好的辦法就是把那獵戶座-的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實施/替換。它更加健壯和靈活(儘管更復雜)。現在如果你登錄邏輯和上面一樣簡單,我認爲這就夠了。