配置 JAAS 以進行資料庫鑑別

您可以使用「Java™ 鑑別和授權服務 (JAAS)」來進行資料庫鑑別。

關於這項作業

您可以使用 JAAS 登入環境定義項目來指定自訂登入模組,以用於設定使用者名稱和密碼來向資料庫鑑別。

程序

  1. server.xml 檔中新增 appSecurity-2.0jdbc-4.0jca-1.6 特性。 您也可以新增 appSecurity-2.0jdbc-4.1jca-1.7。 例如:
    
    <featureManager>
       <feature>appSecurity-2.0</feature>
       <feature>jdbc-4.0</feature>
       <feature>jca-1.6</feature>
    </featureManager>
    已穩定特性: jca-1.6 特性已穩定。 您可以繼續使用 jca-1.6 特性。 不過,請考量使用較新的 JCA 特性。
  2. 利用要使用的登入模組來配置 server.xml 檔中的 jaasLoginContextEntry 元素。 例如:
    
    <jaasLoginContextEntry id="myJAASLoginEntry" name="myJAASLoginEntry" loginModuleRef="myLoginModule" />
    	<jaasLoginModule id="myLoginModule" className="my.package.MyLoginModule" controlFlag="REQUIRED" libraryRef="customLoginLib"/>
    
    	<library id="customLoginLib">
    	  <fileset dir="${server.config.dir}" includes="MyLoginModule.jar"/>
            </library>
  3. 使用您在步驟中配置的 jaasLoginContextEntry 元素 ID 來配置 dataSource 元素 jaasLoginContextEntryRef 屬性,如下列範例所示。
    
    <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" 
                jaasLoginContextEntryRef="myJAASLoginEntry" .../>

    不過,只有在 EAR application.xml 檔或 WAR web.xml 檔中使用指定 res-authContainerres-ref JNDI 參照來識別資料來源時,配置才會使用這個 jaasLoginContextEntryRef 值。 否則,會忽略 jaasLoginContextEntryRef 值。

    下列範例示範當您在 sever.xml 檔中定義 jaasLoginContextEntryRef 值來指定自訂登入模組時所需要的 application.xmlweb.xml 配置。
    <resource-ref>
    	 <res-ref-name>java:app/jdbc/ds1</res-ref-name>
    	 <res-type>javax.sql.DataSource</res-type>
    	 <res-auth>Container</res-auth>
    </resource-ref>
    
  4. 作為步驟 3 的替代方案,您可以在應用程式的部署描述子 ibm-web-bnd.xml 檔中配置 custom-login-configuration 元素。 name 屬性必須符合 server.xml 檔中所定義 jaasLoginContextEntryid 屬性。 例如:
    
    <resource-ref name="jdbc/ds1ref" binding-name="jdbc/ds1">
       <custom-login-configuration name="myJAASLoginEntry">
         <property name="property1" value="value1"/>
       </custom-login-configuration>
    </resource-ref>