配置 JAAS 以進行資料庫鑑別
您可以使用「Java™ 鑑別和授權服務 (JAAS)」來進行資料庫鑑別。
關於這項作業
您可以使用 JAAS 登入環境定義項目來指定自訂登入模組,以用於設定使用者名稱和密碼來向資料庫鑑別。
程序
- 在 server.xml 檔中新增
appSecurity-2.0、jdbc-4.0和jca-1.6特性。 您也可以新增appSecurity-2.0、jdbc-4.1和jca-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 特性。 - 利用要使用的登入模組來配置 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> - 使用您在步驟中配置的
jaasLoginContextEntry元素 ID 來配置dataSource元素jaasLoginContextEntryRef屬性,如下列範例所示。<dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" jaasLoginContextEntryRef="myJAASLoginEntry" .../>不過,只有在 EAR application.xml 檔或 WAR web.xml 檔中使用指定
res-auth值Container的res-refJNDI 參照來識別資料來源時,配置才會使用這個jaasLoginContextEntryRef值。 否則,會忽略jaasLoginContextEntryRef值。下列範例示範當您在sever.xml檔中定義jaasLoginContextEntryRef值來指定自訂登入模組時所需要的 application.xml 或 web.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> - 作為步驟 3 的替代方案,您可以在應用程式的部署描述子 ibm-web-bnd.xml 檔中配置
custom-login-configuration元素。 name 屬性必須符合 server.xml 檔中所定義jaasLoginContextEntry的id屬性。 例如:<resource-ref name="jdbc/ds1ref" binding-name="jdbc/ds1"> <custom-login-configuration name="myJAASLoginEntry"> <property name="property1" value="value1"/> </custom-login-configuration> </resource-ref>