summaryrefslogtreecommitdiffstats
path: root/pki/base/console/src/com/netscape/admin/certsrv/security/CertListTable.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/console/src/com/netscape/admin/certsrv/security/CertListTable.java')
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/security/CertListTable.java316
1 files changed, 316 insertions, 0 deletions
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/security/CertListTable.java b/pki/base/console/src/com/netscape/admin/certsrv/security/CertListTable.java
new file mode 100644
index 000000000..62f58d9c2
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/security/CertListTable.java
@@ -0,0 +1,316 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2007 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+package com.netscape.admin.certsrv.security;
+
+
+import com.netscape.management.client.console.*;
+import com.netscape.management.client.util.*;
+import com.netscape.management.nmclf.*;
+
+import java.util.*;
+import java.awt.*;
+import java.awt.event.*;
+
+import javax.swing.*;
+import javax.swing.table.*;
+import javax.swing.event.*;
+
+//import crysec.SSL.DBManager;
+//import crysec.X509;
+//import crysec.X500Name;
+//import crysec.Utils;
+
+class CertListTable extends JPanel implements MouseListener, Runnable {
+ JTable _table;
+ CertListTableModel _dataModel;
+ KeyCertTaskInfo _taskInfo;
+
+ String alias;
+ String _certName;
+ boolean local = false;
+ boolean setupComplete;
+ Vector certList;
+ // DBManager trustdb;
+
+ //IBackgroundLoaderCallback _callback;
+
+ ConsoleInfo _consoleInfo;
+
+ private String formatLineString(String val, String option,
+ boolean newLine) {
+ if (val != null) {
+ return val + (newLine ? option + "\n":option);
+ } else {
+ return "";
+ }
+ }
+
+ public void showCert() {
+// to get it compile
+/*
+ int row = _table.getSelectedRow();
+ if (row == -1)
+ return;
+
+ //show cert here
+
+ if (local) {
+ X509 cert = (X509)(certList.elementAt(row));
+ X500Name holder = (X500Name)(cert.getHolder());
+ X500Name issuer = (X500Name)(cert.getIssuer());
+
+ StringBuffer subjectString = new StringBuffer();
+ StringBuffer issuerString = new StringBuffer();
+
+ subjectString.append(
+ formatLineString(holder.getName(), "", true));
+ subjectString.append(
+ formatLineString(holder.getEmail(), "", true));
+ subjectString.append(
+ formatLineString(holder.getOrganizationName(), "",
+ true));
+ subjectString.append(
+ formatLineString(holder.getOrgUnitName(), "", true));
+ subjectString.append(
+ formatLineString(holder.getLocalityName(), "", true));
+ subjectString.append(
+ formatLineString(holder.getStateName(), ", ",
+ false) + holder.getCountryName());
+
+ issuerString.append(
+ formatLineString(issuer.getName(), "", true));
+ issuerString.append(
+ formatLineString(issuer.getEmail(), "", true));
+ issuerString.append(
+ formatLineString(issuer.getOrganizationName(), "",
+ true));
+ issuerString.append(
+ formatLineString(issuer.getOrgUnitName(), "", true));
+ issuerString.append(
+ formatLineString(issuer.getLocalityName(), "", true));
+ issuerString.append(
+ formatLineString(issuer.getStateName(), ", ",
+ false) + issuer.getCountryName());
+
+ CertInfo ci = new CertInfo(holder.getName(),
+ issuerString.toString(), subjectString.toString(),
+ "", "", cert.getNotBeforeDate().toString(),
+ cert.getNotAfterDate().toString(),
+ new String(cert.getFingerprint()), "1", "0",
+ holder.getOrganizationName());
+
+ CertInfoDialog infoDialog = new CertInfoDialog(null, ci);
+ infoDialog.show();
+
+ if (CertInfoDialog.delete) {
+ deleteRow(row);
+
+ trustdb.remove(Utils.toHexString(cert.getFingerprint()));
+ trustdb.save();
+ }
+ } else {
+ _taskInfo.clear();
+ _taskInfo.put("certnn", getRow(row).getCertName());
+ _taskInfo.put("alias", alias);
+ Response response = null;
+ try {
+ response = _taskInfo.exec(_taskInfo.SEC_ECRT);
+ } catch (Exception e) {
+ SuiOptionPane.showMessageDialog(
+ UtilConsoleGlobals.getActivatedFrame(),
+ e.getMessage());
+ return;
+ }
+
+ if (response.hasCertInfo()) {
+ CertInfoDialog infoDialog =
+ new CertInfoDialog(null,
+ response.getCertInfo(), _taskInfo);
+ ModalDialogUtil.setDialogLocation(infoDialog, this);
+ infoDialog.show();
+ //since CertInfoDialog is a modal dialog we will wait until it comes back to check wheather the cer
+ //has been deleted if it is deleted then we need to refresh the table
+ if (CertInfoDialog.delete) {
+ deleteRow(row);
+ }
+ }
+
+ //MessageDialog.messageDialog((Message)(response.getMessages().elementAt(0)));
+ }
+ */
+ }
+
+
+ public void mouseClicked(MouseEvent e) {
+ int row = _table.rowAtPoint(e.getPoint());
+
+ if (e.getClickCount() < 2)
+ return;
+
+ if (row == -1) {
+ _table.clearSelection();
+ } else {
+ showCert();
+ }
+ }
+
+ public void mouseEntered(MouseEvent e) {}
+ public void mouseExited(MouseEvent e) {}
+ public void mousePressed(MouseEvent e) {}
+ public void mouseReleased(MouseEvent e) {}
+
+ public boolean isTableSetup() {
+ return setupComplete;
+ }
+
+
+ public CertListTable() {
+ super(true);
+ local = true;
+
+ setLayout(new BorderLayout());
+
+ setupComplete = true;
+
+ // trustdb = new DBManager();
+ // Enumeration e = trustdb.elements();
+ Enumeration e = null;
+ certList = new Vector();
+ Vector v = new Vector();
+ // while (e.hasMoreElements()) {
+ // X509 cert = (X509)(e.nextElement());
+ // certList.addElement(cert);
+// v.addElement(
+ // new CertBasicInfo(cert.getHolder().getName(), "Trust Server Certificate",
+ // cert.getNotAfterDate().toString()));
+ // }
+
+ _dataModel = new CertListTableModel(
+ CertBasicInfo.getCertTitleLabels(), v);
+ setupTable(_dataModel);
+ }
+
+
+ public CertListTable(String certName, ConsoleInfo consoleInfo/*, IBackgroundLoaderCallback callback*/) {
+ super(true);
+ _consoleInfo = consoleInfo;
+ _certName = certName;
+ //_callback = callback;
+ setLayout(new BorderLayout());
+
+ setupComplete = true;
+
+ run();
+
+ /*setBackground( Color.white );*/
+ }
+
+
+
+ private void setupTable(CertListTableModel _tableModel) {
+ // Create the table
+ _table = new SuiTable(_tableModel);
+ _table.addMouseListener(this);
+ _table.setColumnSelectionAllowed(false);
+ /*_table.setMultipleSelectionAllowed(false);*/
+
+ // Put the table and header into a scrollPane
+ JScrollPane scrollpane = new JScrollPane();
+ JTableHeader tableHeader = _table.getTableHeader();
+
+ // create and add the column heading to the scrollpane's
+ // column header viewport
+ JViewport headerViewport = new JViewport();
+ headerViewport.setLayout(
+ new BoxLayout(headerViewport, BoxLayout.X_AXIS));
+ headerViewport.add(tableHeader);
+ scrollpane.setColumnHeader(headerViewport);
+
+ // add the table to the viewport
+ JViewport mainViewPort = scrollpane.getViewport();
+ mainViewPort.add(_table);
+
+ // speed up resizing repaints by turning off live cell updates
+ tableHeader.setUpdateTableInRealTime(false);
+
+ add("Center", scrollpane);
+
+ setPreferredSize(new Dimension(0, 0));
+ //_callback.classLoaded(this, "CertListTable");
+ }
+
+ //public void setCertList(String certName) {
+ public void run() {
+
+ _taskInfo = new KeyCertTaskInfo(_consoleInfo);
+ _dataModel = new CertListTableModel(
+ CertBasicInfo.getCertTitleLabels(), new Vector());
+ //setCertList(certName);
+
+ //_dataModel.deleteAllRows();
+ //call cgi here to get the cert information
+ _taskInfo.put("alias", _certName);
+ alias = _certName;
+ Response response = null;
+ try {
+ response = _taskInfo.exec(_taskInfo.SEC_MGCRT);
+ } catch (Exception e) {
+ SuiOptionPane.showMessageDialog(
+ UtilConsoleGlobals.getActivatedFrame(), e.getMessage());
+ setupComplete = false;
+ return;
+ }
+
+ if (response.hasCertList()) {
+ _dataModel.setRowData(response.getCertList());
+ //repaint();
+ }
+
+ setupTable(_dataModel);
+ }
+
+ /**
+ *
+ * @return LDAPEntry at specified index, null if index > number of rows
+ *
+ */
+ public CertBasicInfo getRow(int index) {
+ return _dataModel.getRow(index);
+ }
+
+ /**
+ *
+ * @return the number of rows in the table.
+ *
+ */
+ public int getRowCount() {
+ return _dataModel.getRowCount();
+ }
+
+ /**
+ *
+ * Removes the first occurrence of the LDAPEntry from this table. If the object is found.
+ *
+ * @param ldapEntry LDAPEntry to delete from this table.
+ *
+ */
+ public void deleteRow(int rowIndex) {
+ _dataModel.deleteRow(rowIndex);
+ repaint();
+ }
+}