//***************************************************************************
// (c) Copyright IBM Corp. 2007 All rights reserved.
//
// The following sample of source code ("Sample") is owned by International
// Business Machines Corporation or one of its subsidiaries ("IBM") and is
// copyrighted and licensed, not sold. You may use, copy, modify, and
// distribute the Sample in any form without payment to IBM, for the purpose of
// assisting you in the development of your applications.
//
// The Sample code is provided to you on an "AS IS" basis, without warranty of
// any kind. IBM HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR
// IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do
// not allow for the exclusion or limitation of implied warranties, so the above
// limitations or exclusions may not apply to you. IBM shall not be liable for
// any damages you suffer as a result of using, copying, modifying or
// distributing the Sample, even if IBM has been advised of the possibility of
// such damages.
//***************************************************************************
//
// SOURCE FILE NAME: JCCSimpleGSSPluginTest.java
// SAMPLE: Get a DB2 Connection using plugin security
//
// This set of sample shows:
// 1. How to implement a JCC GSS-API plugin sample which does a userid and password check
// 2. How to use this sample plugin to get a Connection
//
// This sample plugin corresponds to the c sample plugin
// gssapi_simple in sqllib\samples\securtiy\plugins
//
// This set of sample contains the following 6 files:
//
// JCCSimpleGSSPluginTest.java
// This file uses sample plugin JCCSimpleGSSPlugin to get a Connection from DB2 server
//
// JCCSimpleGSSPlugin.java
// This file implements the sample JCCSimpleGSSPlugin that does a userid and password check.
//
// JCCSimpleGSSContext.java
// This file is used by JCCSimpleGSSPlugin.java to implement the plugin sample.
//
// JCCSimpleGSSCredential.java
// This file is used by JCCSimpleGSSPlugin.java to implement the plugin sample.
//
// JCCSimpleGSSException.java
// This file is used by JCCSimpleGSSPlugin.java to handle Exceptions
//
// JCCSimpleGSSName.java
// This file is used by JCCSimpleGSSPlugin.java to implement the plugin sample.
//
// how to run this JCCSimpleGSSPlugin sample
//
// compile the above 6 files using javac *.java
// Run JCCSimpleGSSPluginTest using
// java JCCSimpleGSSPluginTest server port dbname userid password
// Note: To run this sample, server side plugin gssapi_simple needs to be installed in
// the server plug-in directory on the server. Database manager configuration
// parameters SRVCON_GSSPLUGIN_LIST and SRVCON_AUTH need to set correctly
//
// None
//***************************************************************************
//
// For more information on the sample programs, see the README file.
//
// For information on developing Java applications see the Developing Java Applications book.
//
// For information on using SQL statements, see the SQL Reference.
//
// For the latest information on programming, compiling, and running DB2
// applications, visit the DB2 Information Center at
// http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp
//**************************************************************************/
public class JCCSimpleGSSPluginTest
{
public static void main (String[] args) throws Exception
{
if(args.length != 5)
throw new Exception("Usage: program_name [server] [port] [dbname] [userid] [password]");
String ServerName = args[0];
int PortNumber = (new Integer(args[1])).intValue();
String DatabaseName = args[2];
String userid = args[3];
String password = args[4];
String url = "jdbc:db2://" + ServerName + ":"+ PortNumber + "/" + DatabaseName;
java.util.Properties properties = new java.util.Properties();
properties.put("user", userid);
properties.put("password", password);
properties.put("pluginName", "gssapi_simple");
properties.put("securityMechanism",
new String("" + com.ibm.db2.jcc.DB2BaseDataSource.PLUGIN_SECURITY + ""));
properties.put("plugin", new JCCSimpleGSSPlugin());
java.sql.Connection con = null;
try
{
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
}
catch ( Exception e )
{
System.out.println("Error: failed to load Db2 jcc driver.");
}
try
{
con = java.sql.DriverManager.getConnection(url, properties);
System.out.println("Connected through JCC Type 4 driver using JCCSimpleGSSPlugin");
}
catch (Exception e)
{
System.out.println("Error occurred in getting Connection: "+ e.getMessage());
}
}
}