git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@50874 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
149
Data/BulkLoad/EFT/Nominations/java/amTimestamp.java
Normal file
149
Data/BulkLoad/EFT/Nominations/java/amTimestamp.java
Normal file
@@ -0,0 +1,149 @@
|
||||
package tsdemo;
|
||||
// Class to alow Access manager to interface with the timestamp classes.
|
||||
import oracle.sql.BLOB;
|
||||
//import oracle.sql.*;
|
||||
import oracle.jdbc.*;
|
||||
import java.sql.*;
|
||||
import java.io.*;
|
||||
|
||||
//
|
||||
public class amTimestamp{
|
||||
//
|
||||
public static byte[] hash;
|
||||
//
|
||||
public static String fileName;
|
||||
//
|
||||
public static String timestamp;
|
||||
//
|
||||
public static oracle.sql.BLOB blobResponse;
|
||||
//
|
||||
public static String getHash() {
|
||||
//
|
||||
String stringHash;
|
||||
//System.out.println("Class Hash: " + hash);
|
||||
stringHash = hash.toString();
|
||||
//
|
||||
return stringHash;
|
||||
}
|
||||
//
|
||||
/* Private Declaration */
|
||||
private static Connection conn = null;
|
||||
|
||||
/* Procedural Declaration */
|
||||
public static Connection getConnection() throws SQLException {
|
||||
if ( conn == null ) {
|
||||
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
|
||||
try {
|
||||
conn = DriverManager.getConnection("jdbc:default:connection:");
|
||||
System.out.println("connection=default");
|
||||
} catch ( Exception e ){}
|
||||
}
|
||||
if ( conn == null ) {
|
||||
conn = DriverManager.getConnection("jdbc:oracle:thin:@loordv01:1521:dev10g","eft_nom","eft_nom");
|
||||
System.out.println("connection=thin");
|
||||
}
|
||||
conn.setAutoCommit(false); // this is needed to write in update mode to BLOB
|
||||
return conn;
|
||||
}
|
||||
//
|
||||
public static oracle.sql.BLOB getRespBlob() throws SQLException,IOException {
|
||||
//
|
||||
// Returning a BLOB seems to be more tricky than expected
|
||||
// If you return the original BLOB you will get an error
|
||||
// from oracle, however loading it as a binary stream
|
||||
// returns the value rather than a reference so works.
|
||||
//
|
||||
// Connection os required to create a temporary BLOB.
|
||||
//
|
||||
conn = getConnection();
|
||||
BLOB tmpBlob = BLOB.createTemporary(conn, false,BLOB.DURATION_SESSION);
|
||||
//
|
||||
// Parameter to tmpBlob.setBinaryStream() is odd, got from a example and
|
||||
// as it works I've left it as is.
|
||||
//
|
||||
OutputStream os = tmpBlob.setBinaryStream(0L);
|
||||
//
|
||||
os.write(blobResponse.getBytes());
|
||||
os.flush();
|
||||
os.close();
|
||||
//
|
||||
return tmpBlob;
|
||||
}
|
||||
//
|
||||
public static String amTimestamp(oracle.sql.BLOB blobFile,
|
||||
String URL,
|
||||
String password,
|
||||
String keystore) throws Exception {
|
||||
//
|
||||
//System.out.println(" URL: " + URL + " password: " + password + "keystore: " + keystore);
|
||||
//
|
||||
// Declare an Oracle BLOB type so we can pass this back to the PLSQL to allow the entire
|
||||
// timestamp response to be stored in the database (using the getRespBlob method)
|
||||
//
|
||||
blobResponse = oracle.sql.BLOB.empty_lob();
|
||||
timestamp = null;
|
||||
//
|
||||
// Get the hash value for the entered file
|
||||
//
|
||||
hash = amHashFile.getHash(blobFile, "SHA-1");
|
||||
//System.out.println("Hash: " + hash);
|
||||
//
|
||||
// Instantiate a TimeStamp instance
|
||||
//
|
||||
TimeStamp ts = new TimeStamp();
|
||||
//
|
||||
//set the variables via the set methods
|
||||
//
|
||||
ts.setKeystoreFile(keystore);
|
||||
ts.setKeystorePassword(password);
|
||||
ts.setURL(URL);
|
||||
// generate the timestamp
|
||||
try {
|
||||
//
|
||||
timestamp = ts.generateTimestamp(hash,1318);
|
||||
//
|
||||
//System.out.println("Got Timestamp : " + timestamp);
|
||||
//
|
||||
} catch (Exception e) {
|
||||
//
|
||||
throw new TSException(e.getMessage());
|
||||
//System.out.println("Exception occured.\n" + e.getMessage());
|
||||
}
|
||||
//
|
||||
byte[] TSResp = ts.getResp();
|
||||
//
|
||||
// Retrieve the timesatmp response array from the timestamp class
|
||||
//
|
||||
blobResponse.setBytes(TSResp);
|
||||
//
|
||||
//System.out.println("BLOB length is : " + blobResponse.getLength());
|
||||
//
|
||||
return timestamp;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param args
|
||||
*/
|
||||
public static void main(String[] args)
|
||||
{
|
||||
// Created for testing from JAVA rather than for actual use.
|
||||
//System.out.println("Got here 1");
|
||||
//String errMsg = "We";
|
||||
amTimestamp theTimestamp = new amTimestamp();
|
||||
//
|
||||
oracle.sql.BLOB emptyBlob = null;
|
||||
//
|
||||
try {
|
||||
//
|
||||
String timeVal = theTimestamp.amTimestamp(emptyBlob,"https://tsa.trust-sign.hu:1318/","almafa","C:\\EFT_Noms\\keystore.jks");
|
||||
//
|
||||
System.out.println(" TimeVal: " + timeVal);
|
||||
}
|
||||
catch (Exception e) {
|
||||
//
|
||||
//if (e.getMessage() != null)
|
||||
System.out.println(e.getMessage());
|
||||
//
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user