com.wm.app.tn.db
Class SecurityOps

java.lang.Object
  extended by com.wm.app.tn.db.SecurityOps

public class SecurityOps
extends java.lang.Object

Provides database operations for storing and retrieving certificates and private key information in CertificateData table.


Constructor Summary
SecurityOps()
           
 
Method Summary
static int deleteCertificateData(java.sql.Connection conn, java.lang.String certId)
          Delete a row from the CertificateData table.
static com.wm.app.tn.security.CertData[] getAllCertificateData(java.sql.Connection conn, java.lang.String ownerId, java.lang.String partnerId, java.lang.String usage)
          Retrieve all certificate data for a given OwnerID, PartnerID, and Usage.
static com.wm.app.tn.security.CertData[] getAllCertificateDataByKeystoreAlias(java.lang.String keystoreAlias)
          Given a keystore alias, return all certificate data from the CertificateData table.
static java.util.List<com.wm.app.tn.security.CertData> getAllCertificateDataForOwner(java.sql.Connection conn, java.lang.String ownerId)
          Retrieve all certificate data for a specified owner.
static com.wm.app.tn.security.CertData getCertificateData(java.sql.Connection conn, java.lang.String ownerId, java.lang.String partnerId, java.lang.String usage)
          Retrieve the primary certificate data for a given OwnerID, PartnerID, and Usage.
static com.wm.app.tn.security.CertData getCertificateDataByCertID(java.sql.Connection conn, java.lang.String certId)
          Retrieve certificate data for a given certificate ID.
static com.wm.app.tn.security.CertData getCertificateDataByCertID(java.lang.String certId)
          Retrieve certificate data for a given certificate ID.
static java.util.Vector<com.wm.app.tn.security.CertData> getCertificateDataForOwner(java.sql.Connection conn, java.lang.String ownerId)
          Retrieve certificate data for a given owner ID.
static java.util.Vector<com.wm.app.tn.security.CertData> getCertificateDataForPartnerAndUsage(java.sql.Connection conn, java.lang.String partnerId, java.lang.String usage)
          Retrieve all certificate data for the given PartnerID and Usage.
static java.util.Vector<com.wm.app.tn.security.CertData> getCertificateDataForUpdate(java.sql.Connection conn, java.lang.String ownerId, java.sql.Timestamp expDate)
          Retrieve all Certificate data for a given owner and a specified expiry date.
static com.wm.app.tn.security.CertData getCertificateDataWithPriority(java.sql.Connection conn, java.lang.String ownerId, java.lang.String partnerId, java.lang.String usage, int priority)
          Retrieve certificate data for a given OwnerID, PartnerID, Usage, and priority.
static java.lang.String getOwnerByCertID(java.sql.Connection conn, java.lang.String certId)
          Returns the owner ID for a giver certificate ID.
static java.lang.String getOwnerByCertID(java.lang.String certId)
          Returns the owner ID for a giver certificate ID.
static java.lang.String insertCertificateData(java.sql.Connection conn, com.wm.app.tn.security.CertData data, boolean skipChainValidation)
          Insert a new row of certificate information in the CertificateData table.
static void setPrimaryCertificate(java.sql.Connection conn, java.lang.String ownerId, java.lang.String partnerId, java.lang.String usage, java.lang.String certId)
          Set a certificate as the primary certificate for a given certificate ID, owner, partner, and usage combination.
static void swapPriority(java.lang.String certId1, java.lang.String certId2)
           
static boolean updateCertificateData(com.wm.app.tn.security.CertData data)
          Update the certificate data for a certificate.
static boolean updateCertificateData(java.sql.Connection conn, com.wm.app.tn.security.CertData data)
          Update the certificate data for a certificate.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SecurityOps

public SecurityOps()
Method Detail

insertCertificateData

public static java.lang.String insertCertificateData(java.sql.Connection conn,
                                                     com.wm.app.tn.security.CertData data,
                                                     boolean skipChainValidation)
                                              throws EXMLException
Insert a new row of certificate information in the CertificateData table. If new CertData (CertID==null), generate new unique CertID. Check if chain is valid. Check if chain is trusted if sign/verify and receiver is hub Check if private key is valid. Validation of certificate chain is ignored if keyStoreAlias and keyAlias is specified.

Returns:
CertID. Return null if CertificateData null,
Throws:
EXMLException

updateCertificateData

public static boolean updateCertificateData(com.wm.app.tn.security.CertData data)
                                     throws EXMLException
Update the certificate data for a certificate.

Throws:
EXMLException

updateCertificateData

public static boolean updateCertificateData(java.sql.Connection conn,
                                            com.wm.app.tn.security.CertData data)
                                     throws EXMLException
Update the certificate data for a certificate. Check if chain is valid. Check if chain is trusted if sign/verify and receiver is hub Check if private key is valid.

Returns:
CertID.
Throws:
EXMLException

deleteCertificateData

public static int deleteCertificateData(java.sql.Connection conn,
                                        java.lang.String certId)
                                 throws EXMLException
