如何在Liberty上使用TLS_CLIENT_CERTIFICATE_SECURITY选项设置JDBC驱动程序的securityMechanism属性?

shi*_*-jp 5 db2 ssl jdbc custom-properties websphere-liberty

我尝试使用WebsphereLiberty®上的选项(参考以下IBM®Knowledge Center)来设置JDBC驱动程序securityMechanism属性,但是在启动Websphere Liberty(2015年7月测试版)时收到警告消息。TLS_CLIENT_CERTIFICATE_SECURITYCWWKG0032W

您能告诉我如何通过Websphere Liberty上securityMechanismTLS_CLIENT_CERTIFICATE_SECURITY选项设置JDBC驱动程序的属性吗?

IBM Data Server Driver for JDBC和SQLJ支持证书认证

用于JDBC和SQLJ的IBM®数据服务器驱动程序支持对证书认证的客户机支持,以支持到DB2®for z /OS®版本10或更高版本的数据服务器的连接。

Websphere Liberty Server启动时的console.log

CWWKG0032W: Unexpected value specified for property
            [securityMechanism], value = [18]. >Expected value(s) are:
            [3][4][7][9][11][12][13][15][16].
Run Code Online (Sandbox Code Playgroud)

securityMechanism="18"TLS_CLIENT_CERTIFICATE_SECURITY,我通过以下方式确认了该值:

\>javac -classpath .;db2jcc4.jar; JDBCCheck
\>java -classpath .;db2jcc4.jar; JDBCCheck
  TLS_CLIENT_CERTIFICATE_SECURITY: 18
Run Code Online (Sandbox Code Playgroud)

JDBCCheck类:

class JDBCCheck{
  public static void main(String args[]){
    com.ibm.db2.jcc.DB2SimpleDataSource dataSource =
                                   new com.ibm.db2.jcc.DB2SimpleDataSource();
    System.out.println( "TLS_CLIENT_CERTIFICATE_SECURITY: "
                        + dataSource.TLS_CLIENT_CERTIFICATE_SECURITY);
  }
}
Run Code Online (Sandbox Code Playgroud)

server.xml

<library id="db2-library">
  <fileset dir="lib" id="db2-fileset" includes="db2jcc4.jar db2jcc_license_cu.jar"/>
</library>

<dataSource id="db2" jndiName="jdbc/sampledb">
  <jdbcDriver libraryRef="db2-library"/>
  <properties.db2.jcc databaseName="SAMPLEDB" password="password" portNumber="10443"
              serverName="XX.XX.XX.XX" user="db2inst1" sslConnection="true"
              sslTrustStoreLocation="ssld/defaultTrustStore"
              sslTrustStorePassword="trustpassword" securityMechanism="18"/>
</dataSource>
Run Code Online (Sandbox Code Playgroud)

更新01:

  • db2jcc4.jar级别/版本为DB2 10.5FP1
  • 自由的Websphere不启动的CWWKG0032W警告时,我使用的通用JDBC驱动程序的属性properties,而不是DB2® JCC性质properties.db2.jcc

And*_*ert 2

基于 IBM\xc2\xae 知识中心中的此主题:\n Java EE Full Platform 7.0部分:事务 > dataSource > properties.db2.jcc

\n\n

目前,WebSphere Liberty 仅支持 securityMechanism 的以下值:

\n\n
    \n
  • 值=“3”名称=“CLEAR_TEXT_PASSWORD_SECURITY”\n
  • 值=“4”名称=“USER_ONLY_SECURITY”\n
  • 值=“7”名称=“ENCRYPTED_PASSWORD_SECURITY”\n
  • 值=“9”名称=“ENCRYPTED_USER_AND_PASSWORD_SECURITY”\n
  • 值=“11”名称=“KERBEROS_SECURITY”\n
  • 值=“12”名称=“ENCRYPTED_USER_AND_DATA_SECURITY”\n
  • 值=“13”名称=“ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY”\n
  • 值=“15”名称=“PLUGIN_SECURITY”\n
  • 值=“16”名称=“ENCRYPTED_USER_ONLY_SECURITY”\n
\n\n

如果您希望将 TLS_CLIENT_CERTIFICATE_SECURITY 添加为 Liberty 中的安全机制,我建议您打开 RFE,以便 Liberty 开发人员了解支持此功能的需求。

\n\n

更新:
\n要解决此问题,您仍然可以指定 securityMechanism="18",但只需在通用 <properties> 元素中执行此操作,而不是在 db2 特定的 <properties.db2.jcc> 元素中执行此操作(看起来您有已经弄清楚了)。

\n