/*-------------------------------------------------------------------------
*
* Copyright (c) 2011, PostgreSQL Global Development Group
*
*
*-------------------------------------------------------------------------
*/
package org.postgresql.ssl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

/**
 * 
 * Quick and dirty tester for the cert auth factory
 * @author Marc-Andre Laverdiere
 *
 */
public class PostgreSQLCertConnTester {

	public static void main(String[] args) throws ClassNotFoundException, SQLException{

		
		// ========== TODO TODO TODO Set those values as needed for your test
		final String userId = "";
		
		//Set the properties
		System.setProperty(SysPropCertAuthFactory.CONFIG_KEYSTORE_PATH, "");
		System.setProperty(SysPropCertAuthFactory.CONFIG_KEYSTORE_PWD, "");
		System.setProperty(SysPropCertAuthFactory.CONFIG_TRUSTSTORE_PATH, "");
		System.setProperty(SysPropCertAuthFactory.CONFIG_TRUSTSTORE_PWD, "");

		
		// ============== End TODO section
		
		final String connUrl = "jdbc:postgresql://127.0.0.1:5432/postgres?ssl=true&sslfactory=org.postgresql.ssl.SysPropCertAuthFactory";
		final String query = "select * from pg_largeobject";
		Class.forName("org.postgresql.Driver");
		Properties props = new Properties();
		props.setProperty("user",userId);//it somehow picks my logged-in user here
		Connection conn = DriverManager.getConnection(connUrl,props);
		
		PreparedStatement stmt = conn.prepareStatement(query);
		stmt.execute();
		ResultSet rs = stmt.getResultSet();
		while(rs.next()){
			System.out.println("Reading row #" + rs.getRow());
		}
	}
	
}