Delete a row from the CertificateData table.

Throws:
EXMLException

swapPriority

public static void swapPriority(java.lang.String certId1,
                                java.lang.String certId2)
                         throws EXMLException
Throws:
EXMLException

setPrimaryCertificate

public static void setPrimaryCertificate(java.sql.Connection conn,
                                         java.lang.String ownerId,
                                         java.lang.String partnerId,
                                         java.lang.String usage,
                                         java.lang.String certId)
                                  throws EXMLException
Set a certificate as the primary certificate for a given certificate ID, owner, partner, and usage combination.

Throws:
EXMLException - If anything goes wrong while setting the given certID as Primary

getCertificateData

public static com.wm.app.tn.security.CertData getCertificateData(java.sql.Connection conn,
                                                                 java.lang.String ownerId,
                                                                 java.lang.String partnerId,
                                                                 java.lang.String usage)
                                                          throws EXMLException
Retrieve the primary certificate data for a given OwnerID, PartnerID, and Usage. It will always return an un-expired certificate to caller.i.e. If the certificate with priority 0 is expired then it looks for the next certificate in line and swaps their priority

Throws:
EXMLException - If anything goes wrong while retrieving the certificate

getCertificateDataWithPriority

public static com.wm.app.tn.security.CertData getCertificateDataWithPriority(java.sql.Connection conn,
                                                                             java.lang.String ownerId,
                                                                             java.lang.String partnerId,
                                                                             java.lang.String usage,
                                                                             int priority)
                                                                      throws EXMLException
Retrieve certificate data for a given OwnerID, PartnerID, Usage, and priority. - "0" stands for primary. - "1" stands for secondary.

Throws:
EXMLException

getAllCertificateData

public static com.wm.app.tn.security.CertData[] getAllCertificateData(java.sql.Connection conn,
                                                                      java.lang.String ownerId,
                                                                      java.lang.String partnerId,
                                                                      java.lang.String usage)
                                                               throws EXMLException
Retrieve all certificate data for a given OwnerID, PartnerID, and Usage.

Throws:
EXMLException

getAllCertificateDataByKeystoreAlias

public static com.wm.app.tn.security.CertData[] getAllCertificateDataByKeystoreAlias(java.lang.String keystoreAlias)
                                                                              throws EXMLException
Given a keystore alias, return all certificate data from the CertificateData table.

Throws:
EXMLException

getCertificateDataByCertID

public static com.wm.app.tn.security.CertData getCertificateDataByCertID(java.lang.String certId)
                                                                  throws EXMLException
Retrieve certificate data for a given certificate ID.

Throws:
EXMLException

getCertificateDataByCertID

public static com.wm.app.tn.security.CertData getCertificateDataByCertID(java.sql.Connection conn,
                                                                         java.lang.String certId)
                                                                  throws EXMLException
Retrieve certificate data for a given certificate ID.

Throws:
EXMLException

getOwnerByCertID

public static java.lang.String getOwnerByCertID(java.lang.String certId)
                                         throws EXMLException
Returns the owner ID for a giver certificate ID.

Throws:
EXMLException

getOwnerByCertID

public static java.lang.String getOwnerByCertID(java.sql.Connection conn,
                                                java.lang.String certId)
                                         throws EXMLException
Returns the owner ID for a giver certificate ID.

Throws:
EXMLException

getCertificateDataForOwner

public static java.util.Vector<com.wm.app.tn.security.CertData> getCertificateDataForOwner(java.sql.Connection conn,
                                                                                           java.lang.String ownerId)
                                                                                    throws EXMLException
Retrieve certificate data for a given owner ID.

Returns:
a Vector contains all CertData. Returns null if no data found.
Throws:
EXMLException

getAllCertificateDataForOwner

public static java.util.List<com.wm.app.tn.security.CertData> getAllCertificateDataForOwner(java.sql.Connection conn,
                                                                                            java.lang.String ownerId)
                                                                                     throws EXMLException
Retrieve all certificate data for a specified owner.

Returns:
a list contains all CertData. Returns null if no data found.
Throws:
EXMLException

getCertificateDataForUpdate

public static java.util.Vector<com.wm.app.tn.security.CertData> getCertificateDataForUpdate(java.sql.Connection conn,
                                                                                            java.lang.String ownerId,
                                                                                            java.sql.Timestamp expDate)
                                                                                     throws EXMLException
Retrieve all Certificate data for a given owner and a specified expiry date.

Returns:
a Vector contains all CertData. Returns null if no data found.
Throws:
EXMLException

getCertificateDataForPartnerAndUsage

public static java.util.Vector<com.wm.app.tn.security.CertData> getCertificateDataForPartnerAndUsage(java.sql.Connection conn,
                                                                                                     java.lang.String partnerId,
                                                                                                     java.lang.String usage)
                                                                                              throws EXMLException
Retrieve all certificate data for the given PartnerID and Usage.

Returns:
a Vector contains all CertData. Returns null if no data found.
Throws:
EXMLException