diff options
Diffstat (limited to 'base/console/src/com/netscape/admin/certsrv/security/CertRequestCertPane.java')
-rw-r--r-- | base/console/src/com/netscape/admin/certsrv/security/CertRequestCertPane.java | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/base/console/src/com/netscape/admin/certsrv/security/CertRequestCertPane.java b/base/console/src/com/netscape/admin/certsrv/security/CertRequestCertPane.java new file mode 100644 index 000000000..46ae3852f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/security/CertRequestCertPane.java @@ -0,0 +1,197 @@ +// --- 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 java.awt.*; +import java.util.*; +import java.net.*; +import java.io.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.text.*; +import com.netscape.management.client.util.*; +import com.netscape.management.nmclf.*; +import com.netscape.management.client.comm.HttpChannel; + +class CertRequestCertPane extends JPanel implements SuiConstants, +IKeyCertPage { + + JTextArea certReq = new JTextArea(7, 10); + JScrollPane scrollPane = new JScrollPane(certReq, + JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, + JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + String explainEMail, explainURL; + JButton copy; + String oldUrl = ""; + + + + public JPanel getPanel() { + return this; + } + + + + class CertPaneActionListener implements ActionListener { + public void actionPerformed(ActionEvent event) { + if (event.getActionCommand().equals("COPY")) { + certReq.selectAll(); + certReq.copy(); + certReq.setSelectionEnd(certReq.getSelectionEnd()); + } + } + } + + public boolean pageHide(WizardObservable observable) { + return true; + } + + public boolean pageShow(WizardObservable observable) { + boolean show = + ((Boolean)(observable.get("requestCert"))).booleanValue(); + + + Hashtable param = (Hashtable)(observable.get("CertReqCGIParam")); + if (show && param.get("xmt_select").equals("1")) { + + Hashtable urlParam = new Hashtable(); + urlParam.put("op" , "submitCSR"); + urlParam.put("csrCertType" , "server"); + urlParam.put("csrRequestorName" , param.get("requestor_name")); + urlParam.put("csrRequestorEmail" , param.get("email_address")); + urlParam.put("csrRequestorPhone" , param.get("telephone")); + urlParam.put("csrRequestorComments", ""); + urlParam.put("pkcs10Request" , observable.get("CertReq")); + + if (((Boolean)(observable.get("newCertReq"))).booleanValue() + && !(oldUrl.equals(param.get("url")))) { + try { + //attempt to contect cms + oldUrl = (String)(param.get("url")); + Comm cmsUrl = new Comm(oldUrl, /*null*/urlParam, true); + cmsUrl.run(); + /*System.out.println(cmsUrl.getData());*/ + //explain.setVisible(false); + explain.setText(explainURL); + if (cmsUrl.getError() != null) { + //cms didn't respond + certReq.setText( + resource.getString("CertRequestCertPane", + "cmsNotResponding")); + Debug.println("CertRequestCertPane:"+ + cmsUrl.getError()); + } else if ((cmsUrl.getData() != null) && + (cmsUrl.getData().trim().length() != 0)) { + //cms return a message + + JEditorPane editor = new JEditorPane(); + editor.setBorder(new EmptyBorder(0, 0, 0, 0)); + editor.setEditable(false); + //editor.setOpaque(false); + + //display cms's message + Debug.println(cmsUrl.getData()); + StringReader reader = + new StringReader(cmsUrl.getData()); + editor.setEditorKit( + editor.createEditorKitForContentType("text/html")); + Document dstDoc = editor.getDocument(); + editor.getEditorKit().read(reader, dstDoc, 0); + + certReq.setText(editor.getText()); + } + + observable.put("newCertReq", new Boolean(false)); + } catch (Exception e) { + certReq.setText( + resource.getString("CertRequestCertPane", "unableToParse")); + Debug.println("CertRequestCertPane:"+e); + + } + } + + } else if (show) { + //if request via e-mail + explain.setText(explainEMail); + certReq.setText((String)(observable.get("CertReq"))); + explain.setVisible(true); + } + + scrollPane.validate(); + + return show; + } + + MultilineLabel explain; + ResourceSet resource = KeyCertUtility.getKeyCertWizardResourceSet(); + public CertRequestCertPane() { + super(); + setLayout(new GridBagLayout()); + + + copy = JButtonFactory.create( + resource.getString("CertRequestCertPane", "copyLabel")); + + setBorder( new TitledBorder( new CompoundBorder(new EtchedBorder(), + new EmptyBorder(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE)), + resource.getString("CertRequestCertPane", "title"))); + + int y = 0; + + explainEMail = resource.getString("CertRequestCertPane", "explain"); + explainURL = resource.getString("CertRequestCertPane", "explain2"); + + + explain = new MultilineLabel(explainEMail); + GridBagUtil.constrain(this, explain, 0, ++y, 1, 1, 1.0, 1.0, + GridBagConstraints.NORTH, GridBagConstraints.BOTH, 0, + 0, DIFFERENT_COMPONENT_SPACE, 0); + + GridBagUtil.constrain(this, scrollPane, 0, ++y, 1, 1, 0.0, 0.0, + GridBagConstraints.NORTH, + GridBagConstraints.HORIZONTAL, 0, 0, + DIFFERENT_COMPONENT_SPACE, 0); + + + copy.setActionCommand("COPY"); + copy.addActionListener(new CertPaneActionListener()); + GridBagUtil.constrain(this, copy, 0, ++y, 1, 1, 0.0, 0.0, + GridBagConstraints.WEST, GridBagConstraints.NONE, 0, + 0, DIFFERENT_COMPONENT_SPACE, 0); + + GridBagUtil.constrain(this, Box.createVerticalGlue(), 0, ++y, + 1, 1, 1.0, 1.0, GridBagConstraints.NORTH, + GridBagConstraints.BOTH, 0, 0, 0, 0); + + GridBagUtil.constrain(this, + new JLabel( + resource.getString(null, "clickNextToContinue")), 0, + ++y, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, + GridBagConstraints.BOTH, 0, 0, 0, 0); + } + + /*public static void main(String arg[]) { + JFrame f = new JFrame(); + f.getContentPane().add("North", new CertRequestCertPane()); + f.setSize(400,400); + f.show(); + }*/ + +} |