From 621d9e5c413e561293d7484b93882d985b3fe15f Mon Sep 17 00:00:00 2001 From: Endi Sukma Dewata Date: Sat, 24 Mar 2012 02:27:47 -0500 Subject: Removed unnecessary pki folder. Previously the source code was located inside a pki folder. This folder was created during svn migration and is no longer needed. This folder has now been removed and the contents have been moved up one level. Ticket #131 --- .../netscape/admin/certsrv/config/ACIDialog.java | 517 ++++++ .../admin/certsrv/config/ACLDataModel.java | 47 + .../admin/certsrv/config/ACLEditDialog.java | 557 +++++++ .../admin/certsrv/config/ACLImplDataModel.java | 47 + .../netscape/admin/certsrv/config/ACLImplTab.java | 227 +++ .../netscape/admin/certsrv/config/ACLPanel.java | 231 +++ .../admin/certsrv/config/AutoRecoveryModel.java | 57 + .../netscape/admin/certsrv/config/CACertsTab.java | 392 +++++ .../admin/certsrv/config/CMSAccessLogPanel.java | 210 +++ .../admin/certsrv/config/CMSAuditLogPanel.java | 210 +++ .../admin/certsrv/config/CMSAutoRecovery.java | 267 +++ .../admin/certsrv/config/CMSBaseConfigDialog.java | 1078 ++++++++++++ .../admin/certsrv/config/CMSBaseConfigPanel.java | 180 ++ .../admin/certsrv/config/CMSBaseLDAPPanel.java | 692 ++++++++ .../admin/certsrv/config/CMSBaseLogPanel.java | 366 +++++ .../netscape/admin/certsrv/config/CMSBaseTab.java | 95 ++ .../admin/certsrv/config/CMSBlankPanel.java | 82 + .../certsrv/config/CMSCACertSettingPanel.java | 171 ++ .../admin/certsrv/config/CMSCAConnectorPanel.java | 237 +++ .../admin/certsrv/config/CMSCAGeneralPanel.java | 424 +++++ .../admin/certsrv/config/CMSCALDAPPanel.java | 44 + .../admin/certsrv/config/CMSCRLCachePanel.java | 371 +++++ .../admin/certsrv/config/CMSCRLFormatPanel.java | 448 +++++ .../admin/certsrv/config/CMSCRLIPPanel.java | 327 ++++ .../admin/certsrv/config/CMSCRLSettingPanel.java | 698 ++++++++ .../admin/certsrv/config/CMSCertSettingPanel.java | 150 ++ .../certsrv/config/CMSCipherPreferenceDialog.java | 201 +++ .../certsrv/config/CMSCipherPreferencePane.java | 112 ++ .../admin/certsrv/config/CMSEAGeneralPanel.java | 169 ++ .../admin/certsrv/config/CMSEncryptionPanel.java | 835 ++++++++++ .../admin/certsrv/config/CMSErrorLogPanel.java | 180 ++ .../admin/certsrv/config/CMSKRAAutoPanel.java | 220 +++ .../admin/certsrv/config/CMSKRAPasswdPanel.java | 267 +++ .../admin/certsrv/config/CMSKRASchemePanel.java | 198 +++ .../admin/certsrv/config/CMSLDAPSettingPanel.java | 362 ++++ .../admin/certsrv/config/CMSNetworkPanel.java | 465 ++++++ .../admin/certsrv/config/CMSOCSPGeneralPanel.java | 219 +++ .../admin/certsrv/config/CMSPasswordDialog.java | 310 ++++ .../admin/certsrv/config/CMSPluginInstanceTab.java | 442 +++++ .../admin/certsrv/config/CMSRACLMPanel.java | 313 ++++ .../admin/certsrv/config/CMSRAConnectorPanel.java | 251 +++ .../admin/certsrv/config/CMSRAGeneralPanel.java | 185 +++ .../admin/certsrv/config/CMSRALDAPPanel.java | 44 + .../admin/certsrv/config/CMSRuleDataModel.java | 82 + .../admin/certsrv/config/CMSSMTPPanel.java | 170 ++ .../admin/certsrv/config/CMSSNMPPanel.java | 296 ++++ .../certsrv/config/CMSSSL2CipherPreference.java | 36 + .../admin/certsrv/config/CMSSSL2CipherSet.java | 74 + .../certsrv/config/CMSSSL3CipherPreference.java | 37 + .../admin/certsrv/config/CMSSSL3CipherSet.java | 91 ++ .../admin/certsrv/config/CMSSelfTestsPanel.java | 219 +++ .../netscape/admin/certsrv/config/CMSTabPanel.java | 350 ++++ .../certsrv/config/CMSUserCertSettingPanel.java | 155 ++ .../certsrv/config/CMStoAdminEncryptionPane.java | 67 + .../certsrv/config/CRLExtensionsConfigDialog.java | 76 + .../certsrv/config/CRLExtensionsInstanceTab.java | 114 ++ .../config/CRLExtensionsPluginSelectionDialog.java | 67 + .../certsrv/config/CRLExtensionsRuleDataModel.java | 69 + .../netscape/admin/certsrv/config/CRLIPEditor.java | 330 ++++ .../admin/certsrv/config/ConfigTableModel.java | 42 + .../admin/certsrv/config/ConnectorEditor.java | 634 +++++++ .../certsrv/config/EvaluatorRegisterDialog.java | 41 + .../admin/certsrv/config/GeneralLogPanel.java | 250 +++ .../admin/certsrv/config/JobsConfigDialog.java | 62 + .../admin/certsrv/config/JobsImplDataModel.java | 68 + .../netscape/admin/certsrv/config/JobsImplTab.java | 323 ++++ .../admin/certsrv/config/JobsInstanceTab.java | 104 ++ .../certsrv/config/JobsPluginSelectionDialog.java | 66 + .../admin/certsrv/config/JobsRegisterDialog.java | 40 + .../admin/certsrv/config/JobsRuleDataModel.java | 71 + .../admin/certsrv/config/JobsSettingPanel.java | 240 +++ .../admin/certsrv/config/KeyCreateDialog.java | 299 ++++ .../admin/certsrv/config/ListCertsModel.java | 56 + .../admin/certsrv/config/ListKeysModel.java | 56 + .../admin/certsrv/config/LogConfigDialog.java | 62 + .../admin/certsrv/config/LogImplDataModel.java | 68 + .../netscape/admin/certsrv/config/LogImplTab.java | 315 ++++ .../admin/certsrv/config/LogInstanceTab.java | 95 ++ .../certsrv/config/LogPluginSelectionDialog.java | 69 + .../admin/certsrv/config/LogRegisterDialog.java | 40 + .../admin/certsrv/config/LogRuleDataModel.java | 62 + .../admin/certsrv/config/MNSchemeWizard.java | 64 + .../admin/certsrv/config/MNSchemeWizardInfo.java | 107 ++ .../admin/certsrv/config/MapperConfigDialog.java | 64 + .../admin/certsrv/config/MapperImplDataModel.java | 68 + .../admin/certsrv/config/MapperImplTab.java | 320 ++++ .../admin/certsrv/config/MapperInstanceTab.java | 95 ++ .../config/MapperPluginSelectionDialog.java | 74 + .../admin/certsrv/config/MapperRegisterDialog.java | 40 + .../admin/certsrv/config/MapperRuleDataModel.java | 62 + .../certsrv/config/OCSPStoresConfigDialog.java | 60 + .../certsrv/config/OCSPStoresInstanceTab.java | 132 ++ .../config/OCSPStoresPluginSelectionDialog.java | 67 + .../certsrv/config/OCSPStoresRuleDataModel.java | 69 + .../certsrv/config/PanelMapperConfigDialog.java | 409 +++++ .../certsrv/config/PluginSelectionDialog.java | 375 +++++ .../admin/certsrv/config/PolicyConfigDialog.java | 64 + .../admin/certsrv/config/PolicyImplDataModel.java | 68 + .../admin/certsrv/config/PolicyImplTab.java | 322 ++++ .../admin/certsrv/config/PolicyInstanceTab.java | 139 ++ .../config/PolicyPluginSelectionDialog.java | 73 + .../admin/certsrv/config/PolicyRegisterDialog.java | 40 + .../admin/certsrv/config/PolicyRuleDataModel.java | 71 + .../certsrv/config/PolicyRuleOrderDialog.java | 331 ++++ .../certsrv/config/ProfileComponentCellEditor.java | 109 ++ .../certsrv/config/ProfileConfigDataModel.java | 83 + .../admin/certsrv/config/ProfileConfigDialog.java | 396 +++++ .../admin/certsrv/config/ProfileDataTable.java | 68 + .../admin/certsrv/config/ProfileEditDataModel.java | 88 + .../admin/certsrv/config/ProfileEditDialog.java | 931 +++++++++++ .../admin/certsrv/config/ProfileImplDataModel.java | 70 + .../admin/certsrv/config/ProfileImplTab.java | 382 +++++ .../admin/certsrv/config/ProfileInstanceTab.java | 161 ++ .../admin/certsrv/config/ProfileListDataModel.java | 60 + .../certsrv/config/ProfileNonPolicyNewDialog.java | 429 +++++ .../certsrv/config/ProfileNonPolicySelDialog.java | 386 +++++ .../config/ProfilePluginSelectionDialog.java | 187 +++ .../certsrv/config/ProfilePolicyEditDataModel.java | 85 + .../certsrv/config/ProfilePolicyEditDialog.java | 698 ++++++++ .../certsrv/config/ProfilePolicyNewDialog.java | 714 ++++++++ .../config/ProfilePolicySelectionDialog.java | 515 ++++++ .../certsrv/config/ProfileRegisterDialog.java | 303 ++++ .../admin/certsrv/config/ProfileRuleDataModel.java | 69 + .../certsrv/config/PublisherConfigDialog.java | 64 + .../certsrv/config/PublisherImplDataModel.java | 68 + .../admin/certsrv/config/PublisherImplTab.java | 321 ++++ .../admin/certsrv/config/PublisherInstanceTab.java | 95 ++ .../config/PublisherPluginSelectionDialog.java | 74 + .../certsrv/config/PublisherRegisterDialog.java | 40 + .../certsrv/config/PublisherRuleDataModel.java | 62 + .../admin/certsrv/config/RegisterDialog.java | 286 ++++ .../admin/certsrv/config/RuleConfigDialog.java | 64 + .../admin/certsrv/config/RuleImplDataModel.java | 68 + .../netscape/admin/certsrv/config/RuleImplTab.java | 320 ++++ .../admin/certsrv/config/RuleInstanceTab.java | 97 ++ .../certsrv/config/RulePluginSelectionDialog.java | 74 + .../admin/certsrv/config/RuleRegisterDialog.java | 40 + .../admin/certsrv/config/RuleRuleDataModel.java | 70 + .../netscape/admin/certsrv/config/TKSKeysTab.java | 366 +++++ .../admin/certsrv/config/UserCertsTab.java | 342 ++++ .../netscape/admin/certsrv/config/ViewDialog.java | 189 +++ .../admin/certsrv/config/ViewSelfTestsDialog.java | 172 ++ .../admin/certsrv/config/ViewTableModel.java | 40 + .../certsrv/config/WBaseCertExtensionPage.java | 445 +++++ .../admin/certsrv/config/WBaseCertRequestPage.java | 261 +++ .../netscape/admin/certsrv/config/WBaseDNPage.java | 493 ++++++ .../admin/certsrv/config/WBaseDNValidityPage.java | 207 +++ .../admin/certsrv/config/WBaseKeyPage.java | 248 +++ .../certsrv/config/WBaseManualCertRequestPage.java | 508 ++++++ .../admin/certsrv/config/WBaseValidityPage.java | 258 +++ .../netscape/admin/certsrv/config/WMNNewAgent.java | 293 ++++ .../netscape/admin/certsrv/config/WMNOldAgent.java | 214 +++ .../admin/certsrv/config/WMNResultPage.java | 102 ++ .../admin/certsrv/config/WMNSelection.java | 226 +++ .../admin/certsrv/config/WMessageDigestPage.java | 240 +++ .../admin/certsrv/config/WarningDialog.java | 171 ++ .../config/install/ComponentCellRenderer.java | 32 + .../certsrv/config/install/InstallWizard.java | 202 +++ .../certsrv/config/install/InstallWizardInfo.java | 1724 ++++++++++++++++++++ .../admin/certsrv/config/install/WIAdminPage.java | 266 +++ .../config/install/WIAllCertsInstalledPage.java | 269 +++ .../config/install/WICACert1CustomPage.java | 72 + .../certsrv/config/install/WICACert1Page.java | 218 +++ .../certsrv/config/install/WICACert2Page.java | 72 + .../certsrv/config/install/WICACertDNPage.java | 97 ++ .../config/install/WICACertExtensionPage.java | 80 + .../admin/certsrv/config/install/WICACertPage.java | 172 ++ .../certsrv/config/install/WICACertSubmitPage.java | 79 + .../config/install/WICACertValidityPage.java | 75 + .../admin/certsrv/config/install/WICAKeyPage.java | 115 ++ .../config/install/WICAMessageDigestPage.java | 80 + .../config/install/WICAOCSPServicePage.java | 172 ++ .../config/install/WICARequestResultPage.java | 59 + .../config/install/WICASerialNumberPage.java | 381 +++++ .../certsrv/config/install/WICATokenLogonPage.java | 76 + .../admin/certsrv/config/install/WICertDNPage.java | 153 ++ .../config/install/WICertExtensionPage.java | 168 ++ .../certsrv/config/install/WICertRequestPage.java | 73 + .../config/install/WICertSetupStatusPage.java | 144 ++ .../certsrv/config/install/WICertSubmitPage.java | 144 ++ .../certsrv/config/install/WICertValidityPage.java | 141 ++ .../config/install/WICloneCAKeyCertPage.java | 292 ++++ .../config/install/WICloneKRAKeyCertPage.java | 292 ++++ .../certsrv/config/install/WICloneMasterPage.java | 409 +++++ .../config/install/WICloneOCSPKeyCertPage.java | 237 +++ .../admin/certsrv/config/install/WIClonePage.java | 142 ++ .../config/install/WICloneRAKeyCertPage.java | 242 +++ .../config/install/WICloneTKSKeyCertPage.java | 182 +++ .../config/install/WIConfigWebServerPage.java | 182 +++ .../config/install/WICreateInternalDBPage.java | 581 +++++++ .../certsrv/config/install/WIDBEnrollPage.java | 211 +++ .../config/install/WIDisplayCACertPage.java | 75 + .../certsrv/config/install/WIDisplayCertPage.java | 205 +++ .../config/install/WIDisplayKRACertPage.java | 77 + .../config/install/WIDisplayOCSPCertPage.java | 71 + .../config/install/WIDisplayRACertPage.java | 73 + .../config/install/WIDisplaySSLCertPage.java | 70 + .../certsrv/config/install/WIExistingDBPage.java | 282 ++++ .../certsrv/config/install/WIGenCAKeyCertPage.java | 68 + .../config/install/WIGenCAKeyCertReqPage.java | 80 + .../config/install/WIGenKRAKeyCertPage.java | 70 + .../config/install/WIGenKRAKeyCertReqPage.java | 82 + .../certsrv/config/install/WIGenKeyCertPage.java | 143 ++ .../config/install/WIGenKeyCertReqPage.java | 291 ++++ .../config/install/WIGenOCSPKeyCertPage.java | 62 + .../config/install/WIGenOCSPKeyCertReqPage.java | 77 + .../certsrv/config/install/WIGenRAKeyCertPage.java | 67 + .../config/install/WIGenRAKeyCertReqPage.java | 79 + .../config/install/WIGenSSLKeyCertReqPage.java | 76 + .../config/install/WIGenServerKeyCertPage.java | 62 + .../config/install/WIInstallCACertStatusPage.java | 70 + .../config/install/WIInstallCAIntroPage.java | 62 + .../certsrv/config/install/WIInstallCert1Page.java | 157 ++ .../certsrv/config/install/WIInstallCert2Page.java | 140 ++ .../config/install/WIInstallCertStatusPage.java | 248 +++ .../certsrv/config/install/WIInstallIntroPage.java | 133 ++ .../config/install/WIInstallKRACertStatusPage.java | 72 + .../config/install/WIInstallKRAIntroPage.java | 65 + .../install/WIInstallOCSPCertStatusPage.java | 67 + .../config/install/WIInstallOCSPIntroPage.java | 60 + .../config/install/WIInstallRACertStatusPage.java | 69 + .../config/install/WIInstallRAIntroPage.java | 61 + .../config/install/WIInstallSSLCertStatusPage.java | 65 + .../config/install/WIInstallSSLIntroPage.java | 58 + .../config/install/WIInternalDBInfoPage.java | 173 ++ .../certsrv/config/install/WIInternalDBPage.java | 313 ++++ .../config/install/WIInternalTokenLogonPage.java | 67 + .../config/install/WIIntroMigrationPage.java | 162 ++ .../admin/certsrv/config/install/WIIntroPage.java | 217 +++ .../config/install/WIIntroSingleSignonPage.java | 162 ++ .../certsrv/config/install/WIKRACertDNPage.java | 105 ++ .../config/install/WIKRACertExtensionPage.java | 75 + .../config/install/WIKRACertSubmitPage.java | 80 + .../config/install/WIKRACertValidityPage.java | 77 + .../admin/certsrv/config/install/WIKRAKeyPage.java | 100 ++ .../config/install/WIKRAMessageDigestPage.java | 79 + .../certsrv/config/install/WIKRANumberPage.java | 378 +++++ .../config/install/WIKRARequestResultPage.java | 58 + .../certsrv/config/install/WIKRAScheme1Page.java | 188 +++ .../certsrv/config/install/WIKRAScheme2Page.java | 309 ++++ .../config/install/WIKRAStorageKeyPage.java | 356 ++++ .../config/install/WIKRATokenLogonPage.java | 74 + .../admin/certsrv/config/install/WIKeyPage.java | 641 ++++++++ .../config/install/WILDAPPublishingPage.java | 279 ++++ .../certsrv/config/install/WILoggingPage.java | 202 +++ .../config/install/WILogonAllTokensPage.java | 264 +++ .../config/install/WIManualCACertRequestPage.java | 86 + .../config/install/WIManualCertRequestPage.java | 178 ++ .../config/install/WIManualKRACertRequestPage.java | 77 + .../install/WIManualOCSPCertRequestPage.java | 72 + .../config/install/WIManualRACertRequestPage.java | 74 + .../config/install/WIManualSSLCertRequestPage.java | 69 + .../certsrv/config/install/WIMasterOrClone.java | 172 ++ .../certsrv/config/install/WIMigrationPage.java | 715 ++++++++ .../certsrv/config/install/WINetworkPage.java | 499 ++++++ .../certsrv/config/install/WIOCSPCertDNPage.java | 83 + .../config/install/WIOCSPCertSubmitPage.java | 76 + .../certsrv/config/install/WIOCSPKeyPage.java | 90 + .../config/install/WIOCSPMessageDigestPage.java | 80 + .../config/install/WIOCSPRequestResultPage.java | 63 + .../config/install/WIOCSPTokenLogonPage.java | 73 + .../certsrv/config/install/WIPasteCACertPage.java | 67 + .../certsrv/config/install/WIPasteCertPage.java | 500 ++++++ .../certsrv/config/install/WIPasteKRACertPage.java | 68 + .../config/install/WIPasteOCSPCertPage.java | 63 + .../certsrv/config/install/WIPasteRACertPage.java | 64 + .../certsrv/config/install/WIPasteSSLCertPage.java | 60 + .../certsrv/config/install/WIRACertDNPage.java | 86 + .../config/install/WIRACertExtensionPage.java | 75 + .../certsrv/config/install/WIRACertSubmitPage.java | 76 + .../config/install/WIRACertValidityPage.java | 74 + .../admin/certsrv/config/install/WIRAKeyPage.java | 94 ++ .../config/install/WIRAMessageDigestPage.java | 79 + .../config/install/WIRARequestResultPage.java | 58 + .../certsrv/config/install/WIRATokenLogonPage.java | 75 + .../certsrv/config/install/WIRecreateDBPage.java | 139 ++ .../config/install/WIRemoteCASubsystem.java | 291 ++++ .../config/install/WIRemoteKRASubsystem.java | 371 +++++ .../config/install/WIReplAgreementPage.java | 417 +++++ .../config/install/WIRequestResultPage.java | 148 ++ .../admin/certsrv/config/install/WISMTPPage.java | 129 ++ .../config/install/WISSLMessageDigestPage.java | 79 + .../config/install/WISSLRequestResultPage.java | 58 + .../config/install/WISSLTokenLogonPage.java | 72 + .../certsrv/config/install/WIServerCertDNPage.java | 116 ++ .../config/install/WIServerCertExtensionPage.java | 71 + .../config/install/WIServerCertSubmitPage.java | 89 + .../config/install/WIServerCertValidityPage.java | 69 + .../certsrv/config/install/WIServerKeyPage.java | 93 ++ .../certsrv/config/install/WIServicesPage.java | 425 +++++ .../certsrv/config/install/WISingleSignonPage.java | 532 ++++++ .../certsrv/config/install/WITokenLogonPage.java | 255 +++ .../certsrv/config/install/WITrustDBPage.java | 138 ++ 293 files changed, 56428 insertions(+) create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ACIDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ACLDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ACLEditDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ACLImplDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ACLImplTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ACLPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/AutoRecoveryModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CACertsTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSAccessLogPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSAuditLogPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSAutoRecovery.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSBaseLDAPPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSBaseLogPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSBaseTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSBlankPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCACertSettingPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCAConnectorPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCAGeneralPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCALDAPPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCRLFormatPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCRLIPPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCRLSettingPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCertSettingPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferenceDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferencePane.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSEAGeneralPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSEncryptionPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSErrorLogPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSKRAAutoPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSKRAPasswdPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSKRASchemePanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSLDAPSettingPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSNetworkPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSOCSPGeneralPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSPasswordDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSPluginInstanceTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSRACLMPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSRAConnectorPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSRAGeneralPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSRALDAPPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSRuleDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSSMTPPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSSNMPPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherPreference.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherSet.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherPreference.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherSet.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSSelfTestsPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSTabPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMSUserCertSettingPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CMStoAdminEncryptionPane.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsInstanceTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsPluginSelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsRuleDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ConfigTableModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ConnectorEditor.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/EvaluatorRegisterDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/GeneralLogPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/JobsConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/JobsImplDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/JobsImplTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/JobsInstanceTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/JobsPluginSelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/JobsRegisterDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/JobsRuleDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/JobsSettingPanel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/KeyCreateDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ListCertsModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ListKeysModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/LogConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/LogImplDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/LogImplTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/LogInstanceTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/LogPluginSelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/LogRegisterDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/LogRuleDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizard.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizardInfo.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/MapperConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/MapperImplDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/MapperImplTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/MapperInstanceTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/MapperPluginSelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/MapperRegisterDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/MapperRuleDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/OCSPStoresConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/OCSPStoresInstanceTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/OCSPStoresPluginSelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/OCSPStoresRuleDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PanelMapperConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PluginSelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PolicyConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PolicyImplDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PolicyImplTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PolicyInstanceTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PolicyPluginSelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PolicyRegisterDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PolicyRuleDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PolicyRuleOrderDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileComponentCellEditor.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileDataTable.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileEditDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileEditDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileImplDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileImplTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileInstanceTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileListDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicyNewDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicySelDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfilePluginSelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyNewDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfilePolicySelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileRegisterDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ProfileRuleDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PublisherConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PublisherImplDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PublisherImplTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PublisherInstanceTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PublisherPluginSelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PublisherRegisterDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/PublisherRuleDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/RegisterDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/RuleConfigDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/RuleImplDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/RuleImplTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/RuleInstanceTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/RulePluginSelectionDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/RuleRegisterDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/RuleRuleDataModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/TKSKeysTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/UserCertsTab.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ViewDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ViewSelfTestsDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/ViewTableModel.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WBaseCertRequestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WBaseDNValidityPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WBaseKeyPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WBaseValidityPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WMNNewAgent.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WMNOldAgent.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WMNResultPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WMNSelection.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/WarningDialog.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/ComponentCellRenderer.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/InstallWizard.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIAdminPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIAllCertsInstalledPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICACert1CustomPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICACert1Page.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICACert2Page.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICACertDNPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICACertExtensionPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICACertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICACertSubmitPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICACertValidityPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICAKeyPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICAMessageDigestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICAOCSPServicePage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICARequestResultPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICASerialNumberPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICATokenLogonPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICertDNPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICertRequestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICertSetupStatusPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICertSubmitPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICertValidityPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICloneCAKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICloneKRAKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICloneMasterPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICloneOCSPKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIClonePage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICloneRAKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICloneTKSKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIConfigWebServerPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WICreateInternalDBPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIDBEnrollPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCACertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayKRACertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayOCSPCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayRACertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIDisplaySSLCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIExistingDBPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertReqPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertReqPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertReqPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertReqPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertReqPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenSSLKeyCertReqPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIGenServerKeyCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCACertStatusPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCAIntroPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert1Page.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert2Page.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCertStatusPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallIntroPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRACertStatusPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRAIntroPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPCertStatusPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPIntroPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRACertStatusPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRAIntroPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLCertStatusPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLIntroPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBInfoPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIInternalTokenLogonPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIIntroMigrationPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIIntroPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIIntroSingleSignonPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertDNPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertExtensionPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertSubmitPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertValidityPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRAKeyPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRAMessageDigestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRANumberPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRARequestResultPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme1Page.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme2Page.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRAStorageKeyPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKRATokenLogonPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIKeyPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WILDAPPublishingPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WILoggingPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WILogonAllTokensPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIManualCACertRequestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIManualCertRequestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIManualKRACertRequestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIManualOCSPCertRequestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIManualRACertRequestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIManualSSLCertRequestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIMasterOrClone.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIMigrationPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertDNPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertSubmitPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPKeyPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPMessageDigestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPRequestResultPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPTokenLogonPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCACertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIPasteKRACertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIPasteOCSPCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIPasteRACertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIPasteSSLCertPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRACertDNPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRACertExtensionPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRACertSubmitPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRACertValidityPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRAKeyPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRAMessageDigestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRARequestResultPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRATokenLogonPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRecreateDBPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteCASubsystem.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteKRASubsystem.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIReplAgreementPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIRequestResultPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WISMTPPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WISSLMessageDigestPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WISSLRequestResultPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WISSLTokenLogonPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertDNPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertExtensionPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertSubmitPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertValidityPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIServerKeyPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WIServicesPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WISingleSignonPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WITokenLogonPage.java create mode 100644 base/console/src/com/netscape/admin/certsrv/config/install/WITrustDBPage.java (limited to 'base/console/src/com/netscape/admin/certsrv/config') diff --git a/base/console/src/com/netscape/admin/certsrv/config/ACIDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ACIDialog.java new file mode 100644 index 000000000..e6085f820 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ACIDialog.java @@ -0,0 +1,517 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * ACL Editor + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ACIDialog extends JDialog + implements ActionListener, MouseListener +{ + private final static String PREFIX = "ACIDIALOG"; + private static final String HELPINDEX = + "configuration-authorization"; + private JFrame mParentFrame; + private JButton mOK, mCancel, mHelp; + private ResourceBundle mResource; + private boolean mDone = false; + private JTextArea mACIText, mHelpArea; + private String mOperations; + private JList mList; + private JScrollPane mScrollPane; + private DefaultListModel mDataModel; + private JRadioButton mAllowBtn, mDenyBtn; + private String mHelpToken; + private AdminConnection mConnection; + + public ACIDialog(JFrame parent, String ops, AdminConnection adminConn) { + super(parent,true); + mParentFrame = parent; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mDataModel = new DefaultListModel(); + mConnection = adminConn; + mOperations = ops; + mHelpToken = HELPINDEX; + setSize(360, 350); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + setDisplay(); + } + + public void actionPerformed(ActionEvent evt) { + if (evt.getSource().equals(mCancel)) { + mDone = false; + this.hide(); + } else if (evt.getSource().equals(mOK)) { + String acl = mACIText.getText().trim(); + Vector v = parseExpressions(acl); + + NameValuePairs response; + try { + response = mConnection.search(DestDef.DEST_ACL_ADMIN, + ScopeDef.SC_EVALUATOR_TYPES, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + + Enumeration enum1 = v.elements(); + boolean allCorrect = true; + while (enum1.hasMoreElements()) { + String element = (String)enum1.nextElement(); + boolean correctSyntax = validateSyntax(element, response); + if (correctSyntax) { + continue; + } else { + allCorrect = false; + break; + } + } + + if (allCorrect) { + mDone = true; + this.hide(); + } else { + String msg = mResource.getString( + PREFIX+"_DIALOG_INCORRECTSYNTAX_MESSAGE"); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + msg ,CMSAdminUtil.ERROR_MESSAGE); + return; + } + } else if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + } + + private Vector parseExpressions(String s) { + String str = s; + Vector v = new Vector(); + + while (str.length() > 0) { + int orIndex = str.indexOf("||"); + int andIndex = str.indexOf("&&"); + + if (orIndex == -1 && andIndex == -1) { + if (str.length() > 0) + v.addElement(str.trim()); + return v; + + // || first + } else if (andIndex == -1 || (orIndex != -1 && orIndex < andIndex)) { + v.addElement(str.substring(0, orIndex).trim()); + + str = str.substring(orIndex+2); + // && first + } else { + v.addElement(str.substring(0, andIndex).trim()); + str = str.substring(andIndex+2); + } + } + + return v; + } + + public void showDialog(String aci, boolean newACI) { + if (newACI) { + mList.clearSelection(); + mList.invalidate(); + mList.validate(); + mList.repaint(1); + mAllowBtn.setSelected(true); + mAllowBtn.invalidate(); + mAllowBtn.validate(); + mAllowBtn.repaint(1); + mDenyBtn.setSelected(false); + mDenyBtn.invalidate(); + mDenyBtn.validate(); + mDenyBtn.repaint(1); + mACIText.setText(""); + if (mList.getSelectedIndex() < 0) + mOK.setEnabled(false); + else + mOK.setEnabled(true); + } else { + if (aci.startsWith("allow")) { + mAllowBtn.setSelected(true); + } else if (aci.startsWith("deny")) { + mDenyBtn.setSelected(true); + } + int startIndex = aci.indexOf("("); + int endIndex = aci.indexOf(")"); + if ((startIndex > 0) && (endIndex > 0)) { + String str = aci.substring(startIndex+1, endIndex); + StringTokenizer tokenizer = new StringTokenizer(str,","); + int[] indices = new int[tokenizer.countTokens()]; + int i = 0; + while (tokenizer.hasMoreElements()) { + indices[i++] = mDataModel.indexOf(tokenizer.nextElement()); + } + mList.setSelectedIndices(indices); + } + String text = aci.substring(endIndex+1).trim(); + mACIText.setText(text); + } + + this.show(); + } + + public boolean getOK() { + return mDone; + } + + public String getValue() { + Object[] values = mList.getSelectedValues(); + String result = ""; + if (!mAllowBtn.isSelected() && !mDenyBtn.isSelected()) + return ""; + if (mAllowBtn.isSelected()) + result = result+"allow"+" ("; + else if (mDenyBtn.isSelected()) + result = result+"deny"+" ("; + if ((values == null) || (values.length == 0)) + return ""; + + for (int i=0; i 0) + result = result+","+(String)values[i]; + else if (i == 0) + result = result+(String)values[i]; + if (i == values.length-1) + result = result+") "; + } + result = result+mACIText.getText(); + return result; + } + + public void mouseClicked(MouseEvent e) { + if (e.getSource() == mList) { + if (mList.getSelectedIndex() < 0) + mOK.setEnabled(false); + else + mOK.setEnabled(true); + return; + } + + Component comp = (Component)e.getSource(); + String str = comp.getName(); + String text = ""; + if (str.equals("access")) { + text = mResource.getString(PREFIX+"_ACCESS_HELP"); + } else if (str.equals("rights")) { + text = mResource.getString(PREFIX+"_RIGHTS_HELP"); + } else if (str.equals("syntax")) { + text = mResource.getString(PREFIX+"_SYNTAX_HELP"); + } + mHelpArea.setText(text); + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) { + } + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) { + } + + private boolean validateSyntax(String str, NameValuePairs nvps) { + for (String name : nvps.keySet()) { + if (str.startsWith(name)) { + int len = name.length(); + String leftover = str.substring(len).trim(); + String operators = nvps.get(name); + StringTokenizer st = new StringTokenizer(operators, ","); + while (st.hasMoreTokens()) { + String token = st.nextToken(); + if (leftover.startsWith(token)) + return true; + } + } + } + + return false; + } + + private void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(content, gbc); + center.add(content); + + // Help Panel + JPanel helpPanel = makeHelpPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.insets = new Insets(CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0,CMSAdminUtil.DIFFERENT_COMPONENT_SPACE); + gb.setConstraints(helpPanel, gbc); + center.add(helpPanel); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + //create botton action panel + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, PREFIX, "HELP", null, this); + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + private JPanel makeHelpPanel() { + JPanel helpPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + helpPanel.setBorder(CMSAdminUtil.makeEtchedBorder()); + helpPanel.setLayout(gb); + + mHelpArea = new JTextArea(); + mHelpArea.setRows(20); + mHelpArea.setLineWrap(true); + mHelpArea.setWrapStyleWord(true); + mHelpArea.setBackground(helpPanel.getBackground()); + mHelpArea.setEditable(false); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.fill=gbc.BOTH; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; +/* + gbc.insets = new Insets(0, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0,CMSAdminUtil.DIFFERENT_COMPONENT_SPACE); +*/ + gbc.weightx = 1.0; + gbc.weighty = 1.0; + // gbc.gridx = 1; + // gbc.gridy = 1; + gb.setConstraints(mHelpArea, gbc); + helpPanel.add(mHelpArea); + mHelpArea.setText(mResource.getString(PREFIX+"_INTRO_HELP")); + return helpPanel; + } + + private JPanel makeListPane() { + JPanel listPanel = new JPanel(); + + GridBagConstraints gbc = new GridBagConstraints(); + GridBagLayout gb = new GridBagLayout(); + listPanel.setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JLabel opsLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "RIGHTS", null); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(opsLabel, gbc); + listPanel.add(opsLabel); + + mList = CMSAdminUtil.makeJList(mDataModel, 3); + mScrollPane = new JScrollPane(mList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + + if (!mOperations.equals("")) { + StringTokenizer tokenizer = new StringTokenizer(mOperations, ","); + while (tokenizer.hasMoreElements()) { + mDataModel.addElement(tokenizer.nextElement()); + } + } + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gb.setConstraints(mScrollPane, gbc); + listPanel.add(mScrollPane); + + return listPanel; + } + + private JPanel makeContentPanel() { + JPanel mainPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mainPanel.setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JLabel accessLbl = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "ACCESS", null); + gbc.anchor = gbc.NORTHWEST; + gb.setConstraints(accessLbl, gbc); + mainPanel.add(accessLbl); + accessLbl.addMouseListener(this); + accessLbl.setName("access"); + ButtonGroup group = new ButtonGroup(); + + CMSAdminUtil.resetGBC(gbc); + //mAllowBtn = new JRadioButton("allow"); + mAllowBtn = CMSAdminUtil.makeJRadioButton(mResource, PREFIX, + "ALLOW", null, true, this); + group.add(mAllowBtn); + gbc.anchor = gbc.NORTHWEST; + gb.setConstraints(mAllowBtn, gbc); + mainPanel.add(mAllowBtn); + + CMSAdminUtil.resetGBC(gbc); + //mDenyBtn = new JRadioButton("deny"); + mDenyBtn = CMSAdminUtil.makeJRadioButton(mResource, PREFIX, + "DENY", null, false, this); + group.add(mDenyBtn); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(mDenyBtn, gbc); + mainPanel.add(mDenyBtn); + + CMSAdminUtil.resetGBC(gbc); + JLabel opsLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "RIGHTS", null); + gbc.anchor = gbc.NORTHWEST; + //gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(opsLabel, gbc); + mainPanel.add(opsLabel); + opsLabel.addMouseListener(this); + opsLabel.setName("rights"); + + mList = CMSAdminUtil.makeJList(mDataModel, 3); + mScrollPane = new JScrollPane(mList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + + if (!mOperations.equals("")) { + StringTokenizer tokenizer = new StringTokenizer(mOperations, ","); + while (tokenizer.hasMoreElements()) { + mDataModel.addElement(tokenizer.nextElement()); + } + } + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(mScrollPane, gbc); + mainPanel.add(mScrollPane); +/* + JPanel listPane = makeListPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(listPane, gbc); + mainPanel.add(listPane); +*/ + + CMSAdminUtil.resetGBC(gbc); + JLabel attrLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "SYNTAX", null); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(attrLabel, gbc); + mainPanel.add(attrLabel); + attrLabel.addMouseListener(this); + attrLabel.setName("syntax"); + + CMSAdminUtil.resetGBC(gbc); + mACIText = new JTextArea(); + mACIText.setRows(20); + mACIText.setLineWrap(true); + mACIText.setWrapStyleWord(true); + JScrollPane scrollPane = createScrollPane(mACIText); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.fill=gbc.BOTH; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + // gbc.gridx = 1; + // gbc.gridy = 1; + gb.setConstraints(scrollPane, gbc); + mainPanel.add(scrollPane); + + return mainPanel; + } + + private JScrollPane createScrollPane(JComponent component) { + + JScrollPane scrollPane = new JScrollPane(component, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setBackground(getBackground()); + scrollPane.setAlignmentX(LEFT_ALIGNMENT); + scrollPane.setAlignmentY(TOP_ALIGNMENT); + scrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + return scrollPane; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ACLDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/ACLDataModel.java new file mode 100644 index 000000000..4adf6c4d3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ACLDataModel.java @@ -0,0 +1,47 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; + +/** + * ACL data model - represents the access control information + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class ACLDataModel extends CMSTableModel { + /*========================================================== + * variables + *==========================================================*/ + public static final String COL1 = "ACLNAME"; + public static final String COL2 = "ACLDESC"; + + private static String[] mColumns = {COL1, COL2}; + + /*========================================================== + * constructors + *==========================================================*/ + public ACLDataModel() { + super(); + init(mColumns); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ACLEditDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ACLEditDialog.java new file mode 100644 index 000000000..b3bcb72e1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ACLEditDialog.java @@ -0,0 +1,557 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * ACL Editor + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ACLEditDialog extends JDialog + implements ActionListener, MouseListener +{ + private final static String PREFIX = "ACLEDITDIALOG"; + private final static String HELPINDEX = + "configuration-authorization"; + private JScrollPane mScrollPane; + private JList mList; + private JFrame mParentFrame; + private JButton mOK, mCancel, mHelp; + private JButton mAdd, mEdit, mDelete; + private ResourceBundle mResource; + private String mResourceName, mDesc; + private DefaultListModel mDataModel; + private String mOperations; + private AdminConnection mAdmin; + private ACIDialog mDialog; + private String mHelpToken; + private JTextArea mDescArea, mHelpArea; + private JTextField mResourceText, mRightsText; + private boolean mIsNew = false; + private Color mActiveColor; + + public ACLEditDialog(AdminConnection admin, JFrame parent) { + this(admin, parent, null, null); + } + + public ACLEditDialog(AdminConnection admin, JFrame parent, + String name, String desc) { + super(parent,true); + mParentFrame = parent; + mResource = ResourceBundle.getBundle( + CMSAdminResources.class.getName()); + mDesc = desc; + mResourceName = name; + if (mResourceName == null) + mIsNew = true; + mAdmin = admin; + mHelpToken = HELPINDEX; + mDataModel = new DefaultListModel(); + setSize(460, 420); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + setDisplay(); + } + + public void actionPerformed(ActionEvent evt) { + if (evt.getSource().equals(mCancel)) { + if (mDialog != null) { + mDialog.dispose(); + mDialog = null; + } + this.dispose(); + } else if (evt.getSource().equals(mDelete)) { + int index = mList.getSelectedIndex(); + if (index >= 0) { + int i = CMSAdminUtil.showConfirmDialog(mParentFrame, + mResource, PREFIX, "DELETE", CMSAdminUtil.WARNING_MESSAGE); + if (i == JOptionPane.YES_OPTION) { + mDataModel.removeElementAt(index); + Debug.println("Deleted"); + if (mDataModel.size() > 0) + mList.setSelectedIndex(0); + } + } + } else if (evt.getSource().equals(mOK)) { + if (mIsNew) { + mResourceName = mResourceText.getText().trim(); + if (mResourceName.equals("")) { + String msg = mResource.getString( + PREFIX+"_DIALOG_EMPTYRESOURCEID_MESSAGE"); + CMSAdminUtil.showErrorDialog(mParentFrame, + mResource, msg, CMSAdminUtil.ERROR_MESSAGE); + return; + } + } + + String rights = mRightsText.getText().trim(); + + NameValuePairs pairs = new NameValuePairs(); + if (!rights.equals("")) { + String str = ""; + int size=mDataModel.getSize(); + if (size == 0) { + String msg = mResource.getString( + PREFIX+"_DIALOG_EMPTYACIS_MESSAGE"); + CMSAdminUtil.showErrorDialog(mParentFrame, + mResource, msg, CMSAdminUtil.ERROR_MESSAGE); + return; + } + + String desc = mDescArea.getText().trim(); + if (desc.equals("")) { + String msg = mResource.getString( + PREFIX+"_DIALOG_EMPTYDESC_MESSAGE"); + CMSAdminUtil.showErrorDialog(mParentFrame, + mResource, msg, CMSAdminUtil.ERROR_MESSAGE); + return; + } + + for (int i=0; i 0) + str = str+";"+(String)mDataModel.elementAt(i); + else + str = str+(String)mDataModel.elementAt(i); + } + pairs.put(Constants.PR_ACI, str); + pairs.put(Constants.PR_ACL_DESC, desc); + pairs.put(Constants.PR_ACL_RIGHTS, rights); + } + + try { + mAdmin.modify(DestDef.DEST_ACL_ADMIN, ScopeDef.SC_ACL, + mResourceName, pairs); + if (mDialog != null) { + mDialog.dispose(); + mDialog = null; + } + this.dispose(); + } catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, e.getMessage(), + CMSAdminUtil.ERROR_MESSAGE); + } + } else if (evt.getSource().equals(mAdd)) { + String rights = mRightsText.getText().trim(); + if (rights.equals("")) { + String msg = mResource.getString( + PREFIX+"_DIALOG_EMPTYRIGHTS_MESSAGE"); + CMSAdminUtil.showErrorDialog(mParentFrame, + mResource, msg, CMSAdminUtil.ERROR_MESSAGE); + return; + } + mOperations = rights; + mDialog = new ACIDialog(mParentFrame, mOperations, mAdmin); + mDialog.showDialog("", true); + if (mDialog.getOK()) { + mDataModel.addElement(mDialog.getValue()); + mList.setSelectedIndex(mDataModel.size()-1); + mDelete.setEnabled(true); + mEdit.setEnabled(true); + } + mDialog = null; + } else if (evt.getSource().equals(mEdit)) { + mDialog = new ACIDialog(mParentFrame, mOperations, mAdmin); + int index = mList.getSelectedIndex(); + if (index >= 0) { + String aci = (String)mDataModel.elementAt(index); + mDialog.showDialog(aci, false); + + if (mDialog.getOK()) + mDataModel.setElementAt(mDialog.getValue(), index); + } + mDialog = null; + } else if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + } + + public void showDialog() { + mEdit.setEnabled(false); + mDelete.setEnabled(false); + this.show(); + } + + public void showDialog(NameValuePairs data) { + String aci = data.get(Constants.PR_ACI); + mOperations = data.get(Constants.PR_ACL_OPS); + + if ((aci != null) && (!aci.trim().equals(""))) { + StringTokenizer tokenizer = new StringTokenizer(aci, ";"); + while (tokenizer.hasMoreElements()) + mDataModel.addElement(tokenizer.nextElement()); + } + if (mList.getSelectedIndex() < 0) { + mEdit.setEnabled(false); + mDelete.setEnabled(false); + } else { + mEdit.setEnabled(true); + mDelete.setEnabled(true); + } + + if (!mIsNew) + mRightsText.setText(mOperations); + + this.show(); + } + + private void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(content, gbc); + center.add(content); + + // Help Panel + JPanel helpPanel = makeHelpPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.insets = new Insets(CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0,CMSAdminUtil.DIFFERENT_COMPONENT_SPACE); + gb.setConstraints(helpPanel, gbc); + center.add(helpPanel); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + public void mouseClicked(MouseEvent e) { + if (e.getSource() == mList) { + if (mList.getSelectedIndex() < 0) { + mDelete.setEnabled(false); + mEdit.setEnabled(false); + } else { + mDelete.setEnabled(true); + mEdit.setEnabled(true); + } + + return; + } + + Component comp = (Component)e.getSource(); + String str = comp.getName(); + String text = ""; + if (str.equals("resourceID")) { + text = mResource.getString(PREFIX+"_RESOURCEID_HELP"); + } else if (str.equals("rights")) { + text = mResource.getString(PREFIX+"_RIGHTS_HELP"); + } else if (str.equals("aci")) { + text = mResource.getString(PREFIX+"_ACI_HELP"); + } else if (str.equals("description")) { + text = mResource.getString(PREFIX+"_DESC_HELP"); + } + mHelpArea.setText(text); + } + + public void mousePressed(MouseEvent e) { + } + public void mouseReleased(MouseEvent e) { + } + public void mouseEntered(MouseEvent e) { + } + public void mouseExited(MouseEvent e) { + } + + /** + * create the bottom action button panel + */ + private JPanel createUDButtonPanel() { + //up, down buttons required + //actionlister to this object + mAdd = CMSAdminUtil.makeJButton(mResource, PREFIX, "ADD", null, this); + mDelete = CMSAdminUtil.makeJButton(mResource, PREFIX, "DELETE", + null, this); + mEdit = CMSAdminUtil.makeJButton(mResource, PREFIX, "EDIT", null, this); + JButton[] buttons = {mAdd, mDelete, mEdit}; + JButtonFactory.resize(buttons); + return CMSAdminUtil.makeJButtonVPanel(buttons); + } + + //create botton action panel + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, PREFIX, "HELP", null, this); + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + private JPanel makeHelpPanel() { + JPanel helpPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + helpPanel.setBorder(CMSAdminUtil.makeEtchedBorder()); + helpPanel.setLayout(gb); + + mHelpArea = new JTextArea(); + mHelpArea.setRows(20); + mHelpArea.setLineWrap(true); + mHelpArea.setWrapStyleWord(true); + mHelpArea.setBackground(helpPanel.getBackground()); + mHelpArea.setEditable(false); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.fill=gbc.BOTH; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; +/* + gbc.insets = new Insets(0, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0,CMSAdminUtil.DIFFERENT_COMPONENT_SPACE); +*/ + gbc.weightx = 1.0; + gbc.weighty = 1.0; + // gbc.gridx = 1; + // gbc.gridy = 1; + gb.setConstraints(mHelpArea, gbc); + helpPanel.add(mHelpArea); + mHelpArea.setText(mResource.getString(PREFIX+"_INTRO_HELP")); + return helpPanel; + } + + private JPanel makeContentPanel() { + JPanel mainPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mainPanel.setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JLabel label1 = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "RESOURCEOBJECT", null); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0, CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(label1, gbc); + mainPanel.add(label1); + label1.setName("resourceID"); + label1.addMouseListener(this); + + CMSAdminUtil.resetGBC(gbc); + if (mIsNew) { + mResourceText = new JTextField(30); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(mResourceText, gbc); + mainPanel.add(mResourceText); + } else { + JLabel label2 = new JLabel(mResourceName); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(label2, gbc); + mainPanel.add(label2); + } + + CMSAdminUtil.resetGBC(gbc); + JLabel rightsLbl = CMSAdminUtil.makeJLabel( + mResource, PREFIX, "RIGHTS", null); + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0, CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(rightsLbl, gbc); + mainPanel.add(rightsLbl); + rightsLbl.setName("rights"); + rightsLbl.addMouseListener(this); + + CMSAdminUtil.resetGBC(gbc); + mRightsText = new JTextField(30); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(mRightsText, gbc); + mainPanel.add(mRightsText); + + JLabel aciLbl = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "ACI", null); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0,CMSAdminUtil.DIFFERENT_COMPONENT_SPACE); + gb.setConstraints(aciLbl, gbc); + mainPanel.add(aciLbl); + aciLbl.setName("aci"); + aciLbl.addMouseListener(this); + + JPanel listPanel = makeListPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill=gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0,CMSAdminUtil.DIFFERENT_COMPONENT_SPACE); + gb.setConstraints(listPanel, gbc); + mainPanel.add(listPanel); + + JLabel descLbl = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "DESC", null); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0,CMSAdminUtil.DIFFERENT_COMPONENT_SPACE); + gb.setConstraints(descLbl, gbc); + mainPanel.add(descLbl); + descLbl.setName("description"); + descLbl.addMouseListener(this); + + CMSAdminUtil.resetGBC(gbc); + mDescArea = new JTextArea(); + mDescArea.setRows(20); + mDescArea.setLineWrap(true); + mDescArea.setWrapStyleWord(true); + if (mDesc != null) + mDescArea.setText(mDesc); + JScrollPane scrollPane = createScrollPane(mDescArea); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.fill=gbc.BOTH; + gbc.insets = new Insets(0, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0,CMSAdminUtil.DIFFERENT_COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.weighty = 1.0; + // gbc.gridx = 1; + // gbc.gridy = 1; + gb.setConstraints(scrollPane, gbc); + mainPanel.add(scrollPane); + +/* + mActiveColor = mDescArea.getBackground(); + + if (mIsNew) + enableTextField(mResourceText, true, mActiveColor); + else + enableTextField(mResourceText, false, getBackground()); +*/ + return mainPanel; + } + + private void enableTextField(JTextField textFld, boolean enabled, + Color color) { + textFld.setEnabled(enabled); + textFld.setEditable(enabled); + textFld.setBackground(color); + CMSAdminUtil.repaintComp(textFld); + } + + private JScrollPane createScrollPane(JComponent component) { + + JScrollPane scrollPane = new JScrollPane(component, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setBackground(getBackground()); + scrollPane.setAlignmentX(LEFT_ALIGNMENT); + scrollPane.setAlignmentY(TOP_ALIGNMENT); + scrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + return scrollPane; + } + + private JPanel makeListPanel() { + JPanel listPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + listPanel.setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + mList = CMSAdminUtil.makeJList(mDataModel,9); + mScrollPane = new JScrollPane(mList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + mList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION ); + mList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + //gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + listPanel.add(mScrollPane); + + CMSAdminUtil.resetGBC(gbc); + JPanel VBtnPanel = createUDButtonPanel(); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(VBtnPanel, gbc); + listPanel.add(VBtnPanel); + + return listPanel; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ACLImplDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/ACLImplDataModel.java new file mode 100644 index 000000000..79033030d --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ACLImplDataModel.java @@ -0,0 +1,47 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; + +/** + * ACL data model - represents the evaluator table information + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class ACLImplDataModel extends CMSTableModel { + /*========================================================== + * variables + *==========================================================*/ + public static final String COL1 = "EVALNAME"; + public static final String COL2 = "CLASSNAME"; + + private static String[] mColumns = {COL1, COL2}; + + /*========================================================== + * constructors + *==========================================================*/ + public ACLImplDataModel() { + super(); + init(mColumns); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ACLImplTab.java b/base/console/src/com/netscape/admin/certsrv/config/ACLImplTab.java new file mode 100644 index 000000000..4693224b1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ACLImplTab.java @@ -0,0 +1,227 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.*; +import java.util.*; +import java.awt.event.*; + +/** + * ACL Implementation Tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class ACLImplTab extends CMSBaseUGTab { + private static String PANEL_NAME = "ACLIMPL"; + private CMSBaseResourceModel mModel; + private AdminConnection mConnection; + private JTable mTable; + private JScrollPane mScrollPane; + protected ACLImplDataModel mDataModel; + protected EvaluatorRegisterDialog mEditor=null; + protected JButton mRefresh, mAdd, mDelete, mHelp; + private static final String HELPINDEX = + "configuration-authorization"; + + public ACLImplTab(CMSUGTabPanel parent) { + super(PANEL_NAME, parent.getResourceModel()); + mModel = parent.getResourceModel(); + mDataModel = new ACLImplDataModel(); + mConnection = mModel.getServerInfo().getAdmin(); + mHelpToken = HELPINDEX; + } + + protected JPanel createListPanel() { + JPanel mainPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mainPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + mScrollPane.setHorizontalScrollBarPolicy( + mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy( + mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode( + ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mainPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mainPanel.add(buttonPanel); + + refresh(); + + return mainPanel; + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + JButton[] buttons = {mAdd, mDelete}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + protected JPanel createActionPanel() { + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + public void refresh() { + mModel.progressStart(); + mDataModel.removeAllRows(); + update(); + mTable.invalidate(); + mTable.validate(); + mScrollPane.invalidate(); + mScrollPane.validate(); + mScrollPane.repaint(1); + mModel.progressStop(); + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } else if (e.getSource().equals(mAdd)) { + if (mEditor==null) + mEditor = new EvaluatorRegisterDialog(mModel.getFrame(), + mConnection); + mEditor.showDialog(DestDef.DEST_ACL_ADMIN, ScopeDef.SC_ACL_IMPLS); + refresh(); + } else if (e.getSource().equals(mDelete)) { + Debug.println("Delete"); + if(mTable.getSelectedRow()< 0) + return; + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + delete(); + Debug.println("Deleted"); + } + } else if (e.getSource().equals(mHelp)) { + helpCallback(); + } + } + + public void mouseClicked(MouseEvent e) { + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new LabelCellRenderer(new JLabel())); + } + + private void delete() { + //get entry name + int row = mTable.getSelectedRow(); + + //send comment to server for the removal of user + try { + mConnection.delete(DestDef.DEST_ACL_ADMIN, + ScopeDef.SC_ACL_IMPLS, + ((JLabel)(mDataModel.getValueAt(row, 0))).getText()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + return; + } + + //send comment to server and refetch the content + refresh(); + } + + private void update() { + //send request and parse data + NameValuePairs response; + try { + response = mConnection.search(DestDef.DEST_ACL_ADMIN, + ScopeDef.SC_ACL_IMPLS, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + return; + } + + Debug.println(response.toString()); + + //parse the data + int i=0; + String[] vals = new String[response.size()]; + + for (String entry : response.keySet()) { + vals[i++] = entry.trim(); + } + + CMSAdminUtil.bubbleSort(vals); + + for (i=0; i0) + mTable.setRowSelectionInterval(0,0); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/ACLPanel.java b/base/console/src/com/netscape/admin/certsrv/config/ACLPanel.java new file mode 100644 index 000000000..2593e0c0b --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ACLPanel.java @@ -0,0 +1,231 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.*; +import java.util.*; +import java.awt.event.*; + +/** + * ACL Management Tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class ACLPanel extends CMSBaseUGTab { + private static String PANEL_NAME = "ACLMGMT"; + private CMSBaseResourceModel mModel; + private AdminConnection mAdmin; + private JButton mRefresh; + private JButton mHelp; + private JButton mEdit, mAdd; + private JTable mTable; + private ACLDataModel mDataModel; + private JScrollPane mScrollPane; + private ACLEditDialog mEditor; + private static final String HELPINDEX = + "configuration-authorization"; + + public ACLPanel(CMSUGTabPanel parent) { + super(PANEL_NAME, parent.getResourceModel()); + mModel = parent.getResourceModel(); + mAdmin = mModel.getServerInfo().getAdmin(); + mDataModel = new ACLDataModel(); + mHelpToken = HELPINDEX; + } + + protected JPanel createListPanel() { + JPanel mainPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mainPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + mScrollPane.setHorizontalScrollBarPolicy( + mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy( + mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode( + ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mainPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mainPanel.add(buttonPanel); + + refresh(); + + return mainPanel; + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mEdit = makeJButton("EDIT"); + JButton[] buttons = {mAdd,mEdit}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + private JScrollPane createScrollPane(JList listbox) { + + JScrollPane scrollPane = new JScrollPane(listbox, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane.setBackground(getBackground()); + scrollPane.setAlignmentX(LEFT_ALIGNMENT); + scrollPane.setAlignmentY(TOP_ALIGNMENT); + scrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + return scrollPane; + } + + protected JPanel createActionPanel() { + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + public void refresh() { + mModel.progressStart(); + mDataModel.removeAllRows(); + update(); + mTable.invalidate(); + mTable.validate(); + mScrollPane.invalidate(); + mScrollPane.validate(); + mScrollPane.repaint(1); + mModel.progressStop(); + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mEdit)) { + int row = -1; + if ((row = mTable.getSelectedRow()) < 0) + return; + String name = ((JLabel)(mDataModel.getValueAt(row, 0))).getText(); + String desc = (String)(mDataModel.getValueAt(row, 1)); + NameValuePairs response; + try { + response = mAdmin.read(DestDef.DEST_ACL_ADMIN, + ScopeDef.SC_ACL, name, new NameValuePairs()); + } catch (EAdminException ee) { + //display error dialog + showErrorDialog(ee.getMessage()); + return; + } + + Debug.println(response.toString()); + mEditor = new ACLEditDialog(mAdmin, mModel.getFrame(), name, desc); + mEditor.showDialog(response); + refresh(); + } else if (e.getSource().equals(mAdd)) { + mEditor = new ACLEditDialog(mAdmin, mModel.getFrame()); + mEditor.showDialog(); + refresh(); + } else if (e.getSource().equals(mRefresh)) { + refresh(); + } else if (e.getSource().equals(mHelp)) { + helpCallback(); + } + } + + public void mouseClicked(MouseEvent e) { + } + + private void update() { + //send request and parse data + NameValuePairs response; + try { + response = mAdmin.search(DestDef.DEST_ACL_ADMIN, + ScopeDef.SC_ACL, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + return; + } + + Debug.println(response.toString()); + + //parse the data + int i=0; + String[] vals = new String[response.size()]; + + for (String entry : response.keySet()) { + vals[i++] = entry.trim(); + } + + CMSAdminUtil.bubbleSort(vals); + + for (i=0; i0) + mTable.setRowSelectionInterval(0,0); + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new LabelCellRenderer(new JLabel())); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/AutoRecoveryModel.java b/base/console/src/com/netscape/admin/certsrv/config/AutoRecoveryModel.java new file mode 100644 index 000000000..90b617cbd --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/AutoRecoveryModel.java @@ -0,0 +1,57 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; + +/** + * Auto recovery data model - represents the instance + * table information + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class AutoRecoveryModel extends CMSTableModel +{ + + /*========================================================== + * variables + *==========================================================*/ + public static final String COL1 = "NUMBER"; + public static final String COL2 = "UID"; + public static final String COL3 = "PASSWORD"; + + private static String[] mColumns = {COL1, COL2, COL3}; + + /*========================================================== + * constructors + *==========================================================*/ + public AutoRecoveryModel() { + super(); + init(mColumns); + } + + public boolean isCellEditable(int row, int col) { + if(col >= 1) + return true; + return false; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CACertsTab.java b/base/console/src/com/netscape/admin/certsrv/config/CACertsTab.java new file mode 100644 index 000000000..18590747a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CACertsTab.java @@ -0,0 +1,392 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.management.client.console.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.keycert.*; + +/** + * CA certs Tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CACertsTab extends CMSBaseUGTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "CACERTS"; + private CMSBaseResourceModel mModel; + private AdminConnection mConnection; + private String mDestination; + private ConsoleInfo mConsoleInfo; + + protected JScrollPane mScrollPane; + protected JTable mTable; //table + protected ListCertsModel mDataModel; //table model + protected CertViewDialog mEditor=null; //keep single copy + + protected JButton mRefresh, mAdd, mDelete, mView, mEdit, mHelp; + private final static String HELPINDEX = "configuration-log-plugin-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public CACertsTab(CMSBaseResourceModel model, String destination) { + super(PANEL_NAME, model); + mConnection = model.getServerInfo().getAdmin(); + mModel = model; + mConsoleInfo = mModel.getConsoleInfo(); + mDataModel = new ListCertsModel(); + mDestination = destination; + mHelpToken = HELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } + if (e.getSource().equals(mHelp)) { + helpCallback(); + } + if (e.getSource().equals(mAdd)) { + + CertSetupWizardInfo info = new CertSetupWizardInfo(mConnection, mConsoleInfo); + + // if it is "0", then it means it is root cert mode. + // if it is "1", then it means it is user cert mode. + info.setMode("0"); + CertSetupWizard wizard = new CertSetupWizard( + mModel, info); + refresh(); + return; + } + + int row = mTable.getSelectedRow(); + if(row < 0) + return; + + if (e.getSource().equals(mDelete)) { + Debug.println("Delete"); + if(mTable.getSelectedRow()< 0) + return; + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + delete(); + Debug.println("Deleted"); + } + } + if (e.getSource().equals(mView)) { + Debug.println("View"); + String nickname = (String)(mTable.getValueAt(row, 3)) + ":" + + (String)(mTable.getValueAt(row, 0)); + String serialno = (String)(mTable.getValueAt(row, 1)); + String issuername = (String)(mTable.getValueAt(row, 2)); + + try { + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_NICK_NAME, nickname); + nvps.put(Constants.PR_SERIAL_NUMBER, serialno); + nvps.put(Constants.PR_ISSUER_NAME, issuername); + NameValuePairs results = mConnection.process( + DestDef.DEST_SERVER_ADMIN, ScopeDef.SC_CERT_PRETTY_PRINT, + Constants.RS_ID_CONFIG, nvps); + if (nvps.size() <= 0) + return; + String name = results.keySet().iterator().next(); // first element + String print = results.get(name); + CertViewDialog certdialog = new CertViewDialog(mModel.getFrame()); + certdialog.showDialog(nickname, print); + } catch (EAdminException ex) { + CMSAdminUtil.showErrorDialog(mModel.getFrame(), mResource, ex.toString(), + CMSAdminUtil.ERROR_MESSAGE); + } + } + if (e.getSource().equals(mEdit)) { + Debug.println("Edit"); + String nickname = (String)(mTable.getValueAt(row, 3)) + ":" + + (String)(mTable.getValueAt(row, 0)); + String serialno = (String)(mTable.getValueAt(row, 1)); + String issuername = (String)(mTable.getValueAt(row, 2)); + + try { + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_NICK_NAME, nickname); + nvps.put(Constants.PR_SERIAL_NUMBER, serialno); + nvps.put(Constants.PR_ISSUER_NAME, issuername); + NameValuePairs results = mConnection.process( + DestDef.DEST_SERVER_ADMIN, ScopeDef.SC_ROOTCERT_TRUSTBIT, + Constants.RS_ID_CONFIG, nvps); + if (nvps.size() <= 0) + return; + String name = results.keySet().iterator().next(); // first element + String trust = results.get(name); + int i; + String[] params = new String[2]; + if (trust.equals("U")) { + params[0] = "untrusted"; + params[1] = "trust"; + i = showConfirmDialog("TRUST", params); + } else { + params[0] = "trusted"; + params[1] = "untrust"; + i = showConfirmDialog("TRUST", params); + } + + if (i == JOptionPane.YES_OPTION) { + nvps.put("trustbit", params[1]); + mConnection.modify(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_ROOTCERT_TRUSTBIT, + Constants.RS_ID_CONFIG, nvps); + } + } catch (EAdminException ex) { + CMSAdminUtil.showErrorDialog(mModel.getFrame(), mResource, ex.toString(), + CMSAdminUtil.ERROR_MESSAGE); + } + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mouseReleased(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + public void refresh() { + + mDataModel.removeAllRows(); + update(); + + setButtons(); + mTable.invalidate(); + mTable.validate(); + mTable.repaint(1); + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + mView = makeJButton("VIEW"); + mEdit = makeJButton("EDIT"); + JButton[] buttons = {mAdd, mDelete, mView, mEdit}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + refresh(); + + return mListPanel; + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer(new LabelCellRenderer(new JLabel())); + } + + + //set buttons + private void setButtons() { + + //enable and diable buttons accordingly + //Debug.println("setButtons() - "+mTable.getSelectedRow()); + //Debug.println("setButtons() - "+mTable.getSelectionModel().isSelectionEmpty()); + if (mTable.getSelectionModel().isSelectionEmpty()) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + if(mDataModel.getRowCount()<=0) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + mDelete.setEnabled(true); + mView.setEnabled(true); + + } + + //============================================= + // SEND REQUESTS TO THE SERVER SIDE + //============================================= + private void update() { + //send request and parse data + + mModel.progressStart(); + NameValuePairs response; + try { + response = mConnection.search(mDestination, ScopeDef.SC_ROOTCERTSLIST, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + + Debug.println(response.toString()); + + //parse the data + mDataModel.removeAllRows(); + if (response != null) { + String[] vals = new String[response.size()]; + int i=0; + for (String entry : response.keySet()) { + vals[i++] = entry.trim(); + } + + int sindex = 0; + String snickname = ""; + CMSAdminUtil.quickSort(vals, 0, response.size()-1); + for (i=0; i 0) + mTable.setRowSelectionInterval(0,0); + } + + mModel.progressStop(); + } + + private void delete() { + mModel.progressStart(); + int row = mTable.getSelectedRow(); + String nickname = (String)(mDataModel.getValueAt(row, 3))+":"+ + (String)(mDataModel.getValueAt(row, 0)); + String id = nickname+":SERIAL#<"+mDataModel.getValueAt(row, 1)+">" + +mDataModel.getValueAt(row, 2); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, ScopeDef.SC_ROOTCERTSLIST, id); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSAccessLogPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSAccessLogPanel.java new file mode 100644 index 000000000..8f1fc1f20 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSAccessLogPanel.java @@ -0,0 +1,210 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; + +import java.awt.event.*; + +/** + * Access Log Setting Tab to be displayed at the right hand side + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSAccessLogPanel extends CMSBaseLogPanel { + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "ACCESSLOG"; + private CMSTabPanel mParent; + private static final String HELPINDEX = "configuration-logs-system-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSAccessLogPanel(CMSTabPanel parent, boolean isNT) { + super(PANEL_NAME, parent); + mParent = parent; + mHelpToken = HELPINDEX; + mIsNT = isNT; + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * Actual Instantiation of the UI components + */ + public void init() { + Debug.println("AccessLogPanel: init()"); + super.init(); + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvp = new NameValuePairs(); + nvp.put(Constants.PR_LOG_ENABLED, ""); + nvp.put(Constants.PR_LOG_LEVEL, ""); + nvp.put(Constants.PR_LOG_BUFFERSIZE, ""); + //nvp.add(Constants.PR_LOG_EXPIRED_TIME, ""); + //nvp.add(Constants.PR_LOG_FILENAME, ""); + //nvp.add(Constants.PR_LOG_FLUSHINTERVAL, ""); + nvp.put(Constants.PR_LOG_MAXFILESIZE, ""); + nvp.put(Constants.PR_LOG_ROLLEROVER_INTERVAL, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_LOG_ADMIN, + ScopeDef.SC_SYSTEMLOG, Constants.RS_ID_CONFIG, nvp); + parseVals(val); + if (mIsNT) { + nvp.clear(); + nvp.put(Constants.PR_NT_EVENT_SOURCE, ""); + nvp.put(Constants.PR_NT_LOG_LEVEL, ""); + nvp.put(Constants.PR_NT_LOG_ENABLED, ""); + val = mAdmin.read(DestDef.DEST_LOG_ADMIN, + ScopeDef.SC_NTSYSTEMLOG, Constants.RS_ID_CONFIG, nvp); + parseNTVals(val); + } + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + setValues(); + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + private void parseVals(NameValuePairs nvp) { + if (nvp.get(Constants.PR_LOG_ENABLED).equalsIgnoreCase( + Constants.TRUE)) + activateLog.setSelected(true); + else + activateLog.setSelected(false); + mLevel = Integer.parseInt(nvp.get(Constants.PR_LOG_LEVEL)); + mlogBufSizTextData = nvp.get(Constants.PR_LOG_BUFFERSIZE); + mlogMaxSizTextData = nvp.get(Constants.PR_LOG_MAXFILESIZE); + int val = + Integer.parseInt(nvp.get(Constants.PR_LOG_ROLLEROVER_INTERVAL)); + mFrequency = getRollOverIndex(val); + } + + private void parseNTVals(NameValuePairs nvp) { + mNTLevel = Integer.parseInt(nvp.get(Constants.PR_NT_LOG_LEVEL)); + mSource = nvp.get(Constants.PR_NT_EVENT_SOURCE); + if (nvp.get(Constants.PR_NT_LOG_ENABLED).equalsIgnoreCase( + Constants.TRUE)) + mActivateNTLog.setSelected(true); + else + mActivateNTLog.setSelected(false); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + // check blank fields + if ((mlogMaxSizText.getText().trim().equals("")) || + (mlogBufSizText.getText().trim().equals("")) ) { + showMessageDialog("BLANKFIELD"); + return false; + } + + String bufSize = mlogBufSizText.getText().trim(); + String maxSize = mlogMaxSizText.getText().trim(); + + try { + int val1 = Integer.parseInt(bufSize); + int val2 = Integer.parseInt(maxSize); + if (val1 <= 0 || val2 <= 0) { + showMessageDialog("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + + NameValuePairs nvp = new NameValuePairs(); + mModel.progressStart(); + if (activateLog.isSelected()) + nvp.put(Constants.PR_LOG_ENABLED, Constants.TRUE); + else + nvp.put(Constants.PR_LOG_ENABLED, Constants.FALSE); + String str = "" + mLogLevel.getSelectedIndex(); + nvp.put(Constants.PR_LOG_LEVEL, str); + nvp.put(Constants.PR_LOG_BUFFERSIZE, mlogBufSizText.getText().trim()); + //nvp.add(Constants.PR_LOG_EXPIRED_TIME, ""); + //nvp.add(Constants.PR_LOG_FILENAME, ""); + //nvp.add(Constants.PR_LOG_FLUSHINTERVAL, ""); + nvp.put(Constants.PR_LOG_MAXFILESIZE, mlogMaxSizText.getText().trim()); + + str = "" + getRollOverTime(mlogFQC.getSelectedIndex()); + nvp.put(Constants.PR_LOG_ROLLEROVER_INTERVAL, str); + + try { + mAdmin.modify(DestDef.DEST_LOG_ADMIN, + ScopeDef.SC_SYSTEMLOG, Constants.RS_ID_CONFIG, nvp); + if (mIsNT) { + nvp.clear(); + nvp.put(Constants.PR_NT_LOG_LEVEL, + "" + mNTLogLevel.getSelectedIndex()); + nvp.put(Constants.PR_NT_EVENT_SOURCE, + mEventSourceText.getText().trim()); + if (mActivateNTLog.isSelected()) + nvp.put(Constants.PR_NT_LOG_ENABLED, Constants.TRUE); + else + nvp.put(Constants.PR_NT_LOG_ENABLED, Constants.FALSE); + mAdmin.modify(DestDef.DEST_LOG_ADMIN, + ScopeDef.SC_NTSYSTEMLOG, Constants.RS_ID_CONFIG, nvp); + } + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + + clearDirtyFlag(); + mModel.progressStop(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSAuditLogPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSAuditLogPanel.java new file mode 100644 index 000000000..067b954e8 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSAuditLogPanel.java @@ -0,0 +1,210 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; + +import java.awt.event.*; + +/** + * Audit Log Setting Tab to be displayed at the right hand side + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSAuditLogPanel extends CMSBaseLogPanel { + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "AUDITLOG"; + private CMSTabPanel mParent; + private static final String HELPINDEX = "configuration-logs-audit-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSAuditLogPanel(CMSTabPanel parent, boolean isNT) { + super(PANEL_NAME, parent); + mParent = parent; + mHelpToken = HELPINDEX; + mIsNT = isNT; + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * Actual Instantiation of the UI components + */ + public void init() { + Debug.println("AuditLogPanel: init()"); + super.init(); + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvp = new NameValuePairs(); + nvp.put(Constants.PR_LOG_ENABLED, ""); + nvp.put(Constants.PR_LOG_LEVEL, ""); + nvp.put(Constants.PR_LOG_BUFFERSIZE, ""); + //nvp.add(Constants.PR_LOG_EXPIRED_TIME, ""); + //nvp.add(Constants.PR_LOG_FILENAME, ""); + //nvp.add(Constants.PR_LOG_FLUSHINTERVAL, ""); + nvp.put(Constants.PR_LOG_MAXFILESIZE, ""); + nvp.put(Constants.PR_LOG_ROLLEROVER_INTERVAL, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_LOG_ADMIN, + ScopeDef.SC_AUDITLOG, Constants.RS_ID_CONFIG, nvp); + parseVals(val); + if (mIsNT) { + nvp.clear(); + nvp.put(Constants.PR_NT_EVENT_SOURCE, ""); + nvp.put(Constants.PR_NT_LOG_LEVEL, ""); + nvp.put(Constants.PR_NT_LOG_ENABLED, ""); + val = mAdmin.read(DestDef.DEST_LOG_ADMIN, + ScopeDef.SC_NTAUDITLOG, Constants.RS_ID_CONFIG, nvp); + parseNTVals(val); + } + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + setValues(); + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + private void parseVals(NameValuePairs nvp) { + if (nvp.get(Constants.PR_LOG_ENABLED).equalsIgnoreCase( + Constants.TRUE)) + activateLog.setSelected(true); + else + activateLog.setSelected(false); + mLevel = Integer.parseInt(nvp.get(Constants.PR_LOG_LEVEL)); + mlogBufSizTextData = nvp.get(Constants.PR_LOG_BUFFERSIZE); + mlogMaxSizTextData = nvp.get(Constants.PR_LOG_MAXFILESIZE); + int val = + Integer.parseInt(nvp.get(Constants.PR_LOG_ROLLEROVER_INTERVAL)); + mFrequency = getRollOverIndex(val); + } + + private void parseNTVals(NameValuePairs nvp) { + mNTLevel = Integer.parseInt(nvp.get(Constants.PR_NT_LOG_LEVEL)); + mSource = nvp.get(Constants.PR_NT_EVENT_SOURCE); + if (nvp.get(Constants.PR_NT_LOG_ENABLED).equalsIgnoreCase( + Constants.TRUE)) + mActivateNTLog.setSelected(true); + else + mActivateNTLog.setSelected(false); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + // check blank fields + if ((mlogMaxSizText.getText().trim().equals("")) || + (mlogBufSizText.getText().trim().equals("")) ) { + showMessageDialog("BLANKFIELD"); + return false; + } + + String bufSize = mlogBufSizText.getText().trim(); + String maxSize = mlogMaxSizText.getText().trim(); + + try { + int val1 = Integer.parseInt(bufSize); + int val2 = Integer.parseInt(maxSize); + if (val1 <= 0 || val2 <= 0) { + showMessageDialog("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + + NameValuePairs nvp = new NameValuePairs(); + mModel.progressStart(); + if (activateLog.isSelected()) + nvp.put(Constants.PR_LOG_ENABLED, Constants.TRUE); + else + nvp.put(Constants.PR_LOG_ENABLED, Constants.FALSE); + String str = "" + mLogLevel.getSelectedIndex(); + nvp.put(Constants.PR_LOG_LEVEL, str); + nvp.put(Constants.PR_LOG_BUFFERSIZE, mlogBufSizText.getText().trim()); + //nvp.add(Constants.PR_LOG_EXPIRED_TIME, ""); + //nvp.add(Constants.PR_LOG_FILENAME, ""); + //nvp.add(Constants.PR_LOG_FLUSHINTERVAL, ""); + nvp.put(Constants.PR_LOG_MAXFILESIZE, mlogMaxSizText.getText().trim()); + + str = "" + getRollOverTime(mlogFQC.getSelectedIndex()); + nvp.put(Constants.PR_LOG_ROLLEROVER_INTERVAL, str); + + try { + mAdmin.modify(DestDef.DEST_LOG_ADMIN, + ScopeDef.SC_AUDITLOG, Constants.RS_ID_CONFIG, nvp); + if (mIsNT) { + nvp.clear(); + nvp.put(Constants.PR_NT_LOG_LEVEL, + "" + mNTLogLevel.getSelectedIndex()); + nvp.put(Constants.PR_NT_EVENT_SOURCE, + mEventSourceText.getText().trim()); + if (mActivateNTLog.isSelected()) + nvp.put(Constants.PR_NT_LOG_ENABLED, Constants.TRUE); + else + nvp.put(Constants.PR_NT_LOG_ENABLED, Constants.FALSE); + mAdmin.modify(DestDef.DEST_LOG_ADMIN, + ScopeDef.SC_NTAUDITLOG, Constants.RS_ID_CONFIG, nvp); + } + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + + mModel.progressStop(); + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSAutoRecovery.java b/base/console/src/com/netscape/admin/certsrv/config/CMSAutoRecovery.java new file mode 100644 index 000000000..ef55470c6 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSAutoRecovery.java @@ -0,0 +1,267 @@ +// --- 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.config; + +import java.awt.*; +import java.util.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.table.*; +import javax.swing.text.*; +import javax.swing.event.*; + +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.*; + +/** + * Display the auto recovery dialog box. + * @author chrisho + * @version $Revision$, $Date$ + */ +public class CMSAutoRecovery extends JDialog implements ActionListener, + ListSelectionListener, MouseListener { + + private final static String PREFIX = "AUTORECOVERYDIALOG"; + private AdminConnection mAdmin; + private JFrame mParentFrame; + private ResourceBundle mResource; + private JButton mOK; + private JButton mCancel; + private JButton mEnable; + private String mDisableLabel; + private String mDisableTip; + private JTable mTable; + private AutoRecoveryModel mDataModel; + protected JScrollPane mScrollPane; + + public CMSAutoRecovery(JFrame parent, AdminConnection conn, JButton button) { + super(parent, true); + mParentFrame = parent; + mAdmin = conn; + mEnable = button; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mDisableLabel = mResource.getString(PREFIX + "_BUTTON_"+"DISABLEAUTO_LABEL"); + mDisableTip = mResource.getString(PREFIX + "_BUTTON_"+"DISABLEAUTO_TTIP"); + setSize(360, 216); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + setDisplay(); + } + + public void actionPerformed(ActionEvent e) { + if (e.getActionCommand().equals("ok")) { + + Component component = mTable.getEditorComponent(); + if(component!= null) { + int col = mTable.getEditingColumn(); + int row = mTable.getEditingRow(); + if ((col>-1)&&(row>-1)) { + String str = ((JTextComponent)component).getText(); + mTable.setValueAt(str, row, col); + } + } + + String val = getUIDPassword(); + + // check empty user id and password + if (val.equals("")) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, + PREFIX, "EMPTYFIELD", CMSAdminUtil.ERROR_MESSAGE); + return; + } else { + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_RECOVERY_AGENT, val); + nvps.put(Constants.PR_AUTO_RECOVERY_ON, Constants.TRUE); + + try { + mAdmin.modify(DestDef.DEST_KRA_ADMIN, + ScopeDef.SC_AUTO_RECOVERY, Constants.RS_ID_CONFIG, nvps); + } catch (EAdminException ex) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + ex.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + } + } + mEnable.setText(mDisableLabel); + mEnable.setToolTipText(mDisableTip); + mEnable.repaint(); + cleanup(); + this.dispose(); + } else if (e.getActionCommand().equals("cancel")) { + cleanup(); + this.dispose(); + } + + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new DefaultTableCellRenderer()); + } + + //Set the first column's cellrender as label cell + protected void setLabelCellEditor(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new PasswordCellRenderer()); + table.getColumnModel().getColumn(index).setCellEditor( + new DefaultCellEditor(new JPasswordField())); + } + + private String getUIDPassword() { + String result = ""; + for (int i=0; i0) { + nvp.put("PASSWORD_CACHE_ADD", value + ";" + password); + } + } + + nvp.put(paramName, value); + } + nvp.put(PolicyRuleDataModel.RULE_NAME, mRuleName); + nvp.put(mImplName_token, mImplName.getText()); + + mData = nvp; + try { + if (mModel != null) { mModel.progressStart(); } + if (mNewInstance == true) { + mAdminConnection.add(mDest, mInstanceScope, mRuleName, nvp); + } + else { + if (mId != null && mId.length() > 0) { + nvp.put(Constants.PR_ID, mId); + } + mAdminConnection.modify(mDest, mInstanceScope, mRuleName, nvp); + } + mIsOK = true; + if (mModel != null) { mModel.progressStop(); } + this.dispose(); + } + catch (EAdminException ex) { + mModel.progressStop(); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + ex.toString(),CMSAdminUtil.ERROR_MESSAGE); + } + } + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + if (evt.getSource().equals(mHelp)) { + String ht = mEPIs.getHelpToken(); + if (ht == null || ht.equals("")) { + CMSAdminUtil.help(mHelpToken); + } + else { + CMSAdminUtil.help(ht); + } + } + } + + + public NameValuePairs getData() { + return mData; + } + + /*========================================================== + * private methods + *==========================================================*/ + private void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + + /* Content panel. This is where we put the name/value pairs, + * and the help text */ + JPanel content = makeContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(content, gbc); + center.add(content); + + + /* Action panel. This is where we put the OK, Cancel, Help buttons */ + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + //create botton action panel + private JPanel makeActionPane() { + + mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, PREFIX, "HELP", null, this); + + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + protected void setDestination(String dest) { + mDest = dest; + } + + protected JPanel makeContentPane() { + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + /* mPluginName and mPluginLabel occupy the same space in the UI, but + * only one of them is visible at a time. showDialog() determines which + * is visible. If this is a new component, mPluginName is visible, and is a + * a text field, so the user can enter the name of the new instance. + * Otherwise, it's just a label, showing the existing name. + */ + // 'Policy Rule ID' here + CMSAdminUtil.resetGBC(gbc); + mRulenameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "RULENAME", null); + mRulenameCaption.addMouseListener(this); + mPluginLabel = new JLabel(); + mPluginLabel.setVisible(false); + mPluginName = new JTextField(); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add(mRulenameCaption, gbc); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + 0,CMSAdminUtil.COMPONENT_SPACE); + mListPanel.add( mPluginName, gbc ); + mListPanel.add( mPluginLabel, gbc ); + + // 'Policy Plugin ID' here + CMSAdminUtil.resetGBC(gbc); + mImplnameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "IMPLNAME", null); + mImplnameCaption.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mImplnameCaption, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mImplName = new JLabel(); + mListPanel.add( mImplName, gbc ); + + /* Panel for list of plugin's parameters */ + mParamPanel = new JPanel(); + + mScrollPane = new JScrollPane(mParamPanel); + mScrollPane.setBorder(CMSAdminUtil.makeEtchedBorder()); + + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + /* Panel in which to put plugin's help text */ + mHelpPanel = new JPanel(); + mHelpPanel.setBorder(CMSAdminUtil.makeEtchedBorder()); + mHelpLabel = new JTextArea(3,0); + mHelpLabel.setLineWrap(true); + mHelpLabel.setWrapStyleWord(true); + mHelpLabel.setBackground(mHelpPanel.getBackground()); + mHelpLabel.setEditable(false); + GridBagLayout gb2 = new GridBagLayout(); + GridBagConstraints gbc2 = new GridBagConstraints(); + + CMSAdminUtil.resetGBC(gbc2); + gbc2.fill = gbc.BOTH; + gbc2.anchor = gbc.WEST; + gbc2.gridwidth = gbc.REMAINDER; + gbc2.weightx = 1.0; + gbc2.weighty = 1.0; + gb2.setConstraints(mHelpLabel, gbc2); + mHelpPanel.setLayout(gb2); + mHelpPanel.add(mHelpLabel); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.SOUTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gb.setConstraints(mHelpPanel, gbc); + mListPanel.add(mHelpPanel); + + return mListPanel; + } + +} + + +class ExtendedPluginInfoSet extends Hashtable { + + /** + * Add a value for this config parameter. + * the format of 'syntax' is specified in + * @see com.netscape.certsrv.base.IExtendedPluginInfo + */ + public void add(String param, String syntax, boolean oldstyle) { + + try { + String type; + ExtendedPluginInfo epi; + boolean required=false; + + if (!oldstyle) { + String rest, helptext; + int semicolon = syntax.indexOf(';'); + + type = syntax.substring(0,semicolon); + rest = syntax.substring(semicolon+1); + + for (int i=0;i<1;i++) { + int length = type.length(); + if (type.endsWith(",required")) { + type=type.substring(0,length-0); + required=true; + } + } + helptext = rest; // ADDED to fix bug #383969 +/* + semicolon = rest.indexOf(';'); + if (semicolon == -1) { // no more semicolons + helptext = rest; + } + else { + helptext = rest.substring(0,semicolon); + rest = rest.substring(semicolon+1); + } +*/ + epi = new ExtendedPluginInfo(type,helptext); + epi.setRequired(required); + } + else { + epi = new ExtendedPluginInfo("string",""); + } + + put(param,epi); + } catch (Exception e) { + Debug.println("Badly formatted ExtendedpluginInfo for string: '"+ + syntax+"'"); + } + } + + private String mHelpSummary = ""; + private String mHelpToken = ""; + + public String getHelpSummary() { + return mHelpSummary; + } + + public void setHelpSummary(String summary) { + mHelpSummary = summary; + } + + public String getHelpToken() { + return mHelpToken; + } + + public void setHelpToken(String token) { + mHelpToken = token; + } + + public ExtendedPluginInfo get(String param) { + return (ExtendedPluginInfo)super.get(param); + } + +} + + + +interface ExtendedPluginInfoComponent +{ + public abstract ExtendedPluginInfo getExtendedPluginInfo(); + + public abstract String getValueAsString(); +} + + +class ExtendedPluginInfoCheckBox extends JCheckBox +implements ExtendedPluginInfoComponent +{ + private ExtendedPluginInfo mEpi; + + public ExtendedPluginInfoCheckBox(ExtendedPluginInfo epi, boolean b) + { + super("",b); + mEpi = epi; + } + + public ExtendedPluginInfo getExtendedPluginInfo() { + return mEpi; + } + + public String getValueAsString() { + if (isSelected()) { + return "true"; + } + else { + return "false"; + } + } + +} + +class ExtendedPluginInfoComboBox extends JComboBox +implements ExtendedPluginInfoComponent +{ + private ExtendedPluginInfo mEpi; + + public ExtendedPluginInfoComboBox(ExtendedPluginInfo epi, Vector v) + { + super(v); + mEpi = epi; + } + + public ExtendedPluginInfo getExtendedPluginInfo() { + return mEpi; + } + + public String getValueAsString() { + return (String)getSelectedItem(); + } +} + +class ExtendedPluginInfoTextField extends JTextField +implements ExtendedPluginInfoComponent +{ + private ExtendedPluginInfo mEpi; + + public ExtendedPluginInfoTextField(ExtendedPluginInfo epi, String s) + { + super(s); + mEpi = epi; + } + + public ExtendedPluginInfo getExtendedPluginInfo() { + return mEpi; + } + + public String getValueAsString() { + return getText(); + } +} + +class ExtendedPluginInfoPasswordField extends JPasswordField +implements ExtendedPluginInfoComponent +{ + private ExtendedPluginInfo mEpi; + + public ExtendedPluginInfoPasswordField(ExtendedPluginInfo epi, String s) + { + super(s); + mEpi = epi; + } + + public ExtendedPluginInfo getExtendedPluginInfo() { + return mEpi; + } + + public String getValueAsString() { + return getText(); + } +} + +class ExtendedPluginInfoNumberField extends JTextField +implements ExtendedPluginInfoComponent +{ + private ExtendedPluginInfo mEpi; + + public ExtendedPluginInfoNumberField(ExtendedPluginInfo epi, String s) + { + super(s); + mEpi = epi; + } + + public ExtendedPluginInfo getExtendedPluginInfo() { + return mEpi; + } + + public String getValueAsString() { + return getText(); + } + + protected Document createDefaultModel() { + return new NumberDocument(); + } + + static class NumberDocument extends PlainDocument { + + public void insertString(int offs, String str, AttributeSet a) + throws BadLocationException { + + if (str == null) { + return; + } + + char[] chars = str.toCharArray(); + int j=0; + + for (int i = 0; i < chars.length; i++) { + if ( (chars[i]<'0' || chars[i]>'9') + && (chars[i] != '.') + && (chars[i] != '-') ) { + } + else { + chars[j++] = chars[i]; + } + } + char newchars[] = new char[j]; + if (j != 0) { + System.arraycopy(chars,0,newchars,0,j); + } + super.insertString(offs, new String(newchars), a); + } + } +} + + + +/** + * This class records information about the type of a parameter + * and what possible value it can take + */ + +class ExtendedPluginInfo { + + public static final int TYPE_STRING = 0; + public static final int TYPE_BOOLEAN = 1; + public static final int TYPE_NUMBER = 2; + public static final int TYPE_CHOICE = 3; + public static final int TYPE_PASSWORD = 4; + + private int mType; + private boolean mRequired; + + private String mValue = null; + + private Vector mChoices = null; + + private String mHelpText = null; + + + ExtendedPluginInfo(String type, String helptext) + { + mHelpText = helptext; + + if (type.equals("string")) { + mType = TYPE_STRING; + } + else if (type.equals("boolean")) { + mType = TYPE_BOOLEAN; + } + else if (type.equals("number")) { + mType = TYPE_NUMBER; + } + else if (type.equals("integer")) { + mType = TYPE_NUMBER; + } + else if (type.equals("password")) { + mType = TYPE_PASSWORD; + } + else if (type.startsWith("choice")) { + mType = TYPE_CHOICE; + String choices = type.substring( + type.indexOf('(')+1, + type.indexOf(')') + ); + StringTokenizer tokenizer = new StringTokenizer(choices,",",false); + mChoices = new Vector(); + String prefix = null; + while (tokenizer.hasMoreElements()) { + String c = (String)tokenizer.nextElement(); + int i = c.indexOf("\\"); + if ( i != -1 ) { + if (prefix == null) + prefix = c.substring(0,i); + else + prefix = prefix + "," + c.substring(0,i); + } else { + if (prefix != null) { + c = prefix + "," + c; + prefix = null; + } + mChoices.addElement(c); + } + } + } + else { + mType = TYPE_STRING; // unknown type - default to string type + } + } + + public Vector getChoices() { + return mChoices; + } + + public String getHelpText() { + return mHelpText; + } + + public String getValue() { + return mValue; + } + + public void setValue(String val) { + mValue = val; + } + + public int getType() { + return mType; + } + + public void setRequired(boolean b) { + mRequired = b; + } + + public boolean isRequired() { + return mRequired; + } + + private JComponent component = null; + + public JComponent getComponent() { + return component; + } + + public String getComponentStateAsString() { + if (component == null) + return null; + return ((ExtendedPluginInfoComponent)component).getValueAsString(); + } + + public JComponent makeComponent(ActionListener al) + { + switch (getType()) { + case ExtendedPluginInfo.TYPE_BOOLEAN: + boolean b; + if (getValue().equals("true")) { b=true; } + else { b = false; } + component = new ExtendedPluginInfoCheckBox(this,b); + ((ExtendedPluginInfoCheckBox)component).addActionListener(al); + break; + + case ExtendedPluginInfo.TYPE_STRING: + component = new ExtendedPluginInfoTextField(this,getValue()); + ((ExtendedPluginInfoTextField)component).addActionListener(al); + break; + + case ExtendedPluginInfo.TYPE_NUMBER: + component = new ExtendedPluginInfoNumberField(this,getValue()); + ((ExtendedPluginInfoNumberField)component).addActionListener(al); + break; + + case ExtendedPluginInfo.TYPE_PASSWORD: + component = new ExtendedPluginInfoPasswordField(this,""); + ((ExtendedPluginInfoPasswordField)component).addActionListener(al); + break; + + case ExtendedPluginInfo.TYPE_CHOICE: + JComboBox cb = new ExtendedPluginInfoComboBox(this,getChoices()); + cb.setSelectedItem(getValue()); + ((ExtendedPluginInfoComboBox)cb).addActionListener(al); + component = cb; + break; + + default: + return null; + } + return component; + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigPanel.java new file mode 100644 index 000000000..89dce60c7 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigPanel.java @@ -0,0 +1,180 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.border.*; +import javax.swing.text.*; +import com.netscape.management.client.util.*; +import com.netscape.management.nmclf.*; +import java.util.*; +import java.awt.*; +import java.awt.event.*; + +/** + * Netscape Certificate Server 4.0 Default Base Panel + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public abstract class CMSBaseConfigPanel extends CMSBasePanel { + + /*========================================================== + * variables + *==========================================================*/ + + private String mTitle; // panel title actually shows + protected boolean mDirty = false; // panel dirty flag + protected boolean mInit = false; // true if this panel is initialized + protected JPanel mCenterPanel; // display panel + protected String mHelpToken; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSBaseConfigPanel(String panelName) { + super(panelName); + //mPanelName = panelName; + setLayout(new BorderLayout()); + mCenterPanel = new JPanel(); + try { + String title = mResource.getString(mPanelName+"_TITLE"); + mTitle = title; + } catch (MissingResourceException e) { + mTitle = "Missing Title"; + } + } + + public CMSBaseConfigPanel() { + super(""); + mTitle = "Missing Title"; + } + + /*========================================================== + * abstract methods + *==========================================================*/ + + //Actual Instanciation of the panels + public abstract void init(); + + //Implementation for saving panel information + public abstract boolean applyCallback(); + + //Implementation for reset values + public abstract boolean resetCallback(); + + + /*========================================================== + * public methods + *==========================================================*/ + + //Implementation for calling help + public void helpCallback() { + CMSAdminUtil.help(mHelpToken); + } + + /** + * Returns the title of the tab + * @return string representation of the title + */ + public String getTitle() { + return mTitle; + } + + /** + * set the title of the tab + */ + public void setTitle(String title) { + mTitle = title; + } + + /** + * see if the contents of the panel have been changed but not applied + * @return true if dirty; otherwise,false. + */ + public boolean isDirty() { + return mDirty; + } + + /** + * Called by the Tab parent to initialize the panel + */ + public void initialize() { + if (!mInit) { + //Debug.println("CMSBasePanel: initialize()"+mPanelName); + mCenterPanel.setBorder(new EmptyBorder(DEFAULT_CENTER_INSETS)); + init(); + mInit = true; + } + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (mInit) + this.setDirtyFlag(); + } + + //== DocumentListener == + public void insertUpdate(DocumentEvent e) { + if (mInit) + this.setDirtyFlag(); + } + public void removeUpdate(DocumentEvent e){ + if (mInit) + this.setDirtyFlag(); + } + public void changedUpdate(DocumentEvent e){ + if (mInit) + this.setDirtyFlag(); + } + + //== ItemListener == + public void itemStateChanged(ItemEvent e){ + if (mInit) + this.setDirtyFlag(); + } + + //== ListSelectionListener == + public void valueChanged(ListSelectionEvent e){ + if (mInit) + this.setDirtyFlag(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + + //=== Dirty Flag ========================= + + //set dirty flag + protected void setDirtyFlag() { + mDirty = true; + } + + //clear dirty flag + protected void clearDirtyFlag() { + mDirty = false; + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLDAPPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLDAPPanel.java new file mode 100644 index 000000000..dbba4a763 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLDAPPanel.java @@ -0,0 +1,692 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.util.*; +import java.awt.event.*; + +/** + * LDAP server setting tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public abstract class CMSBaseLDAPPanel extends CMSBaseTab implements ItemListener { + private static final String SERVER_CERT_NICKNAME = "Server-Cert"; + private JTextField mHostNameText; + private JTextField mPortText; + //private JTextField mBaseDNText; + private JTextField mBindAsText; + private JPasswordField mPasswordText; + private JCheckBox mSecurePort; + private JCheckBox mEnable; + private JCheckBox mEnablePublishing; + private JCheckBox mEnableQueue; + private Color mActiveColor; + private JLabel mHostLabel, mPortLabel, mBindAsLabel, mVersionLabel; + protected JLabel mPasswordLabel; + protected AdminConnection mAdmin; + protected CMSBaseResourceModel mModel; + private String mServletName; + private CMSTabPanel mParent; + private boolean mPublishing = true; + private boolean mLDAPPublishing = true; + private boolean mPublishingQueue = true; + private String mPublishingQueuePriorityLevel = "0"; + private String mMaxNumberOfPublishingThreads = "3"; + private String mPublishingQueuePageSize = "40"; + private String mPublishingQueueStatus = "200"; + private JLabel mAuthLabel, mCertLabel; + private JComboBox mAuthBox, mCertBox; + private String mPanelName; + private JComboBox mVersionBox; + private final static String[] AUTHTYPE = {Constants.PR_BASIC_AUTH, + Constants.PR_SSL_AUTH}; + + private static final String DELIMITER = ","; + + public CMSBaseLDAPPanel(String panelName, CMSTabPanel parent) { + this(panelName, parent, true); + mPanelName = panelName; + } + + public CMSBaseLDAPPanel(String panelName, CMSTabPanel parent, boolean flag) { + super(panelName, parent); + mServletName = getServletName(panelName); + mModel = parent.getResourceModel(); + mParent = parent; + mPublishing = flag; + mPublishingQueue = flag; + mLDAPPublishing = flag; + } + + public void init() { + mAdmin = mModel.getServerInfo().getAdmin(); + JPanel serverInfo = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mCenterPanel.setLayout(gb); + + mEnablePublishing = makeJCheckBox("ENABLEPUBLISHING"); + mEnablePublishing.setSelected(true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE, + 0, + DIFFERENT_COMPONENT_SPACE); + gb.setConstraints(mEnablePublishing, gbc); + mEnablePublishing.addItemListener(this); + mCenterPanel.add(mEnablePublishing); + + //add the enable queue + mEnableQueue = makeJCheckBox("ENABLEQUEUE"); + mEnableQueue.setSelected(true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE, + 0, + DIFFERENT_COMPONENT_SPACE); + gb.setConstraints(mEnableQueue, gbc); + mEnableQueue.addItemListener(this); + mCenterPanel.add(mEnableQueue); + + //add the enable checkbox + mEnable = makeJCheckBox("ENABLE"); + mEnable.setSelected(true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE, + 0, + DIFFERENT_COMPONENT_SPACE); + gb.setConstraints(mEnable, gbc); + mEnable.addItemListener(this); + if (mLDAPPublishing) + mCenterPanel.add(mEnable); + + //add the destination panel + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(serverInfo, gbc); + mCenterPanel.add(serverInfo); + + GridBagLayout gb1 = new GridBagLayout(); + serverInfo.setLayout(gb1); + if (mLDAPPublishing) + serverInfo.setBorder(makeTitledBorder("DESTINATION")); + + // add host name label and text field + CMSAdminUtil.resetGBC(gbc); + mHostLabel = makeJLabel("HOST"); + mHostNameText = makeJTextField(30); + mActiveColor = mHostNameText.getBackground(); + CMSAdminUtil.addEntryField(serverInfo, mHostLabel, mHostNameText, gbc); + + // add port number label + CMSAdminUtil.resetGBC(gbc); + mPortLabel = makeJLabel("PORT"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0); + gb1.setConstraints(mPortLabel, gbc); + serverInfo.add(mPortLabel); + + // add port number text field + CMSAdminUtil.resetGBC(gbc); + mPortText = makeJTextField(10); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 0.0; + gb1.setConstraints(mPortText, gbc); + serverInfo.add(mPortText); + + // add check box + CMSAdminUtil.resetGBC(gbc); + mSecurePort = makeJCheckBox("SECUREPORT"); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE - COMPONENT_SPACE,0,COMPONENT_SPACE); + gb1.setConstraints(mSecurePort, gbc); + serverInfo.add(mSecurePort); + + /* add base DN label and text field + CMSAdminUtil.resetGBC(gbc); + JLabel baseDNLabel = makeJLabel("BASEDN"); + mBaseDNText = makeJTextField(30); + CMSAdminUtil.addEntryField(serverInfo, baseDNLabel, mBaseDNText, gbc); + */ + + // add bind as label and text field + CMSAdminUtil.resetGBC(gbc); + mBindAsLabel = makeJLabel("BINDAS"); + mBindAsText = makeJTextField(30); + CMSAdminUtil.addEntryField(serverInfo, mBindAsLabel, mBindAsText, gbc); + + // add password label and text field + CMSAdminUtil.resetGBC(gbc); + mPasswordLabel = makeJLabel("PWD"); + mPasswordText = makeJPasswordField(20); + CMSAdminUtil.addEntryField(serverInfo, mPasswordLabel, mPasswordText, gbc); + + // add LDAP version + CMSAdminUtil.resetGBC(gbc); + mVersionLabel = makeJLabel("VERSION"); + mVersionBox = makeJComboBox("VERSION"); + JLabel dummy = new JLabel(" "); + CMSAdminUtil.addEntryField(serverInfo, mVersionLabel, mVersionBox, + dummy, gbc); + + // add cert nickname + CMSAdminUtil.resetGBC(gbc); + mCertLabel = makeJLabel("CERTLIST"); + mCertBox = makeJComboBox("CERTLIST"); + JLabel dummy3 = new JLabel(" "); + CMSAdminUtil.addEntryField(serverInfo, mCertLabel, mCertBox, dummy3, gbc); + + // add combo box for authentication type + CMSAdminUtil.resetGBC(gbc); + mAuthLabel = makeJLabel("AUTHTYPE"); + mAuthBox = makeJComboBox("AUTHTYPE"); + mAuthBox.addItemListener(this); + JLabel dummy4 = new JLabel(" "); + CMSAdminUtil.addEntryField(serverInfo, mAuthLabel, mAuthBox, dummy4, gbc); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + if (mPublishing) + nvps.put(Constants.PR_PUBLISHING_ENABLE, ""); + if (mLDAPPublishing) + nvps.put(Constants.PR_ENABLE, ""); + nvps.put(Constants.PR_HOST_NAME, ""); + nvps.put(Constants.PR_LDAP_PORT, ""); + nvps.put(Constants.PR_SECURE_PORT_ENABLED, ""); + //nvps.add(Constants.PR_BASE_DN, ""); + nvps.put(Constants.PR_BIND_DN, ""); + nvps.put(Constants.PR_LDAP_VERSION, ""); + nvps.put(Constants.PR_AUTH_TYPE, ""); + nvps.put(Constants.PR_CERT_NAMES, ""); + nvps.put(Constants.PR_LDAP_CLIENT_CERT, ""); + + nvps.put(Constants.PR_PUBLISHING_QUEUE_ENABLE, ""); + nvps.put(Constants.PR_PUBLISHING_QUEUE_THREADS, ""); + nvps.put(Constants.PR_PUBLISHING_QUEUE_PAGE_SIZE, ""); + nvps.put(Constants.PR_PUBLISHING_QUEUE_PRIORITY, ""); + nvps.put(Constants.PR_PUBLISHING_QUEUE_STATUS, ""); + + try { + NameValuePairs val = mAdmin.read(mServletName, + ScopeDef.SC_LDAP, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + protected String getServletName(String panelName) { + if (panelName.equals("LDAPSETTING")) + return DestDef.DEST_SERVER_ADMIN; + else if (panelName.equals("CALDAPSETTING")) + return DestDef.DEST_CA_PUBLISHER_ADMIN; + return DestDef.DEST_RA_PUBLISHER_ADMIN; + } + + protected void populate(NameValuePairs nvps) { + String clientCert = ""; + int serverCertIndex = -1; + + String version = ""; + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_HOST_NAME)) { + mHostNameText.setText(value); + } else if (name.equals(Constants.PR_LDAP_PORT)) { + mPortText.setText(value); + } else if (name.equals(Constants.PR_SECURE_PORT_ENABLED)) { + if (value.equals(Constants.TRUE)) + mSecurePort.setSelected(true); + else + mSecurePort.setSelected(false); + } else if (name.equals(Constants.PR_BIND_DN)) { + mBindAsText.setText(value); + } else if (name.equals(Constants.PR_PUBLISHING_ENABLE)) { + if (value.equals(Constants.TRUE)) + mEnablePublishing.setSelected(true); + else + mEnablePublishing.setSelected(false); + } else if (name.equals(Constants.PR_PUBLISHING_QUEUE_ENABLE)) { + if (value.equals(Constants.TRUE)) { + mEnableQueue.setSelected(true); + mPublishingQueue = true; + } else { + mEnableQueue.setSelected(false); + mPublishingQueue = false; + } + } else if (name.equals(Constants.PR_PUBLISHING_QUEUE_THREADS)) { + mMaxNumberOfPublishingThreads = value; + } else if (name.equals(Constants.PR_PUBLISHING_QUEUE_PAGE_SIZE)) { + mPublishingQueuePageSize = value; + } else if (name.equals(Constants.PR_PUBLISHING_QUEUE_PRIORITY)) { + mPublishingQueuePriorityLevel = value; + } else if (name.equals(Constants.PR_PUBLISHING_QUEUE_STATUS)) { + mPublishingQueueStatus = value; + } else if (name.equals(Constants.PR_ENABLE)) { + if (value.equals(Constants.TRUE)) + mEnable.setSelected(true); + else + mEnable.setSelected(false); + } else if (name.equals(Constants.PR_AUTH_TYPE)) { + int index = getIndex(value, AUTHTYPE); + if (index >= 0) + mAuthBox.setSelectedIndex(index); + } else if (name.equals(Constants.PR_CERT_NAMES)) { + mCertBox.removeAllItems(); + String certNames = value; + StringTokenizer tokenizer = new StringTokenizer(certNames, + DELIMITER); + for (int index=0; tokenizer.hasMoreTokens(); index++) { + String str = (String)tokenizer.nextToken(); + if (str.startsWith(SERVER_CERT_NICKNAME)) + serverCertIndex = index; + mCertBox.addItem(str); + } + } else if (name.equals(Constants.PR_LDAP_CLIENT_CERT)) { + clientCert = value; + } else if (name.equals(Constants.PR_LDAP_VERSION)) { + version = value; + } + } + + if (version.equals("")) + mVersionBox.setSelectedIndex(1); + else + mVersionBox.setSelectedItem(version); + + if (clientCert.equals("")) { + if (serverCertIndex == -1) + mCertBox.setSelectedIndex(0); + else + mCertBox.setSelectedIndex(serverCertIndex); + } else + mCertBox.setSelectedItem(clientCert.trim()); + + if (mEnablePublishing.isSelected()) + { + enableFieldsAndLDAP(true, mActiveColor); + } + else + { + enableFieldsAndLDAP(false, getBackground()); + } + + if (mEnable.isSelected()) + enableFields(true, mActiveColor); + else + enableFields(false, getBackground()); + + mPasswordText.setText(""); + } + + private int getIndex(String val, String[] array) { + for (int i=0; i= YEAR) + return 4; + else if (val >= MONTH) + return 3; + else if (val >= WEEK) + return 2; + else if (val >= DAY) + return 1; + return 0; + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + if (e.getSource().equals(activateLog) || + e.getSource().equals(mActivateNTLog)) { + setValues(); + } + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSBaseTab.java b/base/console/src/com/netscape/admin/certsrv/config/CMSBaseTab.java new file mode 100644 index 000000000..c3c707f68 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSBaseTab.java @@ -0,0 +1,95 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.border.*; +import javax.swing.text.*; +import java.util.*; +import java.awt.*; +import java.awt.event.*; +import com.netscape.management.client.util.*; + +/** + * Netscape Certificate Server 4.0 Deafult Base TAB + * This class is the base class for all the TAB panels. + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public abstract class CMSBaseTab extends CMSBaseConfigPanel + implements IRefreshTab { + + /*========================================================== + * variables + *==========================================================*/ + protected CMSTabPanel mParent; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSBaseTab(String panelName, CMSTabPanel parent) { + super(panelName); + mParent = parent; + add("Center", mCenterPanel); + } + + /*========================================================== + * protected methods + *==========================================================*/ + + //set dirty flag + protected void setDirtyFlag() { + super.setDirtyFlag(); + mParent.setDirtyTab(this); + } + + //clear dirty flag + protected void clearDirtyFlag() { + super.clearDirtyFlag(); + mParent.clearDirtyTab(this); + } + + //=== OVERWRITE DIALOG MESSAGE ===================== + + protected void showMessageDialog(String keyword, int messageType ) { + CMSAdminUtil.showMessageDialog(mParent.mModel.getFrame(), mResource, mPanelName, keyword, messageType); + } + + protected void showMessageDialog(String keyword) { + showMessageDialog(keyword, ERROR_MESSAGE); + } + + protected int showConfirmDialog(String keyword, int messageType ) { + return CMSAdminUtil.showConfirmDialog(mParent.mModel.getFrame(), mResource, mPanelName, keyword, messageType); + } + + protected int showConfirmDialog(String keyword) { + return showConfirmDialog(keyword, WARNING_MESSAGE); + } + + protected void showErrorDialog(String message) { + CMSAdminUtil.showErrorDialog(mParent.mModel.getFrame(), mResource, message, ERROR_MESSAGE); + } + + public void refresh() { + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSBlankPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSBlankPanel.java new file mode 100644 index 000000000..b3f357564 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSBlankPanel.java @@ -0,0 +1,82 @@ +// --- 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.config; + +import com.netscape.management.client.*; +import com.netscape.admin.certsrv.*; + +/** + * Blank Panel to be displayed at the right hand side + * we should place some ads here... =-) + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CMSBlankPanel extends CMSBaseTab { + + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "CMSBLANKPANEL"; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSBlankPanel(ResourceModel model) { + super(PANEL_NAME, null); + } + + public CMSBlankPanel(ResourceModel model, CMSTabPanel parent, String name) { + super(PANEL_NAME, parent); + setTitle(name); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * Actual Instanciation of the UI components + */ + public void init() { + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + return true; + } + + /** + * Implementation for calling help + */ + public void helpCallback() { + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSCACertSettingPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSCACertSettingPanel.java new file mode 100644 index 000000000..76aa59511 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSCACertSettingPanel.java @@ -0,0 +1,171 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; + +import java.awt.event.*; + +/** + * CA Certificate Setting + * + * @author Christine Ho + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class CMSCACertSettingPanel extends CMSCertSettingPanel { + + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "CACERTSETTING"; + private PanelMapperConfigDialog mDialog = null; + private CMSTabPanel mParent; + private static final String HELPINDEX = + "configuration-ca-ldappublish-cacert-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSCACertSettingPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mParent = parent; + mHelpToken = HELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * Actual UI construction + */ + public void init() { + super.init(); + + //XXX B1 - disable the publisher configuration + mPublisher.setEnabled(false); + //XXX B1 - disable the publisher configuration + + refresh(); + } + + public void refresh() { + _model.progressStart(); + NameValuePairs nvp = new NameValuePairs(); + nvp.put(Constants.PR_MAPPER, ""); + nvp.put(Constants.PR_PUBLISHER, ""); + + try { + NameValuePairs val = _admin.read(DestDef.DEST_CA_ADMIN, + ScopeDef.SC_CACERT, Constants.RS_ID_CONFIG, nvp); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + _model.progressStop(); + } + _model.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mMapper)) { + Debug.println("Edit Mapper Config"); + mDialog = new PanelMapperConfigDialog(_model.getFrame(), _admin); + mDialog.showDialog(_mapper.getText(), + DestDef.DEST_CA_ADMIN, ScopeDef.SC_CACERT); + if (!mDialog.isOK()) + return; + refresh(); + } else if (e.getSource().equals(mPublisher)) { + //Debug.println("Edit Publisher Config"); + } + } + + /*========================================================== + * private methods + *==========================================================*/ + + /* get config parameters associated with each mapper + private NameValueParis getConfig() throws EAdminException { + + NameValuePairs response = _admin.read(DestDef.DEST_CA_ADMIN, + ScopeDef.SC_CAMAPPER, _mapper.getText()], + new NameValuePairs()); + return response; + } + */ + + /*send configuration to server + private void sendConfig(NameValuePairs response) { + + response.add(Constants.PR_MAPPER, MAPPER[_mapper.getSelectedIndex()]); + _model.progressStart(); + try { + _admin.modify(DestDef.DEST_CA_ADMIN, + ScopeDef.SC_CACERT, Constants.RS_ID_CONFIG, response); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + _model.progressStop(); + return false; + } + _model.progressStop(); + + } + */ + + private void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_MAPPER)) { + _mapper.setText(value); + } else if (name.equals(Constants.PR_PUBLISHER)) { + _publisher.setText(value); + } + } + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSCAConnectorPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSCAConnectorPanel.java new file mode 100644 index 000000000..1af02a881 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSCAConnectorPanel.java @@ -0,0 +1,237 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * CA Connector Panel + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSCAConnectorPanel extends CMSBaseTab + implements MouseListener +{ + + /*========================================================== + * variables + *==========================================================*/ + + private final static String PANEL_NAME = "CACONNECTOR"; + private final static String HELPINDEX = "configuration-ca-connector-help"; + + private AdminConnection mAdmin; + private CMSBaseResourceModel mModel; + private CMSTabPanel mParent; + private JList mList; + private DefaultListModel mDataModel; + private JScrollPane mScrollPane; + private JButton mEdit; + protected boolean mInit = false; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSCAConnectorPanel(CMSBaseResourceModel model, CMSTabPanel parent) { + super(PANEL_NAME, parent); + mModel = model; + mParent = parent; + mDataModel = new DefaultListModel(); + mHelpToken = HELPINDEX; + + // hardcoded just for beta 1 + mDataModel.addElement("Data Recovery Manager Connector"); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * initialize the UI components + */ + public void init() { +// setLayout(new BorderLayout()); + + // JPanel mainPanel = new JPanel(); + JPanel mainPanel = mCenterPanel; + + + Debug.println("ConnectorPanel: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + + GridBagLayout gb1 = new GridBagLayout(); + mainPanel.setLayout(gb1); + + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + JLabel listLabel = makeJLabel("CONNLIST"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE, + 0,DIFFERENT_COMPONENT_SPACE); + gb1.setConstraints(listLabel, gbc); + mainPanel.add(listLabel); + + CMSAdminUtil.resetGBC(gbc); + mList = makeJList(mDataModel, 3); + mScrollPane = new JScrollPane(mList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 0.5; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE, + 0,DIFFERENT_COMPONENT_SPACE); + gb1.setConstraints(mScrollPane, gbc); + mainPanel.add(mScrollPane); + + CMSAdminUtil.resetGBC(gbc); + mEdit = makeJButton("EDIT"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.weightx = 0.5; + gbc.insets = new Insets(COMPONENT_SPACE,0, + 0,DIFFERENT_COMPONENT_SPACE); + gb1.setConstraints(mEdit, gbc); + mainPanel.add(mEdit); + + // add("Center",mainPanel); + refresh(); + } + + /** + * refresh the panel data + */ + public void refresh() { + repaint(1); + } + + /*========================================================== + * Event Handler + *==========================================================*/ + + //======= ActionLister ============================ + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mEdit)) { + JFrame frame = mModel.getFrame(); + String name = (String)mList.getSelectedValue(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_ID, ""); + nvps.put(Constants.PR_HOST, ""); + nvps.put(Constants.PR_PORT, ""); + // Inserted by beomsuk + nvps.put(Constants.PR_TIMEOUT, ""); + // Insert end + nvps.put(Constants.PR_URI, ""); + nvps.put(Constants.PR_LOCAL, ""); + nvps.put(Constants.PR_ENABLE, ""); + + try { + NameValuePairs values = mAdmin.read(DestDef.DEST_CA_ADMIN, + ScopeDef.SC_CONNECTOR, name, nvps); + NameValuePairs subsystems = mAdmin.search(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SUBSYSTEM, new NameValuePairs()); + + boolean colocated = false; + if (name.equals("Data Recovery Manager Connector")) { + String val = values.get("id"); + if (val != null && val.equals("kra")) + colocated = true; + } + + ConnectorEditor editor = new ConnectorEditor(mAdmin, + mModel.getFrame(), name, DestDef.DEST_CA_ADMIN, + mModel.getServerInfo().getServerId(), colocated); + editor.showDialog(values); + } catch (EAdminException ex) { + showErrorDialog(ex.toString()); + } +/* + NameValuePairs values = new NameValuePairs(); + ConnectorEditor editor = new ConnectorEditor(mAdmin, + mModel.getFrame(), name); + editor.showDialog(values); +*/ + } + } + + //=== MOUSELISTENER ======================== + public void mouseClicked(MouseEvent e) { + if (e.getSource() == mList) { + if (mList.getSelectedIndex() < 0) + mEdit.setEnabled(false); + else + mEdit.setEnabled(true); + } + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) {} + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) {} + + //======== CMSBaseConfigPanel ============== + public boolean applyCallback() { + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } + + /*========================================================== + * private methods + *==========================================================*/ + + //update the UI component using the data retrieved + private void populate(NameValuePairs nvps) { +/* + Enumeration names = nvps.getNames(); + mDataModel.removeAllElements(); + while (names.hasMoreElements()) + mDataModel.addElement(names.nextElement()); + + if (mDataModel.size() > 0) { + mList.setSelectedIndex(0); + mEdit.setEnabled(true); + } else + mEdit.setEnabled(false); +*/ + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSCAGeneralPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSCAGeneralPanel.java new file mode 100644 index 000000000..6f809316a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSCAGeneralPanel.java @@ -0,0 +1,424 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import java.math.*; + +/** + * RA General Setting + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSCAGeneralPanel extends CMSBaseTab implements ItemListener { + + private static String PANEL_NAME = "CAGENERAL"; + private static CMSBaseResourceModel mModel; + protected AdminConnection mAdmin; + private JCheckBox mRAEnable; + private JCheckBox mEEEnable; + private JCheckBox mOCSPEnable; + private CMSTabPanel mParent; + private JComboBox mGroups; + private JComboBox mAlgorithms; + private JTextField mSerialNumber; + private JTextField mMaxSerialNumber; + private JCheckBox mValidity; + private Vector mGroupData; + private static final String HELPINDEX = + "configuration-ca-general-help"; + + public CMSCAGeneralPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mModel = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + } + + public void init() { + Debug.println("CMSCAGeneral: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + + JPanel adminPanel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + adminPanel.setLayout(gb1); + adminPanel.setBorder(makeTitledBorder("INTERACTION")); + + JPanel signingPanel = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + signingPanel.setLayout(gb2); + signingPanel.setBorder(makeTitledBorder("SIGNING")); + + JPanel serialPanel = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + serialPanel.setLayout(gb3); + serialPanel.setBorder(makeTitledBorder("SERIAL")); + + JPanel validityPanel = new JPanel(); + GridBagLayout gb4 = new GridBagLayout(); + validityPanel.setLayout(gb4); + validityPanel.setBorder(makeTitledBorder("VALIDITY")); + + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + //gbc.weighty = 1.0; + gb.setConstraints(adminPanel, gbc); + // mCenterPanel.add(adminPanel); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(validityPanel, gbc); + mCenterPanel.add(validityPanel); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(serialPanel, gbc); + mCenterPanel.add(serialPanel); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(signingPanel, gbc); + mCenterPanel.add(signingPanel); + + CMSAdminUtil.resetGBC(gbc); + mEEEnable = makeJCheckBox("EE"); + gbc.anchor = gbc.NORTHWEST; + // gbc.gridwidth = gbc.REMAINDER; + // gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb1.setConstraints(mEEEnable, gbc); + adminPanel.add(mEEEnable); + + CMSAdminUtil.resetGBC(gbc); + mOCSPEnable = makeJCheckBox("OCSP"); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb1.setConstraints(mOCSPEnable, gbc); + adminPanel.add(mOCSPEnable); + + // add validity block + CMSAdminUtil.resetGBC(gbc); + mValidity = makeJCheckBox("VALIDITY"); + gbc.anchor = gbc.CENTER; + //gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + //gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb4.setConstraints(mValidity, gbc); + validityPanel.add(mValidity); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy4 = new JLabel(" "); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb4.setConstraints(dummy4, gbc); + validityPanel.add(dummy4); + + CMSAdminUtil.resetGBC(gbc); + JLabel signingLabel = makeJLabel("ALGORITHM"); + gbc.anchor = gbc.CENTER; + gb2.setConstraints(signingLabel, gbc); + gbc.weighty = 1.0; + signingPanel.add(signingLabel); + + CMSAdminUtil.resetGBC(gbc); + mAlgorithms = new JComboBox(); + mAlgorithms.addItemListener(this); + //mAlgorithms = makeJComboBox("ALGORITHM"); + gbc.anchor = gbc.NORTHWEST; + //gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + //gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb2.setConstraints(mAlgorithms, gbc); + signingPanel.add(mAlgorithms); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy1 = new JLabel(" "); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb2.setConstraints(dummy1, gbc); + signingPanel.add(dummy1); + + // add serial number block + CMSAdminUtil.resetGBC(gbc); + JLabel serialLabel = makeJLabel("SERIAL"); + gbc.anchor = gbc.CENTER; + gb3.setConstraints(serialLabel, gbc); + gbc.weighty = 1.0; + //gbc.insets = new Insets(COMPONENT_SPACE,0,COMPONENT_SPACE,0); + serialPanel.add(serialLabel); + + CMSAdminUtil.resetGBC(gbc); + mSerialNumber = makeJTextField(17); + mSerialNumber.setEnabled(false); + gbc.anchor = gbc.NORTHWEST; + //gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + //gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb3.setConstraints(mSerialNumber, gbc); + serialPanel.add(mSerialNumber); + + // add end serial number block + CMSAdminUtil.resetGBC(gbc); + JLabel maxSerialLabel = makeJLabel("MAXSERIAL"); + gbc.anchor = gbc.EAST; + //gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.gridx = 0; + gb3.setConstraints(maxSerialLabel, gbc); + //gbc.weighty = 1.0; + serialPanel.add(maxSerialLabel); + + CMSAdminUtil.resetGBC(gbc); + mMaxSerialNumber = makeJTextField(17); + mMaxSerialNumber.setEnabled(false); + gbc.anchor = gbc.NORTHWEST; + gbc.gridy = 1; + //gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + //gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb3.setConstraints(mMaxSerialNumber, gbc); + serialPanel.add(mMaxSerialNumber); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy2 = new JLabel(" "); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb3.setConstraints(dummy2, gbc); + serialPanel.add(dummy2); + + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_EE_ENABLED, ""); + //nvps.add(Constants.PR_RA_ENABLED, ""); + nvps.put(Constants.PR_DEFAULT_ALGORITHM, ""); + nvps.put(Constants.PR_ALL_ALGORITHMS, ""); + nvps.put(Constants.PR_SERIAL, ""); + nvps.put(Constants.PR_MAXSERIAL, ""); + nvps.put(Constants.PR_VALIDITY, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_CA_ADMIN, + ScopeDef.SC_GENERAL, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + } + + protected void populate(NameValuePairs nvps) { + String defaultAlgorithm = ""; + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_EE_ENABLED)) { + mEEEnable.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_OCSP_ENABLED)) { + mOCSPEnable.setSelected(getBoolean(value)); +/* + } else if (name.equals(Constants.PR_RA_ENABLED)) { + mRAEnable.setSelected(getBoolean(nvp.getValue())); +*/ + } else if (name.equals(Constants.PR_VALIDITY)) { + mValidity.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_DEFAULT_ALGORITHM)) { + defaultAlgorithm = value; + } else if (name.equals(Constants.PR_ALL_ALGORITHMS)) { + initAlgorithmBox(value); + } else if (name.equals(Constants.PR_SERIAL)) { + String serial = value; + if (!serial.equals("")) + mSerialNumber.setText(serial); + else + mSerialNumber.setText("All serial numbers are used"); + } else if (name.equals(Constants.PR_MAXSERIAL)) { + String serial = value; + if (!serial.equals("")) + mMaxSerialNumber.setText(serial); + } + } + + mAlgorithms.setSelectedItem(defaultAlgorithm); + } + + private void initAlgorithmBox(String val) { + if (mAlgorithms.getItemCount() >= 0) { + mAlgorithms.removeAllItems(); + } + StringTokenizer tokenizer = new StringTokenizer(val, ":"); + while (tokenizer.hasMoreTokens()) { + mAlgorithms.addItem(tokenizer.nextToken()); + } + } + + private boolean getBoolean(String str) { + if (str.equals(Constants.TRUE)) + return true; + return false; + } + + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + } + + private String hexToDecimal(String hex) + { + //String newHex = hex.substring(2); + BigInteger bi = new BigInteger(hex, 16); + return bi.toString(); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + NameValuePairs nvps = new NameValuePairs(); + + if (mEEEnable.isSelected()) + nvps.put(Constants.PR_EE_ENABLED, Constants.TRUE); + else + nvps.put(Constants.PR_EE_ENABLED, Constants.FALSE); + + if (mOCSPEnable.isSelected()) + nvps.put(Constants.PR_OCSP_ENABLED, Constants.TRUE); + else + nvps.put(Constants.PR_OCSP_ENABLED, Constants.FALSE); + +/* + if (mRAEnable.isSelected()) + nvps.add(Constants.PR_RA_ENABLED, Constants.TRUE); + else + nvps.add(Constants.PR_RA_ENABLED, Constants.FALSE); +*/ + + if (mValidity.isSelected()) + nvps.put(Constants.PR_VALIDITY, Constants.TRUE); + else + nvps.put(Constants.PR_VALIDITY, Constants.FALSE); + + nvps.put(Constants.PR_DEFAULT_ALGORITHM, + (String) mAlgorithms.getSelectedItem()); + + String serial = (String)mSerialNumber.getText().trim(); + try { + //if (serial.startsWith("0x")) { + serial = hexToDecimal(serial); + //} + BigInteger num = new BigInteger(serial); + if (num.compareTo(new BigInteger("0")) < 0) { + showMessageDialog("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } +// nvps.add(Constants.PR_SERIAL, serial); + + String maxserial = + (String)mMaxSerialNumber.getText().trim(); + if (maxserial != null && !maxserial.equals("")) { + try { + //if (serial.startsWith("0x")) { + String maxserialdec = hexToDecimal(maxserial); + //} + BigInteger num = new BigInteger(maxserialdec); + if (num.compareTo(new BigInteger("0")) < 0) { + showMessageDialog("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } +// nvps.add(Constants.PR_MAXSERIAL, maxserial); + } + + mModel.progressStart(); + try { + mAdmin.modify(DestDef.DEST_CA_ADMIN, + ScopeDef.SC_GENERAL, Constants.RS_ID_CONFIG, nvps); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSCALDAPPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSCALDAPPanel.java new file mode 100644 index 000000000..735818834 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSCALDAPPanel.java @@ -0,0 +1,44 @@ +// --- 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.config; + +import com.netscape.management.client.util.*; + +/** + * LDAP server setting tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSCALDAPPanel extends CMSBaseLDAPPanel { + + private static String PANEL_NAME = "CALDAPSETTING"; + private static final String HELPINDEX = + "configuration-ca-ldappublish-destination-help"; + + public CMSCALDAPPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mHelpToken = HELPINDEX; + } + + public void init() { + super.init(); + refresh(); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java new file mode 100644 index 000000000..51da9c58c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java @@ -0,0 +1,371 @@ +// --- 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.config; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * Panel Setting CRL Cache + * + * @author Andrew Wnuk + * @version $Revision$, $Date$ + */ +public class CMSCRLCachePanel extends CMSBaseTab { + + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "CRLCACHE"; + + private JCheckBox mEnableCache; + + private JLabel mCacheFreqLabel; + private JTextField mCacheFreq; + private JLabel mCacheFreqMinLabel; + + private JLabel mEnableCacheRecoveryLabel; + private JCheckBox mEnableCacheRecovery; + + private JLabel mEnableCacheTestingLabel; + private JCheckBox mEnableCacheTesting; + + private Color mActiveColor; + private AdminConnection _admin; + private CMSBaseResourceModel _model; + private CMSTabPanel mParent; + private String mId = null; + private static final String HELPINDEX = + "configuration-ca-ldappublish-crl-help"; + private CMSCRLFormatPanel mCRLFormatPanel = null; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSCRLCachePanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + _model = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + } + + public CMSCRLCachePanel(CMSTabPanel parent, String id) { + super(PANEL_NAME, parent); + _model = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + mId = id; + } + + /*========================================================== + * public methods + *==========================================================*/ + public void init() { + Debug.println("CRLCachePanel: init()"); + _admin = _model.getServerInfo().getAdmin(); + + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mCenterPanel.setLayout(gb); + + + //cache panel + JPanel cachePanel = new JPanel(); + cachePanel.setBorder(makeTitledBorder("CACHE")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(cachePanel, gbc); + mCenterPanel.add(cachePanel); + + GridBagLayout gb3 = new GridBagLayout(); + cachePanel.setLayout(gb3); + + + // enable cache + CMSAdminUtil.resetGBC(gbc); + JLabel enableCacheLabel = makeJLabel("CACHE"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + cachePanel.add(enableCacheLabel, gbc); + + mEnableCache = makeJCheckBox(); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + cachePanel.add(mEnableCache, gbc); + + + // how often to save cache + CMSAdminUtil.resetGBC(gbc); + mCacheFreqLabel = makeJLabel("INTERVAL"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + cachePanel.add(mCacheFreqLabel, gbc); + + mCacheFreq = makeJTextField(5); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0); + cachePanel.add(mCacheFreq, gbc); + mActiveColor = mCacheFreq.getBackground(); + + mCacheFreqMinLabel = makeJLabel("MINUTES"); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + cachePanel.add(mCacheFreqMinLabel, gbc); + + + // enable cache recovery + CMSAdminUtil.resetGBC(gbc); + mEnableCacheRecoveryLabel = makeJLabel("RECOVERY"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + cachePanel.add(mEnableCacheRecoveryLabel, gbc ); + + mEnableCacheRecovery = makeJCheckBox(); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + cachePanel.add(mEnableCacheRecovery, gbc); + + // enable cache testing + CMSAdminUtil.resetGBC(gbc); + mEnableCacheTestingLabel = makeJLabel("TEST"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + cachePanel.add(mEnableCacheTestingLabel, gbc ); + + mEnableCacheTesting = makeJCheckBox(); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + cachePanel.add(mEnableCacheTesting, gbc); + + int nTabs = mParent.mTabbedPane.getTabCount(); + for (int i = 0; i < nTabs; i++) { + Object p = mParent.mTabbedPane.getComponentAt(i); + if (p instanceof CMSCRLFormatPanel) { + mCRLFormatPanel = (CMSCRLFormatPanel)p; + } + } + + refresh(); + } + + public void refresh() { + _model.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_ENABLE_CACHE, ""); + nvps.put(Constants.PR_CACHE_FREQ, ""); + nvps.put(Constants.PR_CACHE_RECOVERY, ""); + nvps.put(Constants.PR_CACHE_TESTING, ""); + + try { + NameValuePairs val = null; + if (mId != null && mId.length() > 0) { + val = _admin.read(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + mId, nvps); + } else { + val = _admin.read(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + Constants.RS_ID_CONFIG, nvps); + } + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + _model.progressStop(); + } + _model.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + enableFields(); + } + + public void populate(NameValuePairs nvps) { + String signingAlg = ""; + for (String name : nvps.keySet()) { + String value = nvps.get(name).trim(); + if (name.equals(Constants.PR_ENABLE_CACHE)) { + mEnableCache.setSelected(getBoolean(value, true)); + } else if (name.equals(Constants.PR_CACHE_FREQ)) { + mCacheFreq.setText(value); + } else if (name.equals(Constants.PR_CACHE_RECOVERY)) { + mEnableCacheRecovery.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_CACHE_TESTING)) { + mEnableCacheTesting.setSelected(getBoolean(value)); + } + } + } + + public boolean getBoolean(String val) { + if (val.equals(Constants.TRUE)) + return true; + return false; + } + + public boolean getBoolean(String val, boolean defaultValue) { + if (val.equals(Constants.TRUE)) + return true; + else if (val.equals(Constants.FALSE)) + return false; + else + return defaultValue; + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + String cacheFreq = ""; + int iCacheFreq = 0; + + NameValuePairs nvps = new NameValuePairs(); + + + if (mEnableCache.isSelected()) + nvps.put(Constants.PR_ENABLE_CACHE, Constants.TRUE); + else + nvps.put(Constants.PR_ENABLE_CACHE, Constants.FALSE); + + cacheFreq = mCacheFreq.getText().trim(); + if (cacheFreq.equals("")) { + showMessageDialog("BLANKFIELD"); + return false; + } + try { + iCacheFreq = Integer.parseInt(cacheFreq); + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + if (iCacheFreq < 0) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + nvps.put(Constants.PR_CACHE_FREQ, cacheFreq); + + + if (mEnableCacheRecovery.isSelected()) + nvps.put(Constants.PR_CACHE_RECOVERY, Constants.TRUE); + else + nvps.put(Constants.PR_CACHE_RECOVERY, Constants.FALSE); + + if (mEnableCacheTesting.isSelected()) + nvps.put(Constants.PR_CACHE_TESTING, Constants.TRUE); + else + nvps.put(Constants.PR_CACHE_TESTING, Constants.FALSE); + + _model.progressStart(); + + try { + if (mId != null && mId.length() > 0) { + _admin.modify(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + mId, nvps); + } else { + _admin.modify(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + Constants.RS_ID_CONFIG, nvps); + } + } catch (EAdminException e) { + showErrorDialog(e.toString()); + _model.progressStop(); + return false; + } + + _model.progressStop(); + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mEnableCache)) { + enableFields(); + } + super.actionPerformed(e); + } + + private void enableFields() { + boolean enable = mEnableCache.isSelected(); + Color color = (enable)? mActiveColor: getBackground(); + mCRLFormatPanel.setCacheEnabled(enable); + + mCacheFreqLabel.setEnabled(enable); + CMSAdminUtil.repaintComp(mCacheFreqLabel); + + CMSAdminUtil.enableJTextField(mCacheFreq, enable, color); + + mCacheFreqMinLabel.setEnabled(enable); + CMSAdminUtil.repaintComp(mCacheFreqMinLabel); + + mEnableCacheRecoveryLabel.setEnabled(enable); + CMSAdminUtil.repaintComp(mEnableCacheRecoveryLabel); + + mEnableCacheRecovery.setEnabled(enable); + CMSAdminUtil.repaintComp(mEnableCacheRecovery); + + mEnableCacheTestingLabel.setEnabled(enable); + CMSAdminUtil.repaintComp(mEnableCacheTestingLabel); + + mEnableCacheTesting.setEnabled(enable); + CMSAdminUtil.repaintComp(mEnableCacheTesting); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSCRLFormatPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSCRLFormatPanel.java new file mode 100644 index 000000000..3257b90a0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSCRLFormatPanel.java @@ -0,0 +1,448 @@ +// --- 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.config; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.util.StringTokenizer; + +/** + * Panel Setting CRL Format + * + * @author Andrew Wnuk + * @version $Revision$, $Date$ + */ +public class CMSCRLFormatPanel extends CMSBaseTab { + + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "CRLFORMAT"; + private JCheckBox mEnableExtensions; + private JCheckBox mEnableExpired; + private JCheckBox mEnableOneExtraTime; + private JCheckBox mCACertsOnly; + private JCheckBox mProfileCertsOnly; + private JTextField mProfiles; + private AdminConnection _admin; + private CMSBaseResourceModel _model; + private JComboBox mAlgorithms; + private Color mActiveColor; + private CMSTabPanel mParent; + private String mId = null; + private static final String HELPINDEX = + "configuration-ca-ldappublish-crl-help"; + private boolean mCacheEnabled; + private boolean mInitialized = false; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSCRLFormatPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + _model = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + } + + public CMSCRLFormatPanel(CMSTabPanel parent, String id) { + super(PANEL_NAME, parent); + _model = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + mId = id; + } + + /*========================================================== + * public methods + *==========================================================*/ + public void init() { + Debug.println("CRLFormatPanel: init()"); + _admin = _model.getServerInfo().getAdmin(); + + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mCenterPanel.setLayout(gb); + + + //format panel + JPanel formatPanel = new JPanel(); + formatPanel.setBorder(makeTitledBorder("FORMAT")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gb.setConstraints(formatPanel, gbc); + mCenterPanel.add(formatPanel); + + GridBagLayout gb1 = new GridBagLayout(); + formatPanel.setLayout(gb1); + + + // algorithm selection + CMSAdminUtil.resetGBC(gbc); + JLabel digestLabel = makeJLabel("MESSAGEDIGEST"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + formatPanel.add(digestLabel, gbc ); + + mAlgorithms = makeJComboBox(); + mAlgorithms.addItemListener(this); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + formatPanel.add(mAlgorithms, gbc); + + + // allow extensions + CMSAdminUtil.resetGBC(gbc); + JLabel allowExtensionsLabel = makeJLabel("EXT"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + formatPanel.add(allowExtensionsLabel, gbc ); + + mEnableExtensions = makeJCheckBox(); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + formatPanel.add(mEnableExtensions, gbc); + + + //contents panel + JPanel contentsPanel = new JPanel(); + contentsPanel.setBorder(makeTitledBorder("CONTENTS")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(contentsPanel, gbc); + mCenterPanel.add(contentsPanel); + + GridBagLayout gb2 = new GridBagLayout(); + contentsPanel.setLayout(gb2); + + + // include expired certs + CMSAdminUtil.resetGBC(gbc); + mEnableExpired = makeJCheckBox("EXPIRED"); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + contentsPanel.add(mEnableExpired, gbc); + + + // include expired certs one extra time + CMSAdminUtil.resetGBC(gbc); + mEnableOneExtraTime = makeJCheckBox("ONEEXTRATIME"); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + contentsPanel.add(mEnableOneExtraTime, gbc); + + + // CA certs only + CMSAdminUtil.resetGBC(gbc); + mCACertsOnly = makeJCheckBox("CACERTSONLY"); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + contentsPanel.add(mCACertsOnly, gbc); + + + // profile certs only + CMSAdminUtil.resetGBC(gbc); + mProfileCertsOnly = makeJCheckBox("PROFILECERTSONLY"); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + contentsPanel.add(mProfileCertsOnly, gbc); + + mProfiles = makeJTextField(20); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,0,0,COMPONENT_SPACE); + contentsPanel.add(mProfiles, gbc); + mActiveColor = mProfiles.getBackground(); + + + refresh(); + mInitialized = true; + } + + public void refresh() { + _model.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_EXTENSIONS, ""); + nvps.put(Constants.PR_SIGNING_ALGORITHM, ""); + nvps.put(Constants.PR_INCLUDE_EXPIREDCERTS, ""); + nvps.put(Constants.PR_INCLUDE_EXPIREDCERTS_ONEEXTRATIME, ""); + nvps.put(Constants.PR_CA_CERTS_ONLY, ""); + nvps.put(Constants.PR_PROFILE_CERTS_ONLY, ""); + nvps.put(Constants.PR_PROFILE_LIST, ""); + nvps.put(Constants.PR_ENABLE_CACHE, ""); + + try { + NameValuePairs val = null; + if (mId != null && mId.length() > 0) { + val = _admin.read(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + mId, nvps); + } else { + val = _admin.read(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + Constants.RS_ID_CONFIG, nvps); + } + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + _model.progressStop(); + } + _model.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + + if (mProfileCertsOnly.isSelected()) { + CMSAdminUtil.enableJTextField(mProfiles, true, mActiveColor); + } else { + CMSAdminUtil.enableJTextField(mProfiles, false, getBackground()); + } + mEnableOneExtraTime.setEnabled(mCacheEnabled && (!mEnableExpired.isSelected())); + CMSAdminUtil.repaintComp(mEnableOneExtraTime); + } + + public void populate(NameValuePairs nvps) { + String signingAlg = ""; + for (String name : nvps.keySet()) { + String value = nvps.get(name).trim(); + if (name.equals(Constants.PR_EXTENSIONS)) { + mEnableExtensions.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_SIGNING_ALGORITHM)) { + signingAlg = value; + } else if (name.equals(Constants.PR_ALL_ALGORITHMS)) { + initAlgorithmBox(value); + } else if (name.equals(Constants.PR_INCLUDE_EXPIREDCERTS)) { + mEnableExpired.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_INCLUDE_EXPIREDCERTS_ONEEXTRATIME)) { + mEnableOneExtraTime.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_CA_CERTS_ONLY)) { + mCACertsOnly.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_PROFILE_CERTS_ONLY)) { + mProfileCertsOnly.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_PROFILE_LIST)) { + mProfiles.setText(value); + } else if (name.equals(Constants.PR_ENABLE_CACHE)) { + mCacheEnabled = (value.equals(Constants.TRUE))? true: false; + } + } + + mAlgorithms.setSelectedItem(signingAlg); + } + + private void initAlgorithmBox(String val) { + if (mAlgorithms.getItemCount() >= 0) { + mAlgorithms.removeAllItems(); + } + StringTokenizer tokenizer = new StringTokenizer(val, ":"); + while (tokenizer.hasMoreTokens()) { + mAlgorithms.addItem(tokenizer.nextToken()); + } + } + + public boolean getBoolean(String val) { + if (val.equals(Constants.TRUE)) + return true; + return false; + } + + private String trimList(String list) { + String trimmed = ""; + + StringTokenizer elements = new StringTokenizer(list, ",", true); + int n = 0; + while (elements.hasMoreTokens()) { + String element = elements.nextToken().trim(); + if (element == null || element.length() == 0) return null; + if (element.equals(",") && n % 2 == 0) return null; + trimmed += element; + n++; + } + if (n % 2 == 0) return null; + + return trimmed; + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + NameValuePairs nvps = new NameValuePairs(); + + if (mEnableExtensions.isSelected()) + nvps.put(Constants.PR_EXTENSIONS, Constants.TRUE); + else + nvps.put(Constants.PR_EXTENSIONS, Constants.FALSE); + + if (mEnableExpired.isSelected()) + nvps.put(Constants.PR_INCLUDE_EXPIREDCERTS, Constants.TRUE); + else + nvps.put(Constants.PR_INCLUDE_EXPIREDCERTS, Constants.FALSE); + + if (mEnableOneExtraTime.isSelected()) + nvps.put(Constants.PR_INCLUDE_EXPIREDCERTS_ONEEXTRATIME, Constants.TRUE); + else + nvps.put(Constants.PR_INCLUDE_EXPIREDCERTS_ONEEXTRATIME, Constants.FALSE); + + if (mCACertsOnly.isSelected()) + nvps.put(Constants.PR_CA_CERTS_ONLY, Constants.TRUE); + else + nvps.put(Constants.PR_CA_CERTS_ONLY, Constants.FALSE); + + if (mProfileCertsOnly.isSelected()) + nvps.put(Constants.PR_PROFILE_CERTS_ONLY, Constants.TRUE); + else + nvps.put(Constants.PR_PROFILE_CERTS_ONLY, Constants.FALSE); + + String profileList = null; + if (mProfileCertsOnly.isSelected()) { + if (mProfiles.getText().trim().equals("")) { + showMessageDialog("BLANKPROFILELIST"); + return false; + } + profileList = trimList(mProfiles.getText()); + if (profileList == null) { + showMessageDialog("PROFILELISTFORMAT"); + return false; + } + } + if (profileList != null) + nvps.put(Constants.PR_PROFILE_LIST, profileList); + else + nvps.put(Constants.PR_PROFILE_LIST, mProfiles.getText().trim()); + + + int index = mAlgorithms.getSelectedIndex(); + + nvps.put(Constants.PR_SIGNING_ALGORITHM, + (String) mAlgorithms.getSelectedItem()); + + _model.progressStart(); + + try { + if (mId != null && mId.length() > 0) { + _admin.modify(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + mId, nvps); + } else { + _admin.modify(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + Constants.RS_ID_CONFIG, nvps); + } + } catch (EAdminException e) { + showErrorDialog(e.toString()); + _model.progressStop(); + return false; + } + + _model.progressStop(); + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mProfileCertsOnly)) { + if (mProfileCertsOnly.isSelected()) { + CMSAdminUtil.enableJTextField(mProfiles, true, mActiveColor); + } else { + CMSAdminUtil.enableJTextField(mProfiles, false, getBackground()); + } + } else if (e.getSource().equals(mEnableExpired)) { + mEnableOneExtraTime.setEnabled(mCacheEnabled && (!mEnableExpired.isSelected())); + CMSAdminUtil.repaintComp(mEnableOneExtraTime); + } + + super.actionPerformed(e); + } + + public void setCacheEnabled (boolean cacheEnabled) { + if (mCacheEnabled != cacheEnabled) { + mCacheEnabled = cacheEnabled; + if (mInitialized) { + mEnableOneExtraTime.setEnabled(mCacheEnabled && (!mEnableExpired.isSelected())); + CMSAdminUtil.repaintComp(mEnableOneExtraTime); + } + } + } + + /** + * Override the initialize method only for this panel. + * We need to refresh in case the CRLDistributionPointExtension + * has modified the caCertsOnly property for us. + **/ + public void initialize() { + Debug.println("CMSCRLFormatPanel: intialize()"); + if (!mInit) { + init(); + mInit = true; + } else { + if(!isDirty()) { + refresh(); + } + } + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSCRLIPPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSCRLIPPanel.java new file mode 100644 index 000000000..553211eb8 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSCRLIPPanel.java @@ -0,0 +1,327 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.ug.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; + +/** + * CRL IP Panel + * + * @version $Revision$, $Date$ + */ +public class CMSCRLIPPanel extends CMSBaseTab + implements MouseListener +{ + + /*========================================================== + * variables + *==========================================================*/ + + private final static String PANEL_NAME = "CRLIPS"; + private final static String HELPINDEX = "configuration-revocation"; + + private AdminConnection mAdmin; + private CMSBaseResourceModel mModel; + private CMSTabPanel mParent; + private JList mList; + private DefaultListModel mDataModel; + private JScrollPane mScrollPane; + private JButton mAdd; + private JButton mEdit; + private JButton mDelete; + private Vector mNames; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSCRLIPPanel(CMSBaseResourceModel model, CMSTabPanel parent) { + super(PANEL_NAME, parent); + mModel = model; + mParent = parent; + mDataModel = new DefaultListModel(); + mHelpToken = HELPINDEX; + mNames = new Vector(); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * initialize the UI components + */ + public void init() { + JPanel mainPanel = mCenterPanel; + + Debug.println("CRLIPPanel: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + + GridBagLayout gb1 = new GridBagLayout(); + mainPanel.setLayout(gb1); + + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + JLabel listLabel = makeJLabel("CRLIPLIST"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE, + 0,DIFFERENT_COMPONENT_SPACE); + gb1.setConstraints(listLabel, gbc); + mainPanel.add(listLabel); + + CMSAdminUtil.resetGBC(gbc); + mList = makeJList(mDataModel, 7); + mScrollPane = new JScrollPane(mList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 0.5; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE, + 0,DIFFERENT_COMPONENT_SPACE); + gb1.setConstraints(mScrollPane, gbc); + mainPanel.add(mScrollPane); + + JPanel buttonPanel = createUserButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,0, + 0,DIFFERENT_COMPONENT_SPACE); + gb1.setConstraints(buttonPanel, gbc); + mainPanel.add(buttonPanel); + + refresh(); + } + + + /** + * create the user action button panel + */ + protected JPanel createUserButtonPanel() { + //add, edit, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mEdit = makeJButton("EDIT"); + mDelete = makeJButton("DELETE"); + JButton[] buttons = {mAdd, mEdit, mDelete}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + /** + * refresh the panel data + */ + public void refresh() { + try { + NameValuePairs nvps = mAdmin.search(DestDef.DEST_CA_ADMIN, + ScopeDef.SC_CRLIPS, + new NameValuePairs()); + populate(nvps); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + } + + repaint(1); + } + + + /*========================================================== + * Event Handler + *==========================================================*/ + + //======= ActionLister ============================ + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mEdit)) { + JFrame frame = mModel.getFrame(); + String name = ((JLabel)mList.getSelectedValue()).getText(); + //(String)mList.getSelectedValue(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_ENABLED, ""); + nvps.put(Constants.PR_ID, ""); + nvps.put(Constants.PR_DESCRIPTION, ""); + nvps.put(Constants.PR_CLASS, ""); + try { + NameValuePairs values = mAdmin.read(DestDef.DEST_CA_ADMIN, + ScopeDef.SC_CRLIPS, + name, nvps); + + CRLIPEditor editor = new CRLIPEditor(mAdmin, mModel.getFrame(), + name, DestDef.DEST_CA_ADMIN, + mModel.getServerInfo().getServerId(), + mNames); + editor.showDialog(values); + } catch (EAdminException ex) { + showErrorDialog(ex.toString()); + } + refresh(); + } else if (e.getSource().equals(mAdd)) { + CRLIPEditor editor = new CRLIPEditor(mAdmin, mModel.getFrame(), + null, DestDef.DEST_CA_ADMIN, + mModel.getServerInfo().getServerId(), + mNames); + editor.showDialog(new NameValuePairs()); + String name = editor.getCRLName(); + CMSResourceObject node = (CMSResourceObject)(mParent.getResourceObject()); + CMSResourceObject crlsNode = node; + node = new CMSResourceObject(); + node.setName(name); + CMSTabPanel crlIPTabPane = new CMSTabPanel(mModel, node); + crlIPTabPane.addTab(new CMSCRLSettingPanel(crlIPTabPane, name)); + crlIPTabPane.addTab(new CMSCRLCachePanel(crlIPTabPane, name)); + crlIPTabPane.addTab(new CMSCRLFormatPanel(crlIPTabPane, name)); + node.setCustomPanel(crlIPTabPane); + node.setIcon( CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULEOBJECT)); + node.setAllowsChildren(true); + crlsNode.insert(node, crlsNode.getChildCount()); + + CMSResourceObject crlNode = node; + + node = new CMSResourceObject("CRLEXTENSIONS"); + CMSUGTabPanel crlExtTabPane1 = new CMSUGTabPanel(mModel, node); + crlExtTabPane1.addTab(new CRLExtensionsInstanceTab(mModel, DestDef.DEST_CA_ADMIN, name)); + node.setCustomPanel(crlExtTabPane1); + node.setIcon( CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULEOBJECT)); + node.setAllowsChildren(false); + crlNode.add(node); + mModel.fireTreeStructureChanged((ResourceObject)crlsNode); + + refresh(); + } else if (e.getSource().equals(mDelete)) { + int index = mList.getSelectedIndex(); + if (index >= 0) { + String name = ((JLabel)mList.getSelectedValue()).getText(); + //(String)mList.getSelectedValue(); + + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + try { + mAdmin.delete(DestDef.DEST_CA_ADMIN, + ScopeDef.SC_CRLIPS, name); + } catch (EAdminException ex) { + showErrorDialog(ex.toString()); + } + if (mNames.contains(name)) + mNames.remove(name); + mDataModel.removeElementAt(index); + if (mDataModel.size() > 0) + mList.setSelectedIndex(0); + } + CMSResourceObject node = + (CMSResourceObject)(mParent.getResourceObject()); + Enumeration allchildren = node.children(); + while (allchildren.hasMoreElements()) { + CMSResourceObject child = (CMSResourceObject)(allchildren.nextElement()); + String name1 = child.getName(); + if (name1.equals(name)) { + node.remove(child); + mModel.fireTreeStructureChanged((ResourceObject)node); + return; + } + } + } + } + } + + //=== MOUSELISTENER ======================== + public void mouseClicked(MouseEvent e) { + if (e.getSource() == mList) { + if (mList.getSelectedIndex() < 0) + mEdit.setEnabled(false); + else + mEdit.setEnabled(true); + } + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) {} + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) {} + + //======== CMSBaseConfigPanel ============== + public boolean applyCallback() { + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } + + /*========================================================== + * private methods + *==========================================================*/ + + //update the UI component using the data retrieved + private void populate(NameValuePairs nvps) { + + mDataModel.removeAllElements(); + mNames.removeAllElements(); + for (String name : nvps.keySet()) { + if (name.indexOf('.') == -1) { + mNames.addElement(name); + + String enable = nvps.get(name + "." + Constants.PR_ENABLED); + if (enable != null && enable.equalsIgnoreCase(Constants.TRUE)) { + mDataModel.addElement(new JLabel(name, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE), + JLabel.LEFT)); + } else { + mDataModel.addElement(new JLabel(name, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE), + JLabel.LEFT)); + } + /* + mDataModel.addElement(name); + */ + } + } + + if (mDataModel.size() > 0) { + mList.setSelectedIndex(0); + mEdit.setEnabled(true); + mDelete.setEnabled(true); + } else { + mEdit.setEnabled(false); + mDelete.setEnabled(false); + } + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSCRLSettingPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSCRLSettingPanel.java new file mode 100644 index 000000000..d420686e3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSCRLSettingPanel.java @@ -0,0 +1,698 @@ +// --- 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.config; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.util.StringTokenizer; +import java.util.Vector; + +/** + * CRL Publishing Setting Panel + * + * @author Andrew Wnuk + * @author Christine Ho + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class CMSCRLSettingPanel extends CMSBaseTab { + + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "CRLSETTING"; + + private JCheckBox mEnableCRL; + private JLabel mCRLGenLabel; + private JTextField mCRLGen; + private JLabel mDeltaGenLabel; + + private JLabel mExtendNextUpdateLabel; + private JCheckBox mExtendNextUpdate; + + private JCheckBox mAlways; + private JCheckBox mDaily; + private JTextField mDailyAt; + private JCheckBox mEnableFreq; + private JTextField mFrequency; + private JLabel mMinLabel; + private JLabel mGracePeriodLabel; + private JTextField mGracePeriod; + private JLabel mGracePeriodMinLabel; + + private Color mActiveColor; + private AdminConnection _admin; + private CMSBaseResourceModel _model; + private CMSTabPanel mParent; + private String mId = null; + private static final String HELPINDEX = + "configuration-ca-ldappublish-crl-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSCRLSettingPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + _model = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + } + + public CMSCRLSettingPanel(CMSTabPanel parent, String id) { + super(PANEL_NAME, parent); + _model = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + mId = id; + } + + /*========================================================== + * public methods + *==========================================================*/ + public void init() { + Debug.println("CRLSettingPanel: init()"); + _admin = _model.getServerInfo().getAdmin(); + + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mCenterPanel.setLayout(gb); + + + //schema panel + JPanel schemaPanel = new JPanel(); + schemaPanel.setBorder(makeTitledBorder("SCHEMA")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gb.setConstraints(schemaPanel, gbc); + mCenterPanel.add(schemaPanel); + + GridBagLayout gb4 = new GridBagLayout(); + schemaPanel.setLayout(gb4); + + + // enable CRL generation + CMSAdminUtil.resetGBC(gbc); + JLabel enableCRLLabel = makeJLabel("CRL"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + schemaPanel.add(enableCRLLabel, gbc ); + + mEnableCRL = makeJCheckBox(); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + schemaPanel.add(mEnableCRL, gbc); + + + // generate full CRL every X deltas + CMSAdminUtil.resetGBC(gbc); + mCRLGenLabel = makeJLabel("GENERATION"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + schemaPanel.add(mCRLGenLabel, gbc ); + + mCRLGen = makeJTextField(5); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0); + schemaPanel.add(mCRLGen, gbc); + mActiveColor = mCRLGen.getBackground(); + + mDeltaGenLabel = makeJLabel("DELTAS"); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + schemaPanel.add(mDeltaGenLabel, gbc); + + + // Extend next update time + CMSAdminUtil.resetGBC(gbc); + mExtendNextUpdateLabel = makeJLabel("NEXTTIME"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + schemaPanel.add(mExtendNextUpdateLabel, gbc ); + + mExtendNextUpdate = makeJCheckBox(); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + schemaPanel.add(mExtendNextUpdate, gbc); + + + //frequency panel + JPanel freqPanel = new JPanel(); + freqPanel.setBorder(makeTitledBorder("FREQ")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(freqPanel, gbc); + mCenterPanel.add(freqPanel); + + //add components + GridBagLayout gb2 = new GridBagLayout(); + freqPanel.setLayout(gb2); + + + // update every time + CMSAdminUtil.resetGBC(gbc); + mAlways = makeJCheckBox("ALWAYS"); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,COMPONENT_SPACE); + freqPanel.add(mAlways, gbc); + + + // update at specified time + CMSAdminUtil.resetGBC(gbc); + mDaily = makeJCheckBox("DAILY"); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + freqPanel.add(mDaily, gbc); + + mDailyAt = makeJTextField(30); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + freqPanel.add(mDailyAt, gbc); + + + // update by time interval + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + mEnableFreq = makeJCheckBox("FREQ"); + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + freqPanel.add(mEnableFreq, gbc); + + mFrequency = makeJTextField(5); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0); + freqPanel.add(mFrequency, gbc); + + mMinLabel = makeJLabel("MINUTES"); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + freqPanel.add(mMinLabel, gbc); + + + // next update grace period + CMSAdminUtil.resetGBC(gbc); + mGracePeriodLabel = makeJLabel("GRACEPERIOD"); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.gridx = 0; + // gbc.gridx = 2; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + freqPanel.add(mGracePeriodLabel, gbc); + + mGracePeriod = makeJTextField(5); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0); + freqPanel.add(mGracePeriod, gbc); + + mGracePeriodMinLabel = makeJLabel("MINUTES"); + gbc.anchor = gbc.WEST; + gbc.gridx++; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,COMPONENT_SPACE); + freqPanel.add(mGracePeriodMinLabel, gbc); + + + refresh(); + } + + public void refresh() { + _model.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_ENABLE_CRL, ""); + nvps.put(Constants.PR_UPDATE_SCHEMA, ""); + nvps.put(Constants.PR_EXTENDED_NEXT_UPDATE, ""); + nvps.put(Constants.PR_UPDATE_ALWAYS, ""); + nvps.put(Constants.PR_ENABLE_DAILY, ""); + nvps.put(Constants.PR_DAILY_UPDATES, ""); + nvps.put(Constants.PR_ENABLE_FREQ, ""); + nvps.put(Constants.PR_UPDATE_FREQ, ""); + nvps.put(Constants.PR_GRACE_PERIOD, ""); + + try { + NameValuePairs val = null; + if (mId != null && mId.length() > 0) { + val = _admin.read(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + mId, nvps); + } else { + val = _admin.read(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + Constants.RS_ID_CONFIG, nvps); + } + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + _model.progressStop(); + } + _model.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + + enableFields(); + } + + public void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String value = nvps.get(name).trim(); + if (name.equals(Constants.PR_ENABLE_CRL)) { + mEnableCRL.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_UPDATE_SCHEMA)) { + mCRLGen.setText(value); + } else if (name.equals(Constants.PR_EXTENDED_NEXT_UPDATE)) { + mExtendNextUpdate.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_UPDATE_ALWAYS)) { + mAlways.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_ENABLE_DAILY)) { + mDaily.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_DAILY_UPDATES)) { + mDailyAt.setText(value); + } else if (name.equals(Constants.PR_ENABLE_FREQ)) { + mEnableFreq.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_UPDATE_FREQ)) { + mFrequency.setText(value); + } else if (name.equals(Constants.PR_GRACE_PERIOD)) { + mGracePeriod.setText(value); + } + } + } + + public boolean getBoolean(String val) { + if (val.equals(Constants.TRUE)) + return true; + return false; + } + + public boolean getBoolean(String val, boolean defaultValue) { + if (val.equals(Constants.TRUE)) + return true; + else if (val.equals(Constants.FALSE)) + return false; + else + return defaultValue; + } + + private int checkTime(String time) { + String digits = "0123456789"; + int len = time.length(); + if (len < 3 || len > 5) return -1; + int s = time.indexOf(':'); + if (s < 0 || s > 2 || (len - s) != 3) return -1; + + int h = 0; + for (int i = 0; i < s; i++) { + h *= 10; + int k = digits.indexOf(time.charAt(i)); + if (k < 0) return -1; + h += k; + } + if (h > 23) return -1; + + int m = 0; + for (int i = s+1; i < len; i++) { + m *= 10; + int k = digits.indexOf(time.charAt(i)); + if (k < 0) return -1; + m += k; + } + if (m > 59) return -1; + + return ((h * 60) + m); + } + + private String trimList(String list) { + String trimmed = ""; + + StringTokenizer days = new StringTokenizer(list, ";", true); + while (days.hasMoreTokens()) { + String dayList = days.nextToken().trim(); + if (dayList == null || dayList.length() == 0) continue; + if (dayList.equals(";")) { + trimmed += dayList; + continue; + } + StringTokenizer elements = new StringTokenizer(dayList, ",", true); + int n = 0; + while (elements.hasMoreTokens()) { + String element = elements.nextToken().trim(); + if (element == null || element.length() == 0) return null; + if (element.equals(",") && n % 2 == 0) return null; + trimmed += element; + n++; + } + if (n % 2 == 0) return null; + } + return trimmed; + } + + private Vector checkTimeList(String list) { + if (list == null || list.length() == 0) return null; + if (list.charAt(0) == ',' || list.charAt(list.length()-1) == ',') return null; + + Vector listedTimes = new Vector(); + + StringTokenizer days = new StringTokenizer(list, ";"); + while (days.hasMoreTokens()) { + String dayList = days.nextToken().trim(); + if (dayList == null || dayList.length() == 0) continue; + int t0 = -1; + StringTokenizer times = new StringTokenizer(dayList, ","); + while (times.hasMoreTokens()) { + String time = times.nextToken(); + if (time.charAt(0) == '*') time = time.substring(1); + int t = checkTime(time); + if (t < 0) { + return null; + } else { + if (t > t0) { + listedTimes.addElement(new Integer(t)); + t0 = t; + } else { + return null; + } + } + } + } + return listedTimes; + } + + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + String timeList = trimList(mDailyAt.getText()); + + if (mEnableCRL.isSelected()) { + if (!mAlways.isSelected() && !mDaily.isSelected() && + !mEnableFreq.isSelected()) { + showMessageDialog("UPDATES"); + return false; + } + + if (mCRLGen.getText().trim().equals("")) { + showMessageDialog("BLANKSCHEMA"); + return false; + } + try { + int num = Integer.parseInt(mCRLGen.getText().trim()); + if (num < 1) { + showMessageDialog("SCHEMANUMBER"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("SCHEMANUMBER"); + return false; + } + + Vector daily = null; + if (mDaily.isSelected()) { + if (mDailyAt.getText().trim().equals("")) { + showMessageDialog("BLANKDAILY"); + return false; + } + daily = checkTimeList(timeList); + if (daily == null) { + showMessageDialog("DAILYFORMAT"); + return false; + } + } + + if (mEnableFreq.isSelected()) { + if (mFrequency.getText().trim().equals("")) { + showMessageDialog("BLANKFREQ"); + return false; + } + int freq = 0; + try { + freq = Integer.parseInt(mFrequency.getText().trim()); + if (freq < 1) { + showMessageDialog("FREQNUMBER"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("FREQNUMBER"); + return false; + } + if (mDaily.isSelected() && daily != null && daily.size() > 1) { + showMessageDialog("DAILYFORMAT"); + return false; + } + if (mDaily.isSelected() && daily != null && daily.size() == 1 && + (freq >= 1440 || + freq + ((Integer)(daily.elementAt(0))).intValue() >= 1440)) { + showMessageDialog("INTERVALTOBIG"); + return false; + } + } + + if (mGracePeriod.getText().trim().equals("")) { + showMessageDialog("BLANKGRACE"); + return false; + } + try { + int grace = Integer.parseInt(mGracePeriod.getText().trim()); + if (grace < 0) { + showMessageDialog("GRACENUMBER"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("GRACENUMBER"); + return false; + } + } + + NameValuePairs nvps = new NameValuePairs(); + + if (mEnableCRL.isSelected()) + nvps.put(Constants.PR_ENABLE_CRL, Constants.TRUE); + else + nvps.put(Constants.PR_ENABLE_CRL, Constants.FALSE); + + nvps.put(Constants.PR_UPDATE_SCHEMA, mCRLGen.getText().trim()); + + if (mExtendNextUpdate.isSelected()) + nvps.put(Constants.PR_EXTENDED_NEXT_UPDATE, Constants.TRUE); + else + nvps.put(Constants.PR_EXTENDED_NEXT_UPDATE, Constants.FALSE); + + if (mAlways.isSelected()) + nvps.put(Constants.PR_UPDATE_ALWAYS, Constants.TRUE); + else + nvps.put(Constants.PR_UPDATE_ALWAYS, Constants.FALSE); + + if (mDaily.isSelected()) + nvps.put(Constants.PR_ENABLE_DAILY, Constants.TRUE); + else + nvps.put(Constants.PR_ENABLE_DAILY, Constants.FALSE); + + if (timeList != null) + nvps.put(Constants.PR_DAILY_UPDATES, timeList); + else + nvps.put(Constants.PR_DAILY_UPDATES, mDailyAt.getText().trim()); + + + if (mEnableFreq.isSelected()) + nvps.put(Constants.PR_ENABLE_FREQ, Constants.TRUE); + else + nvps.put(Constants.PR_ENABLE_FREQ, Constants.FALSE); + + nvps.put(Constants.PR_UPDATE_FREQ, mFrequency.getText().trim()); + + nvps.put(Constants.PR_GRACE_PERIOD, mGracePeriod.getText().trim()); + + + _model.progressStart(); + + try { + if (mId != null && mId.length() > 0) { + _admin.modify(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + mId, nvps); + } else { + _admin.modify(DestDef.DEST_CA_ADMIN, ScopeDef.SC_CRL, + Constants.RS_ID_CONFIG, nvps); + } + } catch (EAdminException e) { + showErrorDialog(e.toString()); + _model.progressStop(); + return false; + } + + _model.progressStop(); + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + Debug.println("CRLSettingPanel: resetCallback()"); + refresh(); + return true; + } + + public void actionPerformed(ActionEvent e) { + Debug.println("CRLSettingPanel: actionPerformed()"); + if (e.getSource().equals(mEnableCRL)) { + enableFields(); + } + + if (e.getSource().equals(mDaily)) { + if (mDaily.isSelected()) { + CMSAdminUtil.enableJTextField(mDailyAt, true, mActiveColor); + CMSAdminUtil.enableJTextField(mGracePeriod, true, mActiveColor); + mGracePeriodLabel.setEnabled(true); + CMSAdminUtil.repaintComp(mGracePeriodLabel); + mGracePeriodMinLabel.setEnabled(true); + CMSAdminUtil.repaintComp(mGracePeriodMinLabel); + } else { + CMSAdminUtil.enableJTextField(mDailyAt, false, getBackground()); + if (!mEnableFreq.isSelected()) { + CMSAdminUtil.enableJTextField(mGracePeriod, false, getBackground()); + mGracePeriodLabel.setEnabled(false); + CMSAdminUtil.repaintComp(mGracePeriodLabel); + mGracePeriodMinLabel.setEnabled(false); + CMSAdminUtil.repaintComp(mGracePeriodMinLabel); + } + } + } + if (e.getSource().equals(mEnableFreq)) { + if (mEnableFreq.isSelected()) { + CMSAdminUtil.enableJTextField(mFrequency, true, mActiveColor); + mMinLabel.setEnabled(true); + CMSAdminUtil.repaintComp(mMinLabel); + CMSAdminUtil.enableJTextField(mGracePeriod, true, mActiveColor); + mGracePeriodLabel.setEnabled(true); + CMSAdminUtil.repaintComp(mGracePeriodLabel); + mGracePeriodMinLabel.setEnabled(true); + CMSAdminUtil.repaintComp(mGracePeriodMinLabel); + } else { + CMSAdminUtil.enableJTextField(mFrequency, false, getBackground()); + mMinLabel.setEnabled(false); + CMSAdminUtil.repaintComp(mMinLabel); + if (!mDaily.isSelected()) { + CMSAdminUtil.enableJTextField(mGracePeriod, false, getBackground()); + mGracePeriodLabel.setEnabled(false); + CMSAdminUtil.repaintComp(mGracePeriodLabel); + mGracePeriodMinLabel.setEnabled(false); + CMSAdminUtil.repaintComp(mGracePeriodMinLabel); + } + } + } + + super.actionPerformed(e); + } + + private void enableFields() { + boolean enable = mEnableCRL.isSelected(); + Color color = (enable)? mActiveColor: getBackground(); + + CMSAdminUtil.enableJTextField(mCRLGen, enable, color); + mCRLGenLabel.setEnabled(enable); + CMSAdminUtil.repaintComp(mCRLGenLabel); + mDeltaGenLabel.setEnabled(enable); + CMSAdminUtil.repaintComp(mDeltaGenLabel); + + mExtendNextUpdateLabel.setEnabled(enable); + CMSAdminUtil.repaintComp(mExtendNextUpdateLabel); + mExtendNextUpdate.setEnabled(enable); + CMSAdminUtil.repaintComp(mExtendNextUpdate); + + mAlways.setEnabled(enable); + CMSAdminUtil.repaintComp(mAlways); + + mDaily.setEnabled(enable); + CMSAdminUtil.repaintComp(mDaily); + + boolean enable1 = enable && mDaily.isSelected(); + Color color1 = (enable1)? mActiveColor: getBackground(); + CMSAdminUtil.enableJTextField(mDailyAt, enable1, color1); + + mEnableFreq.setEnabled(enable); + CMSAdminUtil.repaintComp(mEnableFreq); + + boolean enable2 = enable && mEnableFreq.isSelected(); + Color color2 = (enable2)? mActiveColor: getBackground(); + CMSAdminUtil.enableJTextField(mFrequency, enable2, color2); + mMinLabel.setEnabled(enable2); + CMSAdminUtil.repaintComp(mMinLabel); + + boolean enable3 = enable1 || enable2; + Color color3 = (enable3)? mActiveColor: getBackground(); + CMSAdminUtil.enableJTextField(mGracePeriod, enable3, color3); + mGracePeriodLabel.setEnabled(enable3); + CMSAdminUtil.repaintComp(mGracePeriodLabel); + mGracePeriodMinLabel.setEnabled(enable3); + CMSAdminUtil.repaintComp(mGracePeriodMinLabel); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSCertSettingPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSCertSettingPanel.java new file mode 100644 index 000000000..975ba97da --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSCertSettingPanel.java @@ -0,0 +1,150 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * CA Certificate Setting + * + * @author Christine Ho + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public abstract class CMSCertSettingPanel extends CMSBaseTab { + + /*========================================================== + * variables + *==========================================================*/ + protected JLabel _mapper, _publisher; + protected CMSBaseResourceModel _model; + protected AdminConnection _admin; + protected JButton mMapper, mPublisher; + + /*========================================================== + * constructors + *==========================================================*/ + + public CMSCertSettingPanel(String panelName, CMSTabPanel parent) { + super(panelName, parent); + _model = parent.getResourceModel(); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * Actual UI construction + */ + public void init() { + _admin = _model.getServerInfo().getAdmin(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + + JPanel mapPanel = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + mapPanel.setLayout(gb2); + mapPanel.setBorder(makeTitledBorder("MAPPER")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(mapPanel, gbc); + mCenterPanel.add(mapPanel); + + CMSAdminUtil.resetGBC(gbc); + JLabel mapperLabel = makeJLabel("MAPPER"); + _mapper = new JLabel(""); + mMapper = makeJButton("MAPPER"); + addEntryField(mapPanel, mapperLabel, _mapper, mMapper , gbc); + + JPanel certSetting = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + certSetting.setLayout(gb1); + certSetting.setBorder(makeTitledBorder("PUBLISHER")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(certSetting, gbc); + mCenterPanel.add(certSetting); + + CMSAdminUtil.resetGBC(gbc); + JLabel publisherLabel = makeJLabel("PUBLISHER"); + _publisher = new JLabel(""); + mPublisher = makeJButton("PUBLISHER"); + addEntryField(certSetting, publisherLabel, _publisher, mPublisher, gbc); + } + + /*========================================================== + * protected methods + *==========================================================*/ + + protected int getIndex(String value, String[] source) { + for (int i=0; i> 1); + int new_height = height - top; + BorderUIResource.getEtchedBorderUIResource().paintBorder(c, g, x, top, width, new_height); + } + } + + public boolean isModified() { + return (_ismodified | super.isModified()); + } + + public void reset() { + setEnabled(oldValue); + _ismodified = false; + super.reset(); + } + + public void setSaved() { + oldValue = isEnabled(); + _ismodified = false; + super.setSaved(); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSEAGeneralPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSEAGeneralPanel.java new file mode 100644 index 000000000..2d35133df --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSEAGeneralPanel.java @@ -0,0 +1,169 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * KRA General Setting + * + * @author Ade Lee + * @version $Revision: 1211 $, $Date: 2010-08-18 13:15:37 -0400 (Wed, 18 Aug 2010) $ + */ +public class CMSEAGeneralPanel extends CMSBaseTab implements ItemListener { + + private static String PANEL_NAME = "EAGENERAL"; + private static CMSBaseResourceModel mModel; + protected AdminConnection mAdmin; + private JTextField mNumberOfAgentsText; + private CMSTabPanel mParent; + private static final String EAHELPINDEX = + "configuration-ea-general-help"; + + public CMSEAGeneralPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mModel = parent.getResourceModel(); + mParent = parent; + mHelpToken = EAHELPINDEX; + } + + public void init() { + Debug.println("CMSEAGeneral: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + + JPanel agentsPanel = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + agentsPanel.setLayout(gb2); + agentsPanel.setBorder(makeTitledBorder("AGENTS")); + + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(agentsPanel, gbc); + mCenterPanel.add(agentsPanel); + + + CMSAdminUtil.resetGBC(gbc); + JLabel numberLabel = makeJLabel("NUMBER"); + mNumberOfAgentsText = makeJTextField(30); + CMSAdminUtil.addEntryField(agentsPanel, numberLabel, mNumberOfAgentsText, gbc); + + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_NO_OF_REQUIRED_RECOVERY_AGENTS, "1"); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_KRA_ADMIN, + ScopeDef.SC_GENERAL, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + } + + protected void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_NO_OF_REQUIRED_RECOVERY_AGENTS)) { + mNumberOfAgentsText.setText(value); + } + } + } + + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + String numberOfAgents = mNumberOfAgentsText.getText().trim(); + + if (numberOfAgents.equals("")) { + showMessageDialog("BLANKFIELD"); + return false; + } + + try { + int num = Integer.parseInt(numberOfAgents); + if (num < 1) { + showMessageDialog("NUMBERRANGE"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_NO_OF_REQUIRED_RECOVERY_AGENTS, + numberOfAgents); + + mModel.progressStart(); + try { + mAdmin.modify(DestDef.DEST_KRA_ADMIN, + ScopeDef.SC_GENERAL, Constants.RS_ID_CONFIG, nvps); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSEncryptionPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSEncryptionPanel.java new file mode 100644 index 000000000..913974eaf --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSEncryptionPanel.java @@ -0,0 +1,835 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.management.client.console.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.certsrv.common.*; +import java.awt.*; +import java.util.*; +import javax.swing.*; +import java.awt.event.*; +import javax.swing.border.*; +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.keycert.*; +import com.netscape.admin.certsrv.managecert.*; + +/** + * Encryption panel used for setup server encryption options. + * This is a wrapper class that emulates the CMSBaseTab API + * calls. + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CMSEncryptionPanel extends CMSBaseTab { + + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "ENCRYPTION"; + private ConsoleInfo mConsoleInfo; + private CMSServerInfo mServerInfo; + private AdminConnection mConnection; + private JPanel mEncryptPane; + private JComboBox mSelection, mTokenList, mCertList; + private Hashtable mCertMapping; //maps the function list items to tags + private String mSelectedItem, mSelectedToken, mSelectedCert; + private JButton mWizard, mCipherPref, mSetup; + private Hashtable mTokenCertList; //container for tokens and certs (Vector) + private boolean mIsDomestic = false; + private boolean mHasFortezza = false; + private Vector mCipherPrefStore; + private CMSCipherPreferenceDialog mCipherDialog; + private boolean updateFlag = false; + private boolean mSelectionIgnore = false; + private boolean mWarningOn = false; + private static final String HELPINDEX = + "configuration-system-encryption-help"; + + /**========================================================= + * constructors + * @param parent the parent panel + * @see com.netscape.admin.certsrv.config.CMSTabPanel + *==========================================================*/ + public CMSEncryptionPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mConsoleInfo = parent.getResourceModel().getConsoleInfo(); + mServerInfo = parent.getResourceModel().getServerInfo(); + mConnection = mServerInfo.getAdmin(); + mCertMapping = new Hashtable(); + mTokenCertList = new Hashtable(); + mCipherPrefStore = new Vector(); + mHelpToken = HELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * Actual Instanciation of the UI components + */ + public void init() { + Debug.println("EncryptionPanel: init()"); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + + //certificate settings + JPanel top = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + top.setLayout(gb2); + top.setBorder( new CompoundBorder( + BorderFactory.createTitledBorder( + mResource.getString("ENCRYPTION_BORDER_CERT_LABEL")), + new EmptyBorder(-3, + 0, + DIFFERENT_COMPONENT_SPACE - 3, + 0))); + + //add selection combobox + JLabel label1 = makeJLabel("SELECT"); + mSelection = new JComboBox(); + updateCertSelection(); //dynamically generate this list + addTopEntryField(top, label1, mSelection, gbc); + if (mSelection.getItemCount()>0) { + mSelection.setSelectedIndex(0); + mSelectedItem = (String) mSelection.getSelectedItem(); + } else { + //disable if nothing there + mSelection.setEnabled(false); + } + mSelection.addItemListener(this); + + //add encryption panel + mEncryptPane = createCertEntry(); + //mEncryptPane = new InnerEncryptionPane(mConsoleInfo); + //mEncryptPane.addEncryptionPaneListener(this); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + //gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, + COMPONENT_SPACE,0,COMPONENT_SPACE); + gb2.setConstraints(mEncryptPane, gbc); + top.add(mEncryptPane); + + CMSAdminUtil.resetGBC(gbc); + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(top, gbc); + mCenterPanel.add(top); + + mWizard = makeJButton("WIZARD"); + mCipherPref = makeJButton("CIPHERPREF"); + mSetup = makeJButton("SETUP"); + CMSAdminUtil.resetGBC(gbc); + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + //addButtonEntryField(mCenterPanel, mSetup, mWizard, mCipherPref, gbc); + addButtonEntryField(mCenterPanel, mSetup, mWizard, gbc); + //addButtonEntryField(mCenterPanel, mCipherPref, gbc); + + /* retrieve data from server and + * feed data into mEncryptionPane for display ... + */ + refresh(); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + if (mWarningOn) { + String errorMsg = + mResource.getString(mPanelName+"_LABEL_WARNING_LABEL"); + JOptionPane.showMessageDialog(new JFrame(), errorMsg, "Warning", + JOptionPane.WARNING_MESSAGE, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_WARN_ICON)); + mWarningOn = false; + return false; + } + + //save current changes if modified + saveChanges((String) mSelection.getSelectedItem()); + + //construct NVP parameters + NameValuePairs nvp = new NameValuePairs(); + for (Enumeration e = mCertMapping.keys() ; e.hasMoreElements() ;) { + CipherEntryData data = + (CipherEntryData)mCertMapping.get(e.nextElement()); + nvp.put(data.getTagName(), data.getTokenName() + "," + data.getCertName()); + } + + if (updateCertMap(nvp)) { + mWarningOn = false; + clearDirtyFlag(); + return true; + } + + return false; + } + + /** + * Implementation for reset values + * @return true if reset successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + mWarningOn = false; + return true; + } + + /** + * retrieve data from server and + * feed data into mEncryptPane for display ... + * refresh the panel and update data + */ + public void refresh() { + + //call server to get the encryption settings + NameValuePairs response; + try { + response = updateSecurityInformation(); + } catch(EAdminException e) { + //display error dialog + CMSAdminUtil.showErrorDialog(mParent.getResourceModel().getFrame(), mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + + //setup the data and UI + updateFlag = true; + cleanup(); + setupDataContainer(response); + setupComboSelection(); + updateFlag = false; + + clearDirtyFlag(); + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { +/* + if (e.getSource().equals(mSetup)) { + Debug.println("Configure cert"); + InstallWizardInfo info = new InstallWizardInfo(); + InstallWizard wizard = new InstallWizard( + mParent.getResourceModel().getFrame(), info); + return; + } +*/ + if (e.getSource().equals(mSetup)) { + ManageCertDialog manageDialog = + new ManageCertDialog(mParent.getResourceModel().getFrame()); + manageDialog.showDialog(mParent.getResourceModel().getServerInfo().getAdmin()); + } + if (e.getSource().equals(mWizard)) { + Debug.println("Wizard"); + + //XXX launch OUR OWN wizard + CertSetupWizardInfo info = new + CertSetupWizardInfo(mConnection, mConsoleInfo); + CertSetupWizard wizard = new CertSetupWizard(mParent.getResourceModel(), info); + // mParent.getResourceModel().getFrame(), info); + //KeyCertWizard wizard = new KeyCertWizard(mConnection); + + //XXX we should update the settings to reflect the changes + + + return; + } + if (e.getSource().equals(mCipherPref)) { + Debug.println("Wizard"); + + if (mCipherDialog == null) { + mCipherDialog = new CMSCipherPreferenceDialog(mParent.mModel.getFrame(), + mIsDomestic, + mHasFortezza, + CMSCipherPreferenceDialog.SSL2|CMSCipherPreferenceDialog.SSL3); + + } + + refresh(); + setupCipherDialog(mCipherDialog); + + mCipherDialog.show(); + + if (!mCipherDialog.isModified()) + return; + + //Save the cipher settings + StringBuffer buf = new StringBuffer(); + + if (mCipherDialog.isSSLEnabled(mCipherDialog.SSL2)) { + String[] v2 = mCipherDialog.getSSLPreference(mCipherDialog.SSL2); + for (int i=0; i< v2.length; i++) { + if (mCipherDialog.isCipherEnabled(v2[i])) { + if (buf.length()>0) + buf.append(","); + buf.append(v2[i]); + } + } + } + + if (mCipherDialog.isSSLEnabled(mCipherDialog.SSL3)) { + String[] v3 = mCipherDialog.getSSLPreference(mCipherDialog.SSL3); + for (int i=0; i< v3.length; i++) { + if (mCipherDialog.isCipherEnabled(v3[i])) { + if (buf.length()>0) + buf.append(","); + buf.append(v3[i]); + } + } + } + + updateCipherPref(buf.toString()); + + //save the new settings + mCipherDialog.setSaved(true); + + return; + } + } + + //== ItemListener == + public void itemStateChanged(ItemEvent e){ + + if (e.getSource().equals(mSelection)) { + if (e.getStateChange() == e.SELECTED) { + if (!mSelectionIgnore) { + updateFlag = true; + saveChanges(mSelectedItem); + mSelectedItem = (String) mSelection.getSelectedItem(); + setupComboSelection(); + updateFlag = false; + } + } + } else if (e.getSource().equals(mTokenList)) { + if ( (!updateFlag) && (e.getStateChange() == e.SELECTED) ){ + Debug.println("Token Selected"); + setDirtyFlag(); + updateFlag = true; + setupCertCombo(); + updateFlag = false; + } + } else if (e.getSource().equals(mCertList)) { + if ( (!updateFlag) && (e.getStateChange() == e.SELECTED) ){ + Debug.println("Cert Selected"); + saveChanges(mSelectedItem); + setupComboSelection(); + setDirtyFlag(); + } + } + mWarningOn = true; + } + + /*========================================================== + * Private Methods + *==========================================================*/ + + //save the mappings if changes made + private void saveChanges(String entry) { + if ( (!mSelectedToken.equals((String)mTokenList.getSelectedItem())) || + (!mSelectedCert.equals((String)mCertList.getSelectedItem())) ) { + + CipherEntryData data = (CipherEntryData) mCertMapping.get(entry); + data.setData((String)mTokenList.getSelectedItem(), + (String)mCertList.getSelectedItem()); + } + } + + //cleanup the + private void cleanup() { + mTokenCertList.clear(); + mCipherPrefStore.removeAllElements(); + mTokenList.removeAllItems(); + mCertList.removeAllItems(); + } + + //setup the cipher dialog + private void setupCipherDialog(CMSCipherPreferenceDialog dialog) { + Debug.println("setupCipherDialog"); + dialog.setSSLEnabled(dialog.SSL3,true); + + //set selected/unselected ciphers + String[] v2 = dialog.getSSLPreference(dialog.SSL2); + + if (v2.length <= 0) + dialog.setSSLEnabled(dialog.SSL2,false); + else + dialog.setSSLEnabled(dialog.SSL2,true); + + for (int i=0; i< v2.length; i++) { + if (mCipherPrefStore.contains(v2[i])) { + //Debug.println("setEnable: "+v2[i]); + dialog.setCipherEnabled(v2[i], true); + } else { + //Debug.println("setDisable: "+v2[i]); + dialog.setCipherEnabled(v2[i], false); + } + } + String[] v3 = dialog.getSSLPreference(dialog.SSL3); + if (v3.length <= 0) + dialog.setSSLEnabled(dialog.SSL3,false); + else + dialog.setSSLEnabled(dialog.SSL3,true); + + for (int i=0; i< v3.length; i++) { + if (mCipherPrefStore.contains(v3[i])) { + //Debug.println("setEnable: "+v3[i]); + dialog.setCipherEnabled(v3[i], true); + } else { + //Debug.println("setDisable: "+v3[i]); + dialog.setCipherEnabled(v3[i], false); + } + } + + mCipherDialog.setSaved(true); + } + + //initialize the data containers + private void setupDataContainer(NameValuePairs response) { + + //setup security version flag + String version = response.get(Constants.PR_CIPHER_VERSION); + if ( (version != null) && (version.equals( + Constants.PR_CIPHER_VERSION_DOMESTIC)) ) { + mIsDomestic = true; + } + + //setup fortezza flag + String fortezza = response.get(Constants.PR_CIPHER_FORTEZZA); + if ( (fortezza != null) && (fortezza.equalsIgnoreCase("TRUE")) ){ + mHasFortezza = true; + } + + //setup cipher preference settings + String cipherpref = response.get(Constants.PR_CIPHER_PREF); + //Debug.println("cipher preference: "+cipherpref); + if ( (cipherpref != null) && (!cipherpref.trim().equals("")) ) { + StringTokenizer tokenizer = new StringTokenizer(cipherpref, ","); + while (tokenizer.hasMoreTokens()) { + String pref = tokenizer.nextToken().trim(); + //Debug.println("Add cipher: "+pref); + mCipherPrefStore.addElement(pref); + } + } else { + Debug.println("ERROR: CMSEncryptionPanel: setupDataContainer()- no cert pref list"); + } + + //setup the cipher entry data - loop through table and retrieve + //the current mappings + mSelectionIgnore = true; + for (Enumeration e = mCertMapping.keys() ; e.hasMoreElements() ;) { + String name = (String) e.nextElement(); + CipherEntryData data = (CipherEntryData)mCertMapping.get(name); + String value = response.get(data.getTagName()); + if ( (value != null) && (!value.trim().equals("")) ) { + StringTokenizer tokenizer = new StringTokenizer(value, ","); + try { + String token = tokenizer.nextToken().trim(); + String cert = tokenizer.nextToken().trim(); + data.setData(token, cert); + } catch(Exception ex) { + Debug.println("ERROR: CMSEncryptionPanel: setupDataContainer()- no token/cert not complete"); + } + } else { + Debug.println("ERROR: CMSEncryptionPanel: setupDataContainer()- no token/cert for:"+data.getTagName()); + mCertMapping.remove(name); + mSelection.removeItem(name); + Debug.println("RECOVER: CMSEncryptionPanel: setupDataContainer()- "+name+" removed from selection"); + } + } + mSelectionIgnore = false; + + //setup the token-cert list data table + String tokenlist = response.get(Constants.PR_TOKEN_LIST); + if ( (tokenlist != null) && (!tokenlist.trim().equals("")) ) { + StringTokenizer tokenizer = new StringTokenizer(tokenlist, ","); + while (tokenizer.hasMoreTokens()) { + String token = tokenizer.nextToken().trim(); + Debug.println("Token: "+token); + + //get the certificate associated with this token + String certList = response.get(Constants.PR_TOKEN_PREFIX + token); + Vector certVector = new Vector(); + if ( (certList != null) && (!certList.trim().equals("")) ) { + StringTokenizer tokenizer2 = new StringTokenizer(certList, ","); + while (tokenizer2.hasMoreTokens()) { + certVector.addElement(tokenizer2.nextToken().trim()); + } + } else { + Debug.println("WARNING: CMSEncryptionPanel: setupDataContainer()- no certlist for: "+token); + } + + //set the token-cert to hashtable + mTokenCertList.put(token, certVector); + mTokenList.addItem(token); + } + } else { + Debug.println("ERROR: CMSEncryptionPanel: setupDataContainer()- no tokenlist"); + } + + //setup the initial combobox selection + String newToken = (String) mTokenList.getSelectedItem(); + mSelectedToken = newToken; + mCertList.removeAllItems(); + Vector list = (Vector) mTokenCertList.get(newToken); + for (int i=0; i< list.size(); i++) + mCertList.addItem(list.elementAt(i)); + } + + //setup combobox selection + private void setupComboSelection() { + //get current function selection + CipherEntryData data = (CipherEntryData) mCertMapping.get(mSelection.getSelectedItem()); + + //select correct token from the token list + String oldToken = (String) mTokenList.getSelectedItem(); + String newToken = data.getTokenName(); + if (!oldToken.equals(newToken)) { + mTokenList.setSelectedItem(newToken); + mSelectedToken = newToken; + setupCertCombo(); + } + //select correct certiicate from the cert list + mCertList.setSelectedItem(data.getCertName()); + mSelectedCert = data.getCertName(); + } + + //setup the certlist combo + private void setupCertCombo() { + String newToken = (String) mTokenList.getSelectedItem(); + mCertList.removeAllItems(); + Vector list = (Vector) mTokenCertList.get(newToken); + for (int i=0; i< list.size(); i++) + mCertList.addItem(list.elementAt(i)); + } + + //creating the certificate mapping UI components + private JPanel createCertEntry() { + JPanel panel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + panel.setLayout(gb); + + //set border + panel.setBorder( new CompoundBorder( + BorderFactory.createTitledBorder(mResource.getString("ENCRYPTION_BORDER_MAPTO_LABEL")), + new EmptyBorder(-3, + 0, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0))); + + //add components + mTokenList = new JComboBox(); + mTokenList.addItemListener(this); + mCertList = new JComboBox(); + mCertList.addItemListener(this); + JLabel label1 = makeJLabel("TOKEN"); + JLabel label2 = makeJLabel("CERTIFICATE"); + CMSAdminUtil.addEntryField(panel, label1, mTokenList, label2, mCertList, gbc); + return panel; + } + + /** + * The certificates used by each subsystem are stored as cert list + * strings in the resource file using the PR_ prefix tags. + */ + private void updateCertSelection() { + //get installed subsystem + Vector v = mServerInfo.getInstalledSubsystems(); + + //add default system certificate list + String certs; + try { + certs = mResource.getString("ENCRYPTION_SERVER_CERTS"); + } catch (MissingResourceException e) { + Debug.println("ERROR: unable retrieving server default cert list"); + certs = ""; + } + if (!certs.trim().equals("")) { + StringTokenizer tokenizer = new StringTokenizer(certs, ","); + while (tokenizer.hasMoreTokens()) { + String certname = tokenizer.nextToken().trim(); + loadCertList(certname); + } + } + + //create additional subsystem certificate list + for (int i=0; i< v.size(); i++) { + String name = (String)v.elementAt(i); + try { + String certlist = mResource.getString(PANEL_NAME+"_"+name+"_CERTS"); + if (!certlist.trim().equals("")) { + StringTokenizer tokenizer = new StringTokenizer(certlist, ","); + while (tokenizer.hasMoreTokens()) { + String certname = tokenizer.nextToken().trim(); + loadCertList(certname); + } + } + } catch (MissingResourceException e) { + Debug.println("ERROR: unable retrieving subsystem certificate list: "+name); + } + } + } + + //register the certificate and mapping entry + private void loadCertList(String certTag) { + //add to selection list + String name; + try { + name = mResource.getString("ENCRYPTION_COMBOBOX_SELECT_VALUE_"+certTag); + } catch (MissingResourceException e) { + Debug.println("ERROR: cert resource not found: "+certTag); + return; + } + mSelection.addItem(name); + mCertMapping.put(name, new CipherEntryData(certTag)); + } + + private static void addTopEntryField(JPanel panel, JComponent label, + JComponent field, GridBagConstraints gbc) { + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.gridx = 0; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + panel.add( label, gbc ); + + gbc.gridx++; + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + 0,DIFFERENT_COMPONENT_SPACE); + panel.add( field, gbc ); + } + + private static void addButtonEntryField(JPanel panel, + JComponent field, GridBagConstraints gbc) { + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.gridx = 0; + gbc.anchor = gbc.NORTHEAST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0); + //gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + panel.add(new JLabel("")); + + gbc.gridx++; + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + //gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE, + // 0,DIFFERENT_COMPONENT_SPACE); + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + 0,COMPONENT_SPACE); + panel.add( field, gbc ); + } + + private static void addButtonEntryField(JPanel panel, JComponent label, + JComponent field, GridBagConstraints gbc) { + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.gridx = 0; + gbc.anchor = gbc.NORTHEAST; + //gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0); + panel.add(new JLabel("")); + + gbc.gridx++; + gbc.weightx = 1.0; + panel.add( label, gbc ); + + gbc.gridx++; + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + //gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE, + //0,DIFFERENT_COMPONENT_SPACE); + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + 0,COMPONENT_SPACE); + panel.add( field, gbc ); + } + + private static void addButtonEntryField(JPanel panel, JComponent label, + JComponent field, JComponent field1, GridBagConstraints gbc) { + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.gridx = 0; + gbc.anchor = gbc.NORTHEAST; + //gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE,0,0); + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0); + panel.add(new JLabel("")); + + gbc.gridx++; + gbc.weightx = 1.0; + panel.add( label, gbc ); + + gbc.gridx++; + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + //gbc.gridwidth = gbc.REMAINDER; + //gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE, + // 0,DIFFERENT_COMPONENT_SPACE); + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + 0,COMPONENT_SPACE); + panel.add( field, gbc ); + + gbc.gridx++; + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + //gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE, + // 0,DIFFERENT_COMPONENT_SPACE); + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + 0,COMPONENT_SPACE); + panel.add( field1, gbc ); + } + + /*========================================================== + * SEND STUFF TO SERVER + *==========================================================*/ + + //retrieve security information from the server side + private NameValuePairs updateSecurityInformation() + throws EAdminException + { + Debug.println("Get Security Information"); + NameValuePairs nvp = new NameValuePairs(); + nvp.put(Constants.PR_CIPHER_PREF, ""); + nvp.put(Constants.PR_CIPHER_VERSION, ""); + nvp.put(Constants.PR_CIPHER_FORTEZZA, ""); + nvp.put(Constants.PR_TOKEN_LIST, ""); + + //create installed certificate list data request + for (Enumeration e = mCertMapping.elements(); e.hasMoreElements() ;) { + CipherEntryData data = (CipherEntryData)e.nextElement(); + nvp.put(data.getTagName(), ""); + } + + NameValuePairs response; + + response = mConnection.read(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_ENCRYPTION, + Constants.RS_ID_CONFIG, + nvp); + + Debug.println("Received: "+response.toString()); + + return response; + } + + //modify cipher preference + private void updateCipherPref(String list) { + Debug.println("Set Cipher Preference: "+list); + + NameValuePairs nvp = new NameValuePairs(); + nvp.put(Constants.PR_CIPHER_PREF, list); + + //send to server + try { + mConnection.modify(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_ENCRYPTION, + Constants.RS_ID_CONFIG, + nvp); + } catch(EAdminException e) { + //display error dialog + CMSAdminUtil.showErrorDialog(mParent.getResourceModel().getFrame(), mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + } + + //modify certificate mapping + private boolean updateCertMap(NameValuePairs config) { + Debug.println("Set Certificate Mapping: "+config.toString()); + + //send to server + try { + mConnection.modify(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_ENCRYPTION, + Constants.RS_ID_CONFIG, + config); + } catch(EAdminException e) { + //display error dialog + CMSAdminUtil.showErrorDialog(mParent.getResourceModel().getFrame(), mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return false; + } + + return true; + } + +} + +//internal data structure +class CipherEntryData { + + String mTag; + String mToken; + String mCert; + + public CipherEntryData(String tag) { + mTag = tag; + } + + public void setData(String token, String cert) { + mToken = token; + mCert = cert; + } + + public String getCertName() { + return mCert; + } + + public String getTokenName() { + return mToken; + } + + public String getTagName() { + return mTag; + } + + public String toString() { + return mTag+"-"+mToken+":"+mCert; + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSErrorLogPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSErrorLogPanel.java new file mode 100644 index 000000000..23b4ececa --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSErrorLogPanel.java @@ -0,0 +1,180 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; + +import java.awt.event.*; + +/** + * Error Log Setting Tab to be displayed at the right hand side + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSErrorLogPanel extends CMSBaseLogPanel { + + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "ERRORLOG"; + private CMSTabPanel mParent; + private static final String HELPINDEX = "configuration-logs-error-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSErrorLogPanel(CMSTabPanel parent, boolean isNT) { + super(PANEL_NAME, parent); + mParent = parent; + mHelpToken = HELPINDEX; + mIsNT = isNT; + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * Actual Instantiation of the UI components + */ + public void init() { + Debug.println("ErrorLogPanel: init()"); + super.init(); + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvp = new NameValuePairs(); + nvp.put(Constants.PR_LOG_ENABLED, ""); + nvp.put(Constants.PR_LOG_LEVEL, ""); + nvp.put(Constants.PR_LOG_BUFFERSIZE, ""); + //nvp.add(Constants.PR_LOG_EXPIRED_TIME, ""); + //nvp.add(Constants.PR_LOG_FILENAME, ""); + //nvp.add(Constants.PR_LOG_FLUSHINTERVAL, ""); + nvp.put(Constants.PR_LOG_MAXFILESIZE, ""); + nvp.put(Constants.PR_LOG_ROLLEROVER_INTERVAL, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_LOG_ADMIN, + ScopeDef.SC_ERRORLOG, Constants.RS_ID_CONFIG, nvp); + + parseVals(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + setValues(); + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + private void parseVals(NameValuePairs nvp) { + if (nvp.get(Constants.PR_LOG_ENABLED).equalsIgnoreCase( + Constants.TRUE)) + activateLog.setSelected(true); + else + activateLog.setSelected(false); + mLevel = Integer.parseInt(nvp.get(Constants.PR_LOG_LEVEL)); + mlogBufSizTextData = nvp.get(Constants.PR_LOG_BUFFERSIZE); + mlogMaxSizTextData = nvp.get(Constants.PR_LOG_MAXFILESIZE); + int val = + Integer.parseInt(nvp.get(Constants.PR_LOG_ROLLEROVER_INTERVAL)); + mFrequency = getRollOverIndex(val); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + // check blank fields + if ((mlogMaxSizText.getText().trim().equals("")) || + (mlogBufSizText.getText().trim().equals("")) ) { + showMessageDialog("BLANKFIELD"); + return false; + } + + String bufSize = mlogBufSizText.getText().trim(); + String maxSize = mlogMaxSizText.getText().trim(); + + try { + int val1 = Integer.parseInt(bufSize); + int val2 = Integer.parseInt(maxSize); + if (val1 <= 0 || val2 <= 0) { + showMessageDialog("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + + NameValuePairs nvp = new NameValuePairs(); + + if (activateLog.isSelected()) + nvp.put(Constants.PR_LOG_ENABLED, Constants.TRUE); + else + nvp.put(Constants.PR_LOG_ENABLED, Constants.FALSE); + String str = "" + mLogLevel.getSelectedIndex(); + nvp.put(Constants.PR_LOG_LEVEL, str); + nvp.put(Constants.PR_LOG_BUFFERSIZE, mlogBufSizText.getText().trim()); + //nvp.add(Constants.PR_LOG_EXPIRED_TIME, ""); + //nvp.add(Constants.PR_LOG_FILENAME, ""); + //nvp.add(Constants.PR_LOG_FLUSHINTERVAL, ""); + nvp.put(Constants.PR_LOG_MAXFILESIZE, mlogMaxSizText.getText().trim()); + + str = "" + getRollOverTime(mlogFQC.getSelectedIndex()); + nvp.put(Constants.PR_LOG_ROLLEROVER_INTERVAL, str); + + mModel.progressStart(); + try { + mAdmin.modify(DestDef.DEST_LOG_ADMIN, + ScopeDef.SC_ERRORLOG, Constants.RS_ID_CONFIG, nvp); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + mModel.progressStop(); + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSKRAAutoPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSKRAAutoPanel.java new file mode 100644 index 000000000..f408e7297 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSKRAAutoPanel.java @@ -0,0 +1,220 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * KRA recovery management tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSKRAAutoPanel extends CMSBaseUGTab { + private static String PANEL_NAME = "AUTORECOVERYMGMT"; + private CMSBaseResourceModel mModel; + private JButton mEnableAuto; + private AdminConnection mAdmin; + private String mEnableLabel; + private String mEnableTTip; + private String mDisableLabel; + private String mDisableTTip; + private JButton mRefresh, mHelp; + private JLabel mStatus; + private String mEnableStatus; + private String mEnableStatusTTip; + private String mDisableStatus; + private String mDisableStatusTTip; + private static final String HELPINDEX = + "configuration-kra-autorecovery-help"; + + public CMSKRAAutoPanel(CMSUGTabPanel parent) { + super(PANEL_NAME, parent.getResourceModel()); + mModel = parent.getResourceModel(); + mAdmin = mModel.getServerInfo().getAdmin(); + mDisableTTip = mResource.getString(PANEL_NAME + "_BUTTON_"+ + "DISABLEAUTO_TTIP"); + mDisableLabel = mResource.getString(PANEL_NAME + "_BUTTON_"+ + "DISABLEAUTO_LABEL"); + mEnableTTip = mResource.getString(PANEL_NAME + "_BUTTON_"+ + "ENABLEAUTO_TTIP"); + mEnableLabel = mResource.getString(PANEL_NAME + "_BUTTON_"+ + "ENABLEAUTO_LABEL"); + mEnableStatus = mResource.getString(PANEL_NAME + "_LABEL_"+ + "ENABLESTATUS_LABEL"); + mEnableStatusTTip = mResource.getString(PANEL_NAME + "_LABEL_"+ + "ENABLESTATUS_TTIP"); + mDisableStatus = mResource.getString(PANEL_NAME + "_LABEL_"+ + "DISABLESTATUS_LABEL"); + mDisableStatusTTip = mResource.getString(PANEL_NAME + "_LABEL_"+ + "DISABLESTATUS_TTIP"); + mHelpToken = HELPINDEX; + } + + protected JPanel createListPanel() { + JPanel mainPanel = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mainPanel.setLayout(gb3); + + JPanel autoPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + autoPanel.setLayout(gb); + autoPanel.setBorder(makeTitledBorder("AUTO")); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridheight = gbc.REMAINDER; + gbc.gridwidth = gbc.REMAINDER; + gb3.setConstraints(autoPanel, gbc); + mainPanel.add(autoPanel); + + // Auto recovery + CMSAdminUtil.resetGBC(gbc); + JLabel autoLabel = makeJLabel("ENABLEAUTO"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridheight = gbc.REMAINDER; + gb.setConstraints(autoLabel, gbc); + autoPanel.add(autoLabel); + + // labels + CMSAdminUtil.resetGBC(gbc); + mStatus = makeJLabel("ENABLESTATUS"); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 0.0; + gbc.weighty = 0.0; + gbc.gridheight = gbc.REMAINDER; + gb.setConstraints(mStatus, gbc); + autoPanel.add(mStatus); + + CMSAdminUtil.resetGBC(gbc); + mEnableAuto = makeJButton("DISABLEAUTO"); + mEnableAuto.setPreferredSize(new Dimension(78, 23)); + mEnableAuto.setActionCommand("autoButton"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.weighty = 1.0; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gb.setConstraints(mEnableAuto, gbc); + autoPanel.add(mEnableAuto); + + refresh(); + return mainPanel; + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_AUTO_RECOVERY_ON, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_KRA_ADMIN, + ScopeDef.SC_AUTO_RECOVERY, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + } + mModel.progressStop(); + } + + protected void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_AUTO_RECOVERY_ON)) { + if (value.equals(Constants.TRUE)) { + setStatus(true); + //mEnableAuto.setText(mDisableLabel); + //mEnableAuto.setToolTipText(mDisableTTip); + } else { + setStatus(false); + //mEnableAuto.setText(mEnableLabel); + //mEnableAuto.setToolTipText(mEnableTTip); + } + } + } + } + + private void setStatus(boolean enabled) { + if (enabled) { + mEnableAuto.setText(mDisableLabel); + mEnableAuto.setToolTipText(mDisableTTip); + mStatus.setText(mEnableStatus); + mStatus.setToolTipText(mEnableStatusTTip); + } else { + mEnableAuto.setText(mEnableLabel); + mEnableAuto.setToolTipText(mEnableTTip); + mStatus.setText(mDisableStatus); + mStatus.setToolTipText(mDisableStatusTTip); + } + } + + public void actionPerformed(ActionEvent e) { + + if (e.getActionCommand().equals("autoButton")) { + String text = mEnableAuto.getText(); + if (text.equals(mEnableLabel)) { + JDialog enableDialog = new CMSAutoRecovery(mModel.getFrame(), + mAdmin, mEnableAuto); + } else { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_AUTO_RECOVERY_ON, Constants.FALSE); + try { + mAdmin.modify(DestDef.DEST_KRA_ADMIN, + ScopeDef.SC_AUTO_RECOVERY, Constants.RS_ID_CONFIG, nvps); + //mEnableAuto.setText(mEnableLabel); + //mEnableAuto.setToolTipText(mEnableTTip); + } catch (EAdminException ex) { + showErrorDialog(ex.toString()); + } + mModel.progressStop(); + } + refresh(); + } else if (e.getSource().equals(mRefresh)) { + refresh(); + } else if (e.getSource().equals(mHelp)) { + helpCallback(); + } + } + + public void mouseClicked(MouseEvent e) { + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSKRAPasswdPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSKRAPasswdPanel.java new file mode 100644 index 000000000..7c70dca7f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSKRAPasswdPanel.java @@ -0,0 +1,267 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.AdminConnection; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.*; +import java.util.*; +import java.awt.event.*; + +/** + * KRA password management tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSKRAPasswdPanel extends CMSBaseUGTab { + private static String PANEL_NAME = "KRAPASSWD"; + private CMSBaseResourceModel mModel; + private JButton mPwdBtn; + private AdminConnection mAdmin; + private JList mAgentList; + private DefaultListModel mAgentModel; + private Icon mUserIcon; + private JButton mRefresh, mHelp; + private static final String HELPINDEX = + "configuration-kra-agentpwd-help"; + private CMSUGTabPanel mParent = null; + + public CMSKRAPasswdPanel(CMSUGTabPanel parent) { + super(PANEL_NAME, parent.getResourceModel()); + mModel = parent.getResourceModel(); + mAdmin = mModel.getServerInfo().getAdmin(); + mParent = parent; + mHelpToken = HELPINDEX; + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_RECOVERY_AGENT, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_KRA_ADMIN, + ScopeDef.SC_RECOVERY, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + mParent.removeAll(); + //showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + } + + protected void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_RECOVERY_AGENT)) { + mAgentModel.removeAllElements(); + updateModel(value); + } + } + } + + private void updateModel(String value) { + String[] uids = getUIDs(value); + for (int i=0; i 0) + mAgentList.setSelectedIndex(0); + setSelectedItem(); + } + + private String[] getUIDs(String uids) { + StringTokenizer tokenizer = new StringTokenizer(uids, ","); + String[] vals = new String[tokenizer.countTokens()]; + int i=0; + while (tokenizer.hasMoreElements()) { + vals[i++] = (String)tokenizer.nextElement(); + } + CMSAdminUtil.bubbleSort(vals); + return vals; + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + JPanel mainPanel = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mainPanel.setLayout(gb3); + + JPanel listPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + listPanel.setLayout(gb); + listPanel.setBorder(makeTitledBorder("RECOVERYLIST")); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridheight = gbc.REMAINDER; + gbc.gridwidth = gbc.REMAINDER; + gb3.setConstraints(listPanel, gbc); + mainPanel.add(listPanel); + + // label for table + JLabel tablelbl = makeJLabel("RECOVERYLIST"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridx = 0; + gbc.gridy = 0; + //gbc.weightx = 1.0; + //gbc.weighty = 1.0; + gb.setConstraints(tablelbl, gbc); + listPanel.add(tablelbl); + + // agent table + mAgentModel = new DefaultListModel(); + mAgentList = makeJList(mAgentModel, 10); + mAgentList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + MouseListener mouseListener = new MouseAdapter() { + public void mouseClicked(MouseEvent e) { + if (e.getClickCount() == 2) + displayPasswordDialog(); + else + setSelectedItem(); + } + }; + + mAgentList.addMouseListener(mouseListener); + mUserIcon = CMSAdminUtil.getImage(CMSAdminResources.IMAGE_USER); + JScrollPane scrollPane = createScrollPane(mAgentList); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridx = 0; + gbc.gridy = 1; + gbc.gridheight = gbc.REMAINDER; + gb.setConstraints(scrollPane, gbc); + listPanel.add(scrollPane); + + // change password button + mPwdBtn = makeJButton("CHANGEPWD"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridx = 1; + gbc.gridy = 1; + gbc.gridheight = gbc.REMAINDER; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(mPwdBtn, gbc); + listPanel.add(mPwdBtn); + + refresh(); + + return mainPanel; + } + + private JScrollPane createScrollPane(JList listbox) { + + JScrollPane scrollPane = new JScrollPane(listbox, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane.setBackground(getBackground()); + scrollPane.setAlignmentX(LEFT_ALIGNMENT); + scrollPane.setAlignmentY(TOP_ALIGNMENT); + scrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + return scrollPane; + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } else if (e.getSource().equals(mHelp)) { + helpCallback(); + } else if (e.getSource().equals(mPwdBtn)) { + displayPasswordDialog(); + } + } + + public void displayPasswordDialog() { + Object[] values = mAgentList.getSelectedValues(); + if (values.length == 0) { + showMessageDialog("NOSELECTION"); + } else if (values.length > 1) { + showMessageDialog("MULTISELECTIONS"); + } else { + String str = ((JLabel)values[0]).getText(); + + // ensure the selected id is valid + refresh(); + int s = mAgentList.getModel().getSize(); + boolean foundID = false; + for (int i = 0; i < s; i++) { + JLabel l = (JLabel)mAgentList.getModel().getElementAt(i); + if (str.equals(l.getText())) { + foundID = true; + break; + } + } + if (foundID) { + JDialog pwdDialog = new CMSPasswordDialog(mModel.getFrame(), + mAdmin, str); + } else { + showErrorDialog("Invalid ID"); + } + } + } + + private void setSelectedItem() { + if (mAgentList.getSelectedIndex()< 0) { + mPwdBtn.setEnabled(false); + return; + } + + if (mAgentList.getSelectedIndex() >= 0) + mPwdBtn.setEnabled(true); + } + + public void mouseClicked(MouseEvent e) { +/* + if (e.getClickCount() == 2) + displayPasswordDialog(); + else + setSelectedItem(); +*/ + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSKRASchemePanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSKRASchemePanel.java new file mode 100644 index 000000000..34950b371 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSKRASchemePanel.java @@ -0,0 +1,198 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.AdminConnection; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * KRA scheme management tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSKRASchemePanel extends CMSBaseUGTab { + private static String PANEL_NAME = "SCHEMEMGMT"; + private CMSBaseResourceModel mModel; + private JButton mSchemeBtn; + private AdminConnection mAdmin; + private JLabel mAvailAgentLbl; + private JLabel mReqAgentLbl; + private String mAvailAgentStr; + private String mReqAgentStr; + private JButton mRefresh, mHelp; + private static final String HELPINDEX = + "configuration-kra-schememgt-help"; + private CMSUGTabPanel mParent = null; + + public CMSKRASchemePanel(CMSUGTabPanel parent) { + super(PANEL_NAME, parent.getResourceModel()); + mModel = parent.getResourceModel(); + mAdmin = mModel.getServerInfo().getAdmin(); + mAvailAgentStr = + mResource.getString(PANEL_NAME + "_LABEL_AVAILAGENT_LABEL"); + mReqAgentStr = + mResource.getString(PANEL_NAME + "_LABEL_REQAGENT_LABEL"); + mParent = parent; + mHelpToken = HELPINDEX; + } + +/* + public void init() { + GridBagLayout gbm = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gbm); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + JPanel agentPanel = createAgentPanel(); + gbm.setConstraints(agentPanel, gbc); + mCenterPanel.add(agentPanel); + + refresh(); + } +*/ + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_RECOVERY_N, ""); + nvps.put(Constants.PR_RECOVERY_M, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_KRA_ADMIN, + ScopeDef.SC_RECOVERY, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + mParent.removeAll(); + //showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + } + + protected void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_RECOVERY_N)) { + mAvailAgentLbl.setText(value); + } else if (name.equals(Constants.PR_RECOVERY_M)) { + mReqAgentLbl.setText(value); + } + } + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + JPanel listPanel = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + listPanel.setLayout(gb3); + + JPanel agentPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + agentPanel.setLayout(gb); + agentPanel.setBorder(makeTitledBorder("CURRENT")); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridheight = gbc.REMAINDER; + gbc.gridwidth = gbc.REMAINDER; + gb3.setConstraints(agentPanel, gbc); + listPanel.add(agentPanel); + + CMSAdminUtil.resetGBC(gbc); + JLabel label2 = makeJLabel("REQAGENT"); + mReqAgentLbl= new JLabel(""); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.EAST; + gbc. insets = new Insets(0,COMPONENT_SPACE,0,0); + gb.setConstraints(label2, gbc); + agentPanel.add(label2); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc. insets = new Insets(0,COMPONENT_SPACE, + 0,COMPONENT_SPACE); + gb.setConstraints(mReqAgentLbl, gbc); + agentPanel.add(mReqAgentLbl); + + mSchemeBtn = makeJButton("CHANGESCHEME"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(mSchemeBtn, gbc); + agentPanel.add(mSchemeBtn); + + CMSAdminUtil.resetGBC(gbc); + JLabel label1 = makeJLabel("AVAILAGENT"); + mAvailAgentLbl = new JLabel(""); + gbc.gridheight = gbc.REMAINDER; + CMSAdminUtil.addEntryField(agentPanel, label1, mAvailAgentLbl, gbc); + + refresh(); + return listPanel; + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mSchemeBtn)) { + try { + MNSchemeWizardInfo info = new MNSchemeWizardInfo(mAdmin, + Integer.parseInt(mReqAgentLbl.getText()), + Integer.parseInt(mAvailAgentLbl.getText())); + MNSchemeWizard wizard = new MNSchemeWizard(mModel.getFrame(), info); + } catch(NumberFormatException ex) { + Debug.println("CMSKRASchemePanel: MN not intereger "+ex.toString()); + showErrorDialog(mResource.getString("SCHEMEMGMT_DIALOG_MNFORMAT_MESSAGE")); + } + refresh(); + } else if (e.getSource().equals(mRefresh)) { + refresh(); + } else if (e.getSource().equals(mHelp)) { + helpCallback(); + } + } + + public void mouseClicked(MouseEvent e) { + } + +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSLDAPSettingPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSLDAPSettingPanel.java new file mode 100644 index 000000000..641a6641e --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSLDAPSettingPanel.java @@ -0,0 +1,362 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * LDAP server setting tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSLDAPSettingPanel extends CMSBaseTab { + + private static String PANEL_NAME = "LDAPSETTING"; + private static final String HELPINDEX = + "configuration-database-settings-help"; + private JTextField mHostNameText; + private JTextField mPortText; + private JTextField mBindAsText; + private JTextField mMaxConnsText; + private JTextField mMinConnsText; + private JPasswordField mPasswordText; + private JPasswordField mPasswordAgainText; + private JCheckBox mEnable; + private Color mActiveColor; + protected AdminConnection mAdmin; + protected CMSBaseResourceModel mModel; + private String mServletName; + private CMSTabPanel mParent; + private static final int MAX_PORT = 65535; + //private JComboBox mVersionBox; + + public CMSLDAPSettingPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mHelpToken = HELPINDEX; + mServletName = getServletName(PANEL_NAME); + mModel = parent.getResourceModel(); + mParent = parent; + } + + public void init() { + mAdmin = mModel.getServerInfo().getAdmin(); + JPanel serverInfo = new JPanel(); + serverInfo.setBorder(makeTitledBorder("SETTING")); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mCenterPanel.setLayout(gb); + + //add the destination panel + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(serverInfo, gbc); + mCenterPanel.add(serverInfo); + + GridBagLayout gb1 = new GridBagLayout(); + serverInfo.setLayout(gb1); + + // add host name label and text field + CMSAdminUtil.resetGBC(gbc); + JLabel hostLabel = makeJLabel("HOST"); + mHostNameText = makeJTextField(30); + mActiveColor = mHostNameText.getBackground(); + CMSAdminUtil.addEntryField(serverInfo, hostLabel, mHostNameText, gbc); + + // add port number label + CMSAdminUtil.resetGBC(gbc); + JLabel portLabel = makeJLabel("PORT"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0); + gb1.setConstraints(portLabel, gbc); + serverInfo.add(portLabel); + + // add port number text field + CMSAdminUtil.resetGBC(gbc); + mPortText = makeJTextField(10); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + //gbc.weightx = 0.0; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gb1.setConstraints(mPortText, gbc); + serverInfo.add(mPortText); + + // add check box +/* + CMSAdminUtil.resetGBC(gbc); + mSecurePort = makeJCheckBox("SECUREPORT"); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE - COMPONENT_SPACE,0,COMPONENT_SPACE); + gb1.setConstraints(mSecurePort, gbc); + serverInfo.add(mSecurePort); +*/ + + // add base DN label and text field +/* + CMSAdminUtil.resetGBC(gbc); + JLabel baseDNLabel = makeJLabel("BASEDN"); + mBaseDNText = makeJTextField(30); + CMSAdminUtil.addEntryField(serverInfo, baseDNLabel, mBaseDNText, gbc); +*/ + + // add bind as label and text field + CMSAdminUtil.resetGBC(gbc); + JLabel bindAsLabel = makeJLabel("BINDAS"); + mBindAsText = makeJTextField(30); + CMSAdminUtil.addEntryField(serverInfo, bindAsLabel, mBindAsText, gbc); + + // add password label and text field +/* + CMSAdminUtil.resetGBC(gbc); + JLabel passwordLabel = makeJLabel("PWD"); + mPasswordText = makeJPasswordField(20); + CMSAdminUtil.addEntryField(serverInfo, passwordLabel, mPasswordText, gbc); +*/ + + // add password again label and text field +/* + CMSAdminUtil.resetGBC(gbc); + JLabel passwordAgainLabel = makeJLabel("PWDAGAIN"); + mPasswordAgainText = makeJPasswordField(30); + CMSAdminUtil.addEntryField(serverInfo, passwordAgainLabel, + mPasswordAgainText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel versionLabel = makeJLabel("VERSION"); + mVersionBox = makeJComboBox("VERSION"); + JLabel dummy = new JLabel(" "); + CMSAdminUtil.addEntryField(serverInfo, versionLabel, mVersionBox, + dummy, gbc); +*/ + + // add maxconns label text field + CMSAdminUtil.resetGBC(gbc); + JLabel maxConnsLabel = makeJLabel("MAXCONNS"); + mMaxConnsText = makeJTextField(30); + CMSAdminUtil.addEntryField(serverInfo, maxConnsLabel, mMaxConnsText, gbc); + + // add maxconns label text field + CMSAdminUtil.resetGBC(gbc); + JLabel minConnsLabel = makeJLabel("MINCONNS"); + mMinConnsText = makeJTextField(30); + CMSAdminUtil.addEntryField(serverInfo, minConnsLabel, mMinConnsText, gbc); + + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_HOST_NAME, ""); + nvps.put(Constants.PR_LDAP_PORT, ""); + //nvps.add(Constants.PR_SECURE_PORT_ENABLED, ""); + //nvps.add(Constants.PR_BASE_DN, ""); + nvps.put(Constants.PR_BIND_DN, ""); + nvps.put(Constants.PR_LDAP_VERSION, ""); + nvps.put(Constants.PR_LDAP_MAX_CONNS, ""); + nvps.put(Constants.PR_LDAP_MIN_CONNS, ""); + + try { + NameValuePairs val = mAdmin.read(mServletName, + ScopeDef.SC_LDAP, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + protected String getServletName(String panelName) { + if (panelName.equals("LDAPSETTING")) + return DestDef.DEST_SERVER_ADMIN; + else if (panelName.equals("CALDAPSETTING")) + return DestDef.DEST_CA_ADMIN; + return DestDef.DEST_RA_ADMIN; + } + + protected void populate(NameValuePairs nvps) { + String version = ""; + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_HOST_NAME)) { + mHostNameText.setText(value); + } else if (name.equals(Constants.PR_LDAP_PORT)) { + mPortText.setText(value); + } else if (name.equals(Constants.PR_SECURE_PORT_ENABLED)) { +/* + if (nvp.getValue().equals(Constants.TRUE)) + mSecurePort.setSelected(true); + else + mSecurePort.setSelected(false); +*/ + } else if (name.equals(Constants.PR_BASE_DN)) { + //mBaseDNText.setText(nvp.getValue()); + } else if (name.equals(Constants.PR_BIND_DN)) { + mBindAsText.setText(value); + } else if (name.equals(Constants.PR_ENABLE)) { + if (value.equals(Constants.TRUE)) + mEnable.setSelected(true); + else + mEnable.setSelected(false); + } else if (name.equals(Constants.PR_LDAP_VERSION)) { + version = value; + } else if (name.equals(Constants.PR_LDAP_MIN_CONNS)) { + mMinConnsText.setText(value); + } else if (name.equals(Constants.PR_LDAP_MAX_CONNS)) { + mMaxConnsText.setText(value); + } + + } + +/* + if (version.equals("")) + mVersionBox.setSelectedIndex(1); + else + mVersionBox.setSelectedItem(version); +*/ + //mPasswordText.setText(""); + //mPasswordAgainText.setText(""); + } + + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + // check blank fields + String host = mHostNameText.getText().trim(); + String port = mPortText.getText().trim(); + //String baseDN = mBaseDNText.getText().trim(); + String bindAs = mBindAsText.getText().trim(); + String maxConns = mMaxConnsText.getText().trim(); + String minConns = mMinConnsText.getText().trim(); + + //if (host.equals("") || port.equals("") || baseDN.equals("") || + // bindAs.equals("")) { + if (host.equals("") || port.equals("") || bindAs.equals("") || maxConns.equals("") || minConns.equals("")) { + showMessageDialog("BLANKFIELD"); + return false; + } + + try { + int num = Integer.parseInt(port); + if (num <= 0 || num > MAX_PORT) { + showMessageDialog("PORTRANGE"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + + try { + int max = Integer.parseInt(maxConns); + int min = Integer.parseInt(minConns); + if ((max < min) || (max <0) || (min <0)) { + showMessageDialog("MAXMINRANGE"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("MAXMINNUMBERFORMAT"); + return false; + } + + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_HOST_NAME, host); + nvps.put(Constants.PR_LDAP_PORT, port); + //nvps.add(Constants.PR_BASE_DN, baseDN); + nvps.put(Constants.PR_BIND_DN, bindAs); + nvps.put(Constants.PR_LDAP_MAX_CONNS, maxConns); + nvps.put(Constants.PR_LDAP_MIN_CONNS, minConns); +/* + nvps.add(Constants.PR_LDAP_VERSION, + (String)mVersionBox.getSelectedItem()); +*/ + +/* + if (mSecurePort.isSelected()) + nvps.add(Constants.PR_SECURE_PORT_ENABLED, Constants.TRUE); + else + nvps.add(Constants.PR_SECURE_PORT_ENABLED, Constants.FALSE); +*/ + +/* + String passwd = mPasswordText.getText(); + String passwdagain = mPasswordAgainText.getText(); + + if (!passwd.equals("") && !passwdagain.equals("")) { + if (passwd.equals(passwdagain)) { + nvps.add(Constants.PR_BIND_PASSWD, passwd); + } else { + showMessageDialog("UNMATCHEDPASSWD"); + return false; + } + } else if (((!passwd.equals("")) && passwdagain.equals("")) || + ((!passwd.equals("")) && passwdagain.equals(""))) { + showMessageDialog("UNMATCHEDPASSWD"); + return false; + } +*/ + + mModel.progressStart(); + try { + mAdmin.modify(mServletName, ScopeDef.SC_LDAP, + Constants.RS_ID_CONFIG, nvps, false); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + + mModel.progressStop(); + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSNetworkPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSNetworkPanel.java new file mode 100644 index 000000000..03458d2b1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSNetworkPanel.java @@ -0,0 +1,465 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; +import com.netscape.management.client.console.ConsoleInfo; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.text.*; +import netscape.ldap.*; + +/** + * Network Connection Setting Tab to be displayed at the right hand side + * + * @author Christine Ho + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CMSNetworkPanel extends CMSBaseTab { + + /*========================================================== + * variables + *==========================================================*/ + private final static String PANEL_NAME = "NETWORK"; + private final static String DISABLED = "-1"; + + private static final int MAX_PORT = 65535; + private static final int MIN_PORT = 1; + + private Color mActiveColor; + + // TextField for port + private JTextField mAdminSSLPortText; + private JTextField mAgentSSLPortText; + private JTextField mGatewayPortText; + private JTextField mGatewaySSLPortText; + + // TextField for Backlog + private JTextField mAdminSSLBacklogText; + private JTextField mAgentSSLBacklogText; + private JTextField mGatewayBacklogText; + private JTextField mGatewaySSLBacklogText; + + // Label for EE port + private JLabel mPortLabel; + private JLabel mEnableLabel; + private JLabel mBacklogLabel; + + // Label for SSL EE port + private JLabel mSSLPortLabel; + private JLabel mSSLBacklogLabel; + + private JCheckBox mEnable; + + private CMSBaseResourceModel mModel; + protected AdminConnection mAdmin; + private boolean mBlankFieldError = false; + private boolean mNumberError = false; + private CMSTabPanel mParent; + private static final String HELPINDEX = "configuration-system-network-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSNetworkPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mParent = parent; + mModel = parent.getResourceModel(); + mHelpToken = HELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * Actual Instanciation of the UI components + */ + public void init() { + Debug.println("NetworkPanel: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + + // admin panel + JPanel adminPanel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + adminPanel.setLayout(gb1); + adminPanel.setBorder(makeTitledBorder("ADMIN")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(adminPanel, gbc); + mCenterPanel.add(adminPanel); + + CMSAdminUtil.resetGBC(gbc); + JLabel adminSSLport = makeJLabel("ADMINSSLPORT"); + mAdminSSLPortText = makeJTextField(10); + JLabel adminBacklog = makeJLabel("ADMINBACKLOG"); + mAdminSSLBacklogText = makeJTextField(10); + JLabel dummy1 = new JLabel(" "); + CMSAdminUtil.addEntryField(adminPanel, adminSSLport, + mAdminSSLPortText, adminBacklog, mAdminSSLBacklogText, dummy1, gbc); + + mActiveColor = mAdminSSLPortText.getBackground(); + + // gateway panel + JPanel agentPanel = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + agentPanel.setLayout(gb2); + agentPanel.setBorder(makeTitledBorder("AGENT")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(agentPanel, gbc); + mCenterPanel.add(agentPanel); + + CMSAdminUtil.resetGBC(gbc); + JLabel agentPort = makeJLabel("AGENTSSLPORT"); + mAgentSSLPortText = makeJTextField(10); + JLabel agentBacklog = makeJLabel("SECUREAGENTBACKLOG"); + mAgentSSLBacklogText = makeJTextField(10); + JLabel dummy = new JLabel(" "); + CMSAdminUtil.addEntryField(agentPanel, agentPort, mAgentSSLPortText, + agentBacklog, mAgentSSLBacklogText, dummy, gbc); + + JPanel gatewayPanel = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + gatewayPanel.setLayout(gb3); + gatewayPanel.setBorder(makeTitledBorder("EE")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(gatewayPanel, gbc); + mCenterPanel.add(gatewayPanel); + + CMSAdminUtil.resetGBC(gbc); + mPortLabel = makeJLabel("GATEWAYPORT"); + mGatewayPortText = makeJTextField(10); + mBacklogLabel = makeJLabel("EEBACKLOG"); + mGatewayBacklogText = makeJTextField(10); + mEnableLabel = makeJLabel("ENABLED"); + mEnable = makeJCheckBox(); + CMSAdminUtil.addEntryField(gatewayPanel, mPortLabel, mGatewayPortText, + mBacklogLabel, mGatewayBacklogText, mEnableLabel, mEnable, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSSLPortLabel = makeJLabel("GATEWAYSSLPORT"); + mGatewaySSLPortText = makeJTextField(10); + mSSLBacklogLabel = makeJLabel("SECUREEEBACKLOG"); + mGatewaySSLBacklogText = makeJTextField(10); + JLabel dummy2 = new JLabel(" "); + CMSAdminUtil.addEntryField(gatewayPanel, mSSLPortLabel, + mGatewaySSLPortText, mSSLBacklogLabel, mGatewaySSLBacklogText, + dummy2, gbc); + + refresh(); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + String adminSSLPortStr = mAdminSSLPortText.getText().trim(); + String gatewayPortStr = mGatewayPortText.getText().trim(); + String gatewaySSLPortStr = mGatewaySSLPortText.getText().trim(); + String agentSSLPortStr = mAgentSSLPortText.getText().trim(); + String adminSSLBacklogStr = mAdminSSLBacklogText.getText().trim(); + String gatewayBacklogStr = mGatewayBacklogText.getText().trim(); + String gatewaySSLBacklogStr = mGatewaySSLBacklogText.getText().trim(); + String agentSSLBacklogStr = mAgentSSLBacklogText.getText().trim(); + //String docroot = mDocRootText.getText().trim(); + + //check blank fields + if (adminSSLPortStr.equals("") || + (gatewayPortStr.equals("") && mGatewayPortText.isEnabled()) || + (gatewaySSLPortStr.equals("") && mGatewaySSLPortText.isEnabled()) || + agentSSLPortStr.equals("") || + adminSSLBacklogStr.equals("") || + (gatewayBacklogStr.equals("") && mGatewayBacklogText.isEnabled()) || + (gatewaySSLBacklogStr.equals("") && mGatewaySSLBacklogText.isEnabled()) || + agentSSLBacklogStr.equals("") ) { + showMessageDialog("BLANKFIELD"); + return false; + } + + //check format and range number + int adminSSLPort; + int gatewayPort; + int gatewaySSLPort; + int agentSSLPort; + int adminSSLBacklog; + int gatewayBacklog; + int gatewaySSLBacklog; + int agentSSLBacklog; + + try { + adminSSLPort = Integer.parseInt(adminSSLPortStr); + gatewayPort = Integer.parseInt(gatewayPortStr); + gatewaySSLPort = Integer.parseInt(gatewaySSLPortStr); + agentSSLPort = Integer.parseInt(agentSSLPortStr); + adminSSLBacklog = Integer.parseInt(adminSSLBacklogStr); + gatewayBacklog = Integer.parseInt(gatewayBacklogStr); + gatewaySSLBacklog = Integer.parseInt(gatewaySSLBacklogStr); + agentSSLBacklog = Integer.parseInt(agentSSLBacklogStr); + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + + if (adminSSLBacklog <= 0 || gatewayBacklog <= 0 || + gatewaySSLBacklog <= 0 || agentSSLBacklog <= 0) { + showMessageDialog("NEGATIVE"); + return false; + } + if ((adminSSLPort < MIN_PORT) || (adminSSLPort > MAX_PORT) || + (gatewayPort < MIN_PORT) || (gatewayPort > MAX_PORT) || + (agentSSLPort < MIN_PORT) || (agentSSLPort > MAX_PORT) || + (gatewaySSLPort < MIN_PORT) || (gatewaySSLPort > MAX_PORT)) { + showMessageDialog("PORTRANGE"); + return false; + } else { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_ADMIN_S_PORT, adminSSLPortStr); + nvps.put(Constants.PR_GATEWAY_PORT, gatewayPortStr); + nvps.put(Constants.PR_AGENT_S_PORT, agentSSLPortStr); + + if (mGatewaySSLPortText.isEnabled()) { + nvps.put(Constants.PR_GATEWAY_S_PORT, gatewaySSLPortStr); + } + + if (mGatewaySSLBacklogText.isEnabled()) { + nvps.put(Constants.PR_GATEWAY_S_BACKLOG, gatewaySSLBacklogStr); + } + + if (mEnable.isSelected()) { + nvps.put(Constants.PR_GATEWAY_PORT_ENABLED, Constants.TRUE); + nvps.put(Constants.PR_ADMIN_S_BACKLOG, adminSSLBacklogStr); + nvps.put(Constants.PR_GATEWAY_BACKLOG, gatewayBacklogStr); + nvps.put(Constants.PR_AGENT_S_BACKLOG, agentSSLBacklogStr); + } else + nvps.put(Constants.PR_GATEWAY_PORT_ENABLED, Constants.FALSE); + + try { + mAdmin.modify(DestDef.DEST_SERVER_ADMIN, ScopeDef.SC_NETWORK, + Constants.RS_ID_CONFIG, nvps); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + + ConsoleInfo consoleInfo = mModel.getConsoleInfo(); + LDAPConnection conn = consoleInfo.getLDAPConnection(); + try { + LDAPAttribute attr = new LDAPAttribute("nsserverport", adminSSLPortStr); + LDAPModification singleChange = new LDAPModification(LDAPModification.REPLACE, + attr); + conn.modify(consoleInfo.getCurrentDN(), singleChange); + } catch (Exception eee) { + } + mModel.progressStop(); + } + + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + //clearDirtyFlag(); + return true; + } + + /** + * refresh the panel and update data + */ + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_ADMIN_S_PORT, ""); + nvps.put(Constants.PR_AGENT_S_PORT, ""); + nvps.put(Constants.PR_GATEWAY_S_PORT, ""); + nvps.put(Constants.PR_GATEWAY_PORT, ""); + nvps.put(Constants.PR_GATEWAY_PORT_ENABLED, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_NETWORK, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + if (e.getSource().equals(mEnable)) { + if (mEnable.isSelected()) { + enableFields(true, mActiveColor); + } else { + enableFields(false, getBackground()); + } + } + } + + private void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String str = nvps.get(name); + + if (name.equals(Constants.PR_GATEWAY_PORT_ENABLED)) { + mEnable.setSelected(getBoolean(str)); + } else { + if (!validate(str)) + continue; + + if (name.equals(Constants.PR_AGENT_S_PORT)) { + mAgentSSLPortText.setText(str); + } else if (name.equals(Constants.PR_ADMIN_S_PORT)) { + mAdminSSLPortText.setText(str); + } else if (name.equals(Constants.PR_GATEWAY_S_PORT)) { + if (str.equals(DISABLED)) { + mGatewaySSLPortText.setText(""); + enableFields(mSSLPortLabel, mGatewaySSLPortText, false, + getBackground()); + } else { + mGatewaySSLPortText.setText(str); + enableFields(mSSLPortLabel, mGatewaySSLPortText, true, + mActiveColor); + } + } else if (name.equals(Constants.PR_GATEWAY_PORT)) { + if (str.equals(DISABLED)) { + mGatewayPortText.setText(""); + enableFields(mEnable, false); + } else { + mGatewayPortText.setText(str); + enableFields(mEnable, true); + } + } else if (name.equals(Constants.PR_ADMIN_S_BACKLOG)) { + mAdminSSLBacklogText.setText(str); + } else if (name.equals(Constants.PR_AGENT_S_BACKLOG)) { + mAgentSSLBacklogText.setText(str); + } else if (name.equals(Constants.PR_GATEWAY_S_BACKLOG)) { + if (str.equals(DISABLED)) { + enableFields(mSSLBacklogLabel, mGatewaySSLBacklogText, + false, getBackground()); + mGatewaySSLBacklogText.setText(""); + } else { + enableFields(mSSLBacklogLabel, mGatewaySSLBacklogText, + true, mActiveColor); + mGatewaySSLBacklogText.setText(str); + } + } else if (name.equals(Constants.PR_GATEWAY_BACKLOG)) { + if (str.equals(DISABLED)) { + enableFields(mEnable, false); + mGatewayBacklogText.setText(""); + } else { + enableFields(mEnable, true); + mGatewayBacklogText.setText(str); + } + } + } + } + + if (mEnable.isSelected()) + enableFields(true, mActiveColor); + else + enableFields(false, getBackground()); + } + + private boolean getBoolean(String val) { + if (val.equals(Constants.TRUE)) + return true; + return false; + } + + private void enableFields(boolean enabled, Color color) { + mGatewayPortText.setEnabled(enabled); + mGatewayPortText.setEditable(enabled); + mGatewayPortText.setBackground(color); + mGatewayBacklogText.setEnabled(enabled); + mGatewayBacklogText.setEditable(enabled); + mGatewayBacklogText.setBackground(color); + mPortLabel.setEnabled(enabled); + mBacklogLabel.setEnabled(enabled); + + invalidate(); + validate(); + repaint(1); + } + + private void enableFields(JLabel label, JTextComponent text, + boolean enabled, Color color) { + label.setEnabled(enabled); + text.setEnabled(enabled); + text.setEditable(enabled); + text.setBackground(color); + CMSAdminUtil.repaintComp(label); + CMSAdminUtil.repaintComp(text); + } + + private void enableFields(JCheckBox comp, boolean enabled) { + comp.setEnabled(enabled); + CMSAdminUtil.repaintComp(comp); + } + + private boolean validate(String str) { + if (str.equals("")) { + if (!mBlankFieldError) { + showMessageDialog("BLANKFIELD"); + mBlankFieldError = true; + } + return false; + } + + try { + int sslPort = Integer.parseInt(str); + } catch (NumberFormatException e) { + if (!mNumberError) { + showMessageDialog("NUMBERFORMAT"); + mNumberError = true; + } + return false; + } + return true; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSOCSPGeneralPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSOCSPGeneralPanel.java new file mode 100644 index 000000000..37dfbef44 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSOCSPGeneralPanel.java @@ -0,0 +1,219 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import java.math.*; + +/** + * OCSP General Setting + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSOCSPGeneralPanel extends CMSBaseTab implements ItemListener { + + private static String PANEL_NAME = "OCSPGENERAL"; + private static CMSBaseResourceModel mModel; + protected AdminConnection mAdmin; + private JCheckBox mRAEnable; + private JCheckBox mEEEnable; + private CMSTabPanel mParent; + private JComboBox mGroups; + private JComboBox mAlgorithms; + private JTextField mSerialNumber; + private JTextField mMaxSerialNumber; + private JCheckBox mValidity; + private Vector mGroupData; + private static final String OCSPHELPINDEX = + "configuration-ocsp-general-help"; + + public CMSOCSPGeneralPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mModel = parent.getResourceModel(); + mParent = parent; + mHelpToken = OCSPHELPINDEX; + } + + public void init() { + Debug.println("CMSCAGeneral: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + + JPanel signingPanel = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + signingPanel.setLayout(gb2); + signingPanel.setBorder(makeTitledBorder("SIGNING")); + + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + //gbc.weighty = 1.0; +// gb.setConstraints(adminPanel, gbc); +// mCenterPanel.add(adminPanel); + + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(signingPanel, gbc); + mCenterPanel.add(signingPanel); + + + CMSAdminUtil.resetGBC(gbc); + JLabel signingLabel = makeJLabel("ALGORITHM"); + gbc.anchor = gbc.CENTER; + gb2.setConstraints(signingLabel, gbc); + gbc.weighty = 1.0; + signingPanel.add(signingLabel); + + CMSAdminUtil.resetGBC(gbc); + mAlgorithms = new JComboBox(); + mAlgorithms.addItemListener(this); + //mAlgorithms = makeJComboBox("ALGORITHM"); + gbc.anchor = gbc.NORTHWEST; + //gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + //gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb2.setConstraints(mAlgorithms, gbc); + signingPanel.add(mAlgorithms); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy1 = new JLabel(" "); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb2.setConstraints(dummy1, gbc); + signingPanel.add(dummy1); + + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_DEFAULT_ALGORITHM, ""); + nvps.put(Constants.PR_ALL_ALGORITHMS, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_OCSP_ADMIN, + ScopeDef.SC_GENERAL, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + } + + protected void populate(NameValuePairs nvps) { + String defaultAlgorithm = ""; + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_DEFAULT_ALGORITHM)) { + defaultAlgorithm = value; + } else if (name.equals(Constants.PR_ALL_ALGORITHMS)) { + initAlgorithmBox(value); + } + } + + mAlgorithms.setSelectedItem(defaultAlgorithm); + } + + private void initAlgorithmBox(String val) { + if (mAlgorithms.getItemCount() >= 0) { + mAlgorithms.removeAllItems(); + } + StringTokenizer tokenizer = new StringTokenizer(val, ":"); + while (tokenizer.hasMoreTokens()) { + mAlgorithms.addItem(tokenizer.nextToken()); + } + } + + private boolean getBoolean(String str) { + if (str.equals(Constants.TRUE)) + return true; + return false; + } + + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + } + + private String hexToDecimal(String hex) + { + //String newHex = hex.substring(2); + BigInteger bi = new BigInteger(hex, 16); + return bi.toString(); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + NameValuePairs nvps = new NameValuePairs(); + + nvps.put(Constants.PR_DEFAULT_ALGORITHM, + (String) mAlgorithms.getSelectedItem()); + + mModel.progressStart(); + try { + mAdmin.modify(DestDef.DEST_OCSP_ADMIN, + ScopeDef.SC_GENERAL, Constants.RS_ID_CONFIG, nvps); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSPasswordDialog.java b/base/console/src/com/netscape/admin/certsrv/config/CMSPasswordDialog.java new file mode 100644 index 000000000..47cb6c865 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSPasswordDialog.java @@ -0,0 +1,310 @@ +// --- 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.config; + +import java.awt.*; +import java.util.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.event.*; + +import com.netscape.admin.certsrv.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; + +/** + * Display this dialog to get a password. + * + * @author chrisho + * @author jpanchen + * @version $Revision$, $Date$ + * @date 07/21/98 + */ + +public class CMSPasswordDialog extends JDialog + implements ActionListener, DocumentListener, MouseListener +{ + + /*========================================================== + * variables + *==========================================================*/ + private static final int WIDTH = 300; + private static final int HEIGHT = 216; + + private JLabel mUsernameField; // username textfield + private JPasswordField mPasswordField; // password field + private JPasswordField mPasswordFieldAgain; // password field + private JPasswordField mOldPasswordField; // old password + private boolean mCanceled = true; // exit state of the dialog + private String mUsername; // username + private String mPassword; // password + private static final String PREFIX = "PASSWDDIALOG"; + private JFrame mParentFrame; + private ResourceBundle mResource; + private AdminConnection mAdmin; + private JButton mOK, mCancel, mHelp; + + + /*========================================================== + * constructors + *==========================================================*/ + + /** + * @param parent parent frame + */ + public CMSPasswordDialog(JFrame parent, AdminConnection conn, String uid) { + super(parent, true); + mParentFrame = parent; + mAdmin = conn; + mResource = + ResourceBundle.getBundle(CMSAdminResources.class.getName()); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + + JPanel center = new JPanel(); + getContentPane().setLayout(new BorderLayout()); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + JPanel contentPanel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + contentPanel.setLayout(gb1); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(contentPanel, gbc); + center.add(contentPanel); + + CMSAdminUtil.resetGBC(gbc); + JLabel lUsername = + new JLabel(mResource.getString(PREFIX+"_LABEL_USERID_LABEL")); + lUsername.setToolTipText( + mResource.getString(PREFIX+"_LABEL_USERID_TTIP")); + + mUsernameField = new JLabel(uid); + + + CMSAdminUtil.addEntryField(contentPanel, lUsername, mUsernameField, + gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel lOldPassword= + new JLabel(mResource.getString(PREFIX+"_LABEL_OLDPASSWORD_LABEL")); + lOldPassword.setToolTipText( + mResource.getString(PREFIX+"_LABEL_OLDPASSWORD_TTIP")); + mOldPasswordField = new JPasswordField(); + mOldPasswordField.getDocument().addDocumentListener(this); + mOldPasswordField.addMouseListener(this); + CMSAdminUtil.addEntryField(contentPanel, lOldPassword, + mOldPasswordField, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel lPassword= + new JLabel(mResource.getString(PREFIX+"_LABEL_PASSWORD_LABEL")); + lPassword.setToolTipText( + mResource.getString(PREFIX+"_LABEL_PASSWORD_TTIP")); + mPasswordField = new JPasswordField(); + mPasswordField.getDocument().addDocumentListener(this); + mPasswordField.addMouseListener(this); + CMSAdminUtil.addEntryField(contentPanel, lPassword, mPasswordField, + gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel lPasswordAgain= + new JLabel(mResource.getString(PREFIX+"_LABEL_PASSWORD_AGAIN_LABEL")); + lPassword.setToolTipText( + mResource.getString(PREFIX+"_LABEL_PASSWORD_AGAIN_TTIP")); + mPasswordFieldAgain = new JPasswordField(); + mPasswordFieldAgain.getDocument().addDocumentListener(this); + mPasswordFieldAgain.addMouseListener(this); + CMSAdminUtil.addEntryField(contentPanel, lPasswordAgain, + mPasswordFieldAgain, gbc); + + JPanel actionPanel = makeActionPane(); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(actionPanel, gbc); + center.add(actionPanel); + + getContentPane().add("Center",center); + + mCanceled=false; + mUsername=""; + mPassword=""; + + setSize( WIDTH, HEIGHT ); + this.show(); + + /* Cancel if the window is closed */ + addWindowListener( + new WindowAdapter() { + public void windowClosing(WindowEvent e) { + dispose(); + mCanceled = true; + } + } + ); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * return the exit status of the dialog + * + * @return true if the user hits the cancel button. + */ + public boolean isCancel() { + return mCanceled; + } + + /** + * Returns the username typed in by the user, on OK. + * + * @return The selected username, if the user hits the OK button. + */ + public String getUsername() { + return mUsername; + } + + /** + * Return the password typed in by the user, on OK. + * + * @return The selected password, if the user hits the OK button. + */ + public String getPassword() { + return mPassword; + } + + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + public void actionPerformed(ActionEvent evt) { + if (evt.getSource().equals(mOK)) { + String userid = mUsernameField.getText().trim(); + String oldpassword = mOldPasswordField.getText().trim(); + String newpassword = mPasswordField.getText().trim(); + String passwordAgain = mPasswordFieldAgain.getText().trim(); + + /* PROACTIVE VERIFICATION + if (oldpassword.equals("") || newpassword.equals("") || + passwordAgain.equals("")) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, + PREFIX, "EMPTYFIELD", CMSAdminUtil.ERROR_MESSAGE); + return; + } + */ + if (!newpassword.equals(passwordAgain)) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, + PREFIX, "CONFIRMED", CMSAdminUtil.ERROR_MESSAGE); + return; + } + + + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_OLD_AGENT_PWD, oldpassword); + nvps.put(Constants.PR_AGENT_PWD, newpassword); + + try { + mAdmin.modify(DestDef.DEST_KRA_ADMIN, + ScopeDef.SC_AGENT_PWD, userid, nvps); + } catch (EAdminException ex) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + ex.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + if (!ex.getMessage().equals("Server Error")) + return; + } + + mCanceled = false; + this.dispose(); + return; + } + if (evt.getSource().equals(mCancel)) { + //setVisible(false); + mCanceled = true; + this.dispose(); + return; + } + } + + + //== DocumentListener == + public void insertUpdate(DocumentEvent e) { + setButtons(); + } + + public void removeUpdate(DocumentEvent e){ + setButtons(); + } + + public void changedUpdate(DocumentEvent e){ + setButtons(); + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) {} + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) { + setButtons(); + } + + + /*========================================================== + * private methods + *==========================================================*/ + + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, + this); + mOK.setEnabled(false); + mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", + null, this); + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel(buttons); + } + + //set buttons + private void setButtons() { + if ( (mPasswordField.getText().trim().equals("")) || + (mPasswordFieldAgain.getText().trim().equals("")) || + (mOldPasswordField.getText().trim().equals("")) ) { + mOK.setEnabled(false); + } else { + mOK.setEnabled(true); + } + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSPluginInstanceTab.java b/base/console/src/com/netscape/admin/certsrv/config/CMSPluginInstanceTab.java new file mode 100644 index 000000000..d4fb62340 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSPluginInstanceTab.java @@ -0,0 +1,442 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Plugin Instances Management Tab + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public abstract class CMSPluginInstanceTab extends CMSBaseUGTab { + + /*========================================================== + * variables + *==========================================================*/ + protected static String PANEL_NAME = null; + protected static String RULE_NAME = null; + protected static String RULE_STAT = null; + protected static String RULE_IMPL = null; + protected static String RULE_TYPE = null; + + + protected AdminConnection mConnection; + + protected JScrollPane mScrollPane; + protected JTable mTable; //table + protected CMSRuleDataModel mDataModel; //table model + protected String mDestination; //dest flag + protected String mScope; + protected String mId = null; // used as a ip id for crl exts + + protected JButton mRefresh, mEdit, mAdd, mDelete, mOrder, mHelp; + protected static String RAHELPINDEX = null; + protected static String CAHELPINDEX = null; + protected static String KRAHELPINDEX = null; + protected static String OCSPHELPINDEX = null; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSPluginInstanceTab(CMSBaseResourceModel model, String dest, + String panelName) { + super(panelName, model); + Debug.println("CMSPluginInstanceTab::CMSPluginInstanceTab(,"+dest+","+panelName+")"); + mConnection = model.getServerInfo().getAdmin(); + mDestination = dest; + } + + /*========================================================== + * public methods + *==========================================================*/ + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + public CMSBaseConfigDialog makeEditConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest + ) + { + // make it possible to use a different dialog for + // edit operation + return makeNewConfigDialog(nvp, parent, conn, dest); + } + + public abstract CMSBaseConfigDialog makeNewConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest + ); + + public abstract PluginSelectionDialog getPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType + ); + + /** + * Can override this to handle more events if needed + */ + public void moreActionPerformed(ActionEvent e) + { + return; + } + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + Debug.println("Refresh"); + refresh(); + } + if (e.getSource().equals(mEdit)) { + if(mTable.getSelectedRow()< 0) + return; + NameValuePairs data = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + + NameValuePairs response; + mModel.progressStart(); + try{ + response = getConfig(); + } catch (EAdminException ex1) { + showErrorDialog(ex1.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + Debug.println(response.toString()); + + CMSBaseConfigDialog dialog = makeEditConfigDialog( + response, + mModel.getFrame(), + mModel.getServerInfo().getAdmin(), + mDestination); + + dialog.setModel(mModel); + dialog.setInstanceScope(mScope); + dialog.showDialog(response, data.get(RULE_NAME)); + + if(!dialog.isOK()) return; + + refresh(); + } + + if (e.getSource().equals(mAdd)) { + Debug.println("Add"); + PluginSelectionDialog dialog = + getPluginSelectionDialog( + mModel.getFrame(), + mConnection, + mDestination, + this + ); + + dialog.setModel(mModel); + dialog.showDialog(); + refresh(); + } + + if (e.getSource().equals(mDelete)) { + Debug.println("Delete"); + if(mTable.getSelectedRow()< 0) + return; + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + delete(); + Debug.println("Deleted"); + } + } + if (e.getSource().equals(mHelp)) { + helpCallback(); + } + moreActionPerformed(e); + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mouseReleased(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + public void refresh() { + + mDataModel.removeAllRows(); + update(); + + setButtons(); + } + + /** + * create the user action button panel + */ + protected JPanel createUserButtonPanel() { + Debug.println("CMSPluginInstanceTab::createUserButtonPanel()"); + //edit, add, delete, help buttons required + //actionlister to this object + mEdit = makeJButton("EDIT"); + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + JButton[] buttons = {mAdd, mDelete, mEdit}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + protected JPanel createActionPanel() { + Debug.println("CMSPluginInstanceTab::createActionPanel()"); + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel( buttons , true); + } + + protected JPanel createListPanel() { + Debug.println("CMSPluginInstanceTab::createListPanel()"); + try { + mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createUserButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + refresh(); + + Debug.println("returning from CMSPluginInstanceTab::createListPanel()"); + + } catch (Exception e3) { + Debug.println("e3: caught exception:"); + if (Debug.isEnabled()) + e3.printStackTrace(); + } + return mListPanel; + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + Debug.println("Table.getColumnModel = "+table.getColumnModel()); + table.getColumnModel().getColumn(index).setCellRenderer(new LabelCellRenderer(new JLabel())); + } + + //Set the first column's cellrender as label cell + protected void setLabelCellEditor(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer(new PasswordCellRenderer()); + table.getColumnModel().getColumn(index).setCellEditor(new DefaultCellEditor(new JPasswordField())); + } + + + //set buttons + protected void setButtons() { + + //enable and diable buttons accordingly + //Debug.println("setButtons() - "+mTable.getSelectedRow()); + + if (mTable.getSelectionModel().isSelectionEmpty()) { + mDelete.setEnabled(false); + mEdit.setEnabled(false); + return; + } + + if(mDataModel.getRowCount()<=0) { + mDelete.setEnabled(false); + mEdit.setEnabled(false); + return; + } + + mDelete.setEnabled(true); + mEdit.setEnabled(true); + } + + //============================================= + // SEND REQUESTS TO THE SERVER SIDE + //============================================= + private void update() { + //send request and parse data + + NameValuePairs response; + NameValuePairs request = new NameValuePairs(); + if (mId != null && mId.length() > 0) { + request.put(Constants.PR_ID, mId); + } + + try { + Debug.println("CMSPluginInstanceTab:update() ---- 1 --- "); + Debug.println("mConnection = "+mConnection); + response = mConnection.search(mDestination, + mScope, + request); + } catch (EAdminException e) { + //display error dialog + if (Debug.isEnabled()) + e.printStackTrace(); + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + + Debug.println(response.toString()); + + /* format of each data element: + plugin;visibility;enabled + where plugin is the name of the plugin impl + visibility is one of {visible,invisible} + enabled is one of {enabled,disabled} + */ + + for (String entry : response.keySet()) { + String plugin=""; + String visibility=null; + String enabled=null; + + entry = entry.trim(); + String value = response.get(entry); + + StringTokenizer st = new StringTokenizer(value,";"); + + if (st.hasMoreElements()) { + plugin = st.nextToken(); +Debug.println("xxxxxxx plugin " + plugin); + if (st.hasMoreElements()) { + visibility = st.nextToken(); + if (st.hasMoreElements()) { + enabled = st.nextToken(); + } + } + } + + if (visibility != null && visibility.equals("visible")) { + + NameValuePairs data = new NameValuePairs(); + data.put(RULE_NAME, entry); + data.put(RULE_IMPL, plugin); + if (enabled != null) { + data.put(RULE_STAT, enabled); + } + mDataModel.processData(data); + } + } + + if (mDataModel.getRowCount() >0) + mTable.setRowSelectionInterval(0,0); + + mTable.invalidate(); + mTable.validate(); + mTable.repaint(1); + mModel.progressStop(); + } + + private void delete() { + + mModel.progressStart(); + //get entry name + NameValuePairs data = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, + mScope, + data.get(RULE_NAME)); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + + } + + //this returns the onfiguration + private NameValuePairs getConfig() throws EAdminException { + NameValuePairs data = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + NameValuePairs request = new NameValuePairs(); + if (mId != null && mId.length() > 0) { + request.put(mId, ""); + } + + NameValuePairs response = mConnection.read(mDestination, + mScope, + data.get(RULE_NAME), + request); + return response; + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSRACLMPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSRACLMPanel.java new file mode 100644 index 000000000..734425b41 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSRACLMPanel.java @@ -0,0 +1,313 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * RA CLM Setting + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSRACLMPanel extends CMSBaseTab { + + private static String PANEL_NAME = "RACLM"; + private static CMSBaseResourceModel mModel; + protected AdminConnection mAdmin; + private JCheckBox mRenewEnable; + private JTextField mValidText; + private JTextField mEmailText; + private JCheckBox mNotifyEnable; + private JTextField mNotifiedText; + private JTextField mIntervalText; + private Color mActiveColor; + private CMSTabPanel mParent; + private static final String HELPINDEX = + "configuration-ra-clm-help"; + + public CMSRACLMPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mModel = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + } + + public void init() { + Debug.println("CMSRACLMPanel: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + mRenewEnable = makeJCheckBox("RENEWENABLED"); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(mRenewEnable, gbc); + mCenterPanel.add(mRenewEnable); + + JPanel adminPanel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + adminPanel.setLayout(gb1); + adminPanel.setBorder(makeTitledBorder("CLMRENEWAL")); + + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(adminPanel, gbc); + mCenterPanel.add(adminPanel); + + CMSAdminUtil.resetGBC(gbc); + JLabel validLbl = makeJLabel("VALID"); + mValidText = makeJTextField(4); + mActiveColor = mValidText.getBackground(); + JLabel day1Lbl = makeJLabel("DAYS"); + CMSAdminUtil.addEntryField(adminPanel, validLbl, mValidText, + day1Lbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + //JLabel dummy2 = new JLabel(""); + mNotifyEnable = makeJCheckBox("NOTIFIED"); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gb1.setConstraints(mNotifyEnable, gbc); + adminPanel.add(mNotifyEnable); + + //CMSAdminUtil.addEntryField(adminPanel, dummy2, mNotifyEnable, gbc); + + JPanel subPanel = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + subPanel.setLayout(gb2); + subPanel.setBorder(makeTitledBorder("CLMRENEWALNOTIFY")); + + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb1.setConstraints(subPanel, gbc); + adminPanel.add(subPanel); + + CMSAdminUtil.resetGBC(gbc); + JLabel emailLbl = makeJLabel("EMAIL"); + mEmailText = makeJTextField(30); + CMSAdminUtil.addEntryField(subPanel, emailLbl, mEmailText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel numNotifyLbl = makeJLabel("NUMNOTIFIED"); + mNotifiedText = makeJTextField(4); + CMSAdminUtil.addEntryField(subPanel, numNotifyLbl, mNotifiedText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel intervalLbl = makeJLabel("INTERVAL"); + mIntervalText = makeJTextField(4); + JLabel day2Lbl = makeJLabel("DAYS"); + CMSAdminUtil.addEntryField(subPanel, intervalLbl, mIntervalText, + day2Lbl, gbc); + + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_RENEWAL_ENABLED, ""); + nvps.put(Constants.PR_RENEWAL_VALIDITY, ""); + nvps.put(Constants.PR_RENEWAL_EMAIL, ""); + nvps.put(Constants.PR_RENEWAL_EXPIREDNOTIFIEDENABLED, ""); + nvps.put(Constants.PR_RENEWAL_NUMNOTIFICATION, ""); + nvps.put(Constants.PR_RENEWAL_INTERVAL, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_RA_ADMIN, + ScopeDef.SC_CLM, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + protected void populate(NameValuePairs nvps) { + boolean renewalEnabled = false; + boolean notificationEnabled = false; + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_RENEWAL_ENABLED)) { + renewalEnabled = getBoolean(value); + mRenewEnable.setSelected(renewalEnabled); + } else if (name.equals(Constants.PR_RENEWAL_EXPIREDNOTIFIEDENABLED)) { + notificationEnabled = getBoolean(value); + mNotifyEnable.setSelected(notificationEnabled); + } else if (name.equals(Constants.PR_RENEWAL_VALIDITY)) { + mValidText.setText(value); + } else if (name.equals(Constants.PR_RENEWAL_EMAIL)) { + mEmailText.setText(value); + } else if (name.equals(Constants.PR_RENEWAL_NUMNOTIFICATION)) { + mNotifiedText.setText(value); + } else if (name.equals(Constants.PR_RENEWAL_INTERVAL)) { + mIntervalText.setText(value); + } + } + + if (renewalEnabled) { + enableRenewal(renewalEnabled, mActiveColor); + if (notificationEnabled) + enableNotification(notificationEnabled, mActiveColor); + else + enableNotification(notificationEnabled, getBackground()); + } else { + enableRenewal(renewalEnabled, getBackground()); + enableNotification(renewalEnabled, getBackground()); + } + } + + private boolean getBoolean(String str) { + if (str.equals(Constants.TRUE)) + return true; + return false; + } + + private void enableRenewal(boolean renewalEnabled, boolean notificationEnabled) { + + if (renewalEnabled) { + enableRenewal(renewalEnabled, mActiveColor); + if (notificationEnabled) + enableNotification(notificationEnabled, mActiveColor); + else + enableNotification(notificationEnabled, getBackground()); + } else { + enableRenewal(renewalEnabled, getBackground()); + enableNotification(renewalEnabled, getBackground()); + } + } + + private void enableRenewal(boolean enable, Color color) { + mValidText.setEnabled(enable); + mValidText.setEditable(enable); + mValidText.setBackground(color); + mNotifyEnable.setEnabled(enable); + mNotifyEnable.setBackground(color); + //enableNotification(enable, color); + } + + private void enableNotification(boolean enable, Color color) { + mEmailText.setEnabled(enable); + mEmailText.setEditable(enable); + mEmailText.setBackground(color); + mNotifiedText.setEnabled(enable); + mNotifiedText.setEditable(enable); + mNotifiedText.setBackground(color); + mIntervalText.setEnabled(enable); + mIntervalText.setEditable(enable); + mIntervalText.setBackground(color); + invalidate(); + validate(); + repaint(1); + } + + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + if (e.getSource().equals(mRenewEnable) || + e.getSource().equals(mNotifyEnable)) { + enableRenewal(mRenewEnable.isSelected(), + mNotifyEnable.isSelected()); + } + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + NameValuePairs nvps = new NameValuePairs(); + if (mRenewEnable.isSelected()) { + nvps.put(Constants.PR_RENEWAL_ENABLED, Constants.TRUE); + String validStr = mValidText.getText(); + try { + int num = Integer.parseInt(validStr); + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + nvps.put(Constants.PR_RENEWAL_VALIDITY, validStr); + + if (mNotifyEnable.isSelected()) { + nvps.put(Constants.PR_RENEWAL_EXPIREDNOTIFIEDENABLED, + Constants.TRUE); + nvps.put(Constants.PR_RENEWAL_EMAIL, mEmailText.getText()); + String numStr = mNotifiedText.getText(); + String intervalStr = mIntervalText.getText(); + + try { + int num1 = Integer.parseInt(numStr); + int num2 = Integer.parseInt(intervalStr); + } catch (NumberFormatException ex) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + + nvps.put(Constants.PR_RENEWAL_NUMNOTIFICATION, numStr); + nvps.put(Constants.PR_RENEWAL_INTERVAL, intervalStr); + } else { + nvps.put(Constants.PR_RENEWAL_EXPIREDNOTIFIEDENABLED, + Constants.FALSE); + } + } else { + nvps.put(Constants.PR_RENEWAL_ENABLED, Constants.FALSE); + } + + mModel.progressStart(); + try { + mAdmin.modify(DestDef.DEST_RA_ADMIN, + ScopeDef.SC_CLM, Constants.RS_ID_CONFIG, nvps); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + mModel.progressStop(); + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSRAConnectorPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSRAConnectorPanel.java new file mode 100644 index 000000000..7733a43d7 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSRAConnectorPanel.java @@ -0,0 +1,251 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * RA Connector Panel + * + * @author Christine Ho + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class CMSRAConnectorPanel extends CMSBaseTab + implements MouseListener +{ + + /*========================================================== + * variables + *==========================================================*/ + + private final static String PANEL_NAME = "CONNECTOR"; + private final static String HELPINDEX = "configuration-ra-connector-help"; + + private AdminConnection mAdmin; + private CMSBaseResourceModel mModel; + private CMSTabPanel mParent; + private JList mList; + private DefaultListModel mDataModel; + private JScrollPane mScrollPane; + private JButton mEdit; + protected boolean mInit = false; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSRAConnectorPanel(CMSBaseResourceModel model, CMSTabPanel parent) { + super(PANEL_NAME, parent); + mModel = model; + mParent = parent; + mDataModel = new DefaultListModel(); + mHelpToken = HELPINDEX; + + // hardcoded just for beta 1 + mDataModel.addElement("Certificate Manager Connector"); + mDataModel.addElement("Data Recovery Manager Connector"); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * initialize the UI components + */ + public void init() { +// setLayout(new BorderLayout()); + + // JPanel mainPanel = new JPanel(); + JPanel mainPanel = mCenterPanel; + + + Debug.println("ConnectorPanel: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + + GridBagLayout gb1 = new GridBagLayout(); + mainPanel.setLayout(gb1); + + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + JLabel listLabel = makeJLabel("CONNLIST"); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE, + 0,DIFFERENT_COMPONENT_SPACE); + gb1.setConstraints(listLabel, gbc); + mainPanel.add(listLabel); + + CMSAdminUtil.resetGBC(gbc); + mList = makeJList(mDataModel, 3); + mScrollPane = new JScrollPane(mList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 0.5; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE, + 0,DIFFERENT_COMPONENT_SPACE); + gb1.setConstraints(mScrollPane, gbc); + mainPanel.add(mScrollPane); + + CMSAdminUtil.resetGBC(gbc); + mEdit = makeJButton("EDIT"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.weightx = 0.5; + gbc.insets = new Insets(COMPONENT_SPACE,0, + 0,DIFFERENT_COMPONENT_SPACE); + gb1.setConstraints(mEdit, gbc); + mainPanel.add(mEdit); + + // add("Center",mainPanel); + refresh(); + } + + /** + * refresh the panel data + */ + public void refresh() { +/* + NameValuePairs response; + mModel.progressStart(); + try { + response = mAdmin.search(DestDef.DEST_RA_ADMIN, + ScopeDef.SC_CONNECTOR, new NameValuePairs()); + + Debug.println(response.toString()); + populate(response); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + } + mModel.progressStop(); +*/ + } + + /*========================================================== + * Event Handler + *==========================================================*/ + + //======= ActionLister ============================ + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mEdit)) { + JFrame frame = mModel.getFrame(); + String name = (String)mList.getSelectedValue(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_ID, ""); + nvps.put(Constants.PR_HOST, ""); + nvps.put(Constants.PR_PORT, ""); + // Inserted by beomsuk + nvps.put(Constants.PR_TIMEOUT, ""); + // Insert end + nvps.put(Constants.PR_URI, ""); + nvps.put(Constants.PR_LOCAL, ""); + nvps.put(Constants.PR_ENABLE, ""); + + try { + NameValuePairs values = mAdmin.read(DestDef.DEST_RA_ADMIN, + ScopeDef.SC_CONNECTOR, name, nvps); + + NameValuePairs subsystems = mAdmin.search(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SUBSYSTEM, new NameValuePairs()); + + boolean colocated = false; + if (name.equals("Data Recovery Manager Connector")) { + String val = values.get("id"); + if (val != null && val.equals("kra")) + colocated = true; + } + ConnectorEditor editor = new ConnectorEditor(mAdmin, + mModel.getFrame(), name, DestDef.DEST_RA_ADMIN, + mModel.getServerInfo().getServerId(), colocated); + editor.showDialog(values); + } catch (EAdminException ex) { + showErrorDialog(ex.toString()); + } +/* + NameValuePairs values = new NameValuePairs(); + ConnectorEditor editor = new ConnectorEditor(mAdmin, + mModel.getFrame(), name); + editor.showDialog(values); +*/ + } + } + + //=== MOUSELISTENER ======================== + public void mouseClicked(MouseEvent e) { + if (e.getSource() == mList) { + if (mList.getSelectedIndex() < 0) + mEdit.setEnabled(false); + else + mEdit.setEnabled(true); + } + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) {} + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) {} + + //======== CMSBaseConfigPanel ============== + public boolean applyCallback() { + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } + + /*========================================================== + * private methods + *==========================================================*/ + + //update the UI component using the data retrieved + private void populate(NameValuePairs nvps) { +/* + Enumeration names = nvps.getNames(); + mDataModel.removeAllElements(); + while (names.hasMoreElements()) + mDataModel.addElement(names.nextElement()); + + if (mDataModel.size() > 0) { + mList.setSelectedIndex(0); + mEdit.setEnabled(true); + } else + mEdit.setEnabled(false); +*/ + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSRAGeneralPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSRAGeneralPanel.java new file mode 100644 index 000000000..6605385b0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSRAGeneralPanel.java @@ -0,0 +1,185 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * RA General Setting + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSRAGeneralPanel extends CMSBaseTab { + + private static String PANEL_NAME = "RAGENERAL"; + private static CMSBaseResourceModel mModel; + protected AdminConnection mAdmin; + private JCheckBox mRAEnable; + private JCheckBox mEEEnable; + private CMSTabPanel mParent; + private static final String HELPINDEX = + "configuration-ra-general-help"; + + public CMSRAGeneralPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mModel = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + } + + public void init() { + Debug.println("CMSRAGeneral: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + + JPanel adminPanel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + adminPanel.setLayout(gb1); + adminPanel.setBorder(makeTitledBorder("PARAMETERS")); + + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(adminPanel, gbc); + mCenterPanel.add(adminPanel); + + CMSAdminUtil.resetGBC(gbc); + mEEEnable = makeJCheckBox("EE"); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb1.setConstraints(mEEEnable, gbc); + adminPanel.add(mEEEnable); + +/* + CMSAdminUtil.resetGBC(gbc); + mRAEnable = makeJCheckBox("RA"); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb1.setConstraints(mRAEnable, gbc); + adminPanel.add(mRAEnable); +*/ + + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_EE_ENABLED, ""); + //nvps.add(Constants.PR_RA_ENABLED, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_RA_ADMIN, + ScopeDef.SC_GENERAL, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + } + + protected void populate(NameValuePairs nvps) { + Debug.println("RA General Received: "+nvps.toString()); + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_EE_ENABLED)) { + mEEEnable.setSelected(getBoolean(value)); +/* + } else if (name.equals(Constants.PR_RA_ENABLED)) { + mRAEnable.setSelected(getBoolean(value)); +*/ + } + } + } + + private boolean getBoolean(String str) { + if (str.equals(Constants.TRUE)) + return true; + return false; + } + + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + NameValuePairs nvps = new NameValuePairs(); + + if (mEEEnable.isSelected()) + nvps.put(Constants.PR_EE_ENABLED, Constants.TRUE); + else + nvps.put(Constants.PR_EE_ENABLED, Constants.FALSE); + +/* + if (mRAEnable.isSelected()) + nvps.add(Constants.PR_RA_ENABLED, Constants.TRUE); + else + nvps.add(Constants.PR_RA_ENABLED, Constants.FALSE); +*/ + + mModel.progressStart(); + try { + mAdmin.modify(DestDef.DEST_RA_ADMIN, + ScopeDef.SC_GENERAL, Constants.RS_ID_CONFIG, nvps); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSRALDAPPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSRALDAPPanel.java new file mode 100644 index 000000000..3fbe6a72a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSRALDAPPanel.java @@ -0,0 +1,44 @@ +// --- 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.config; + +import com.netscape.management.client.util.*; + +/** + * LDAP server setting tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSRALDAPPanel extends CMSBaseLDAPPanel { + + private static String PANEL_NAME = "RALDAPSETTING"; + private static final String HELPINDEX = + "configuration-ra-ldappublish-destination-help"; + + public CMSRALDAPPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mHelpToken = HELPINDEX; + } + + public void init() { + super.init(); + refresh(); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSRuleDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSRuleDataModel.java new file mode 100644 index 000000000..2c12183c7 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSRuleDataModel.java @@ -0,0 +1,82 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.certsrv.common.*; + + +/** + * instance Data model - represents the instance + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public abstract class CMSRuleDataModel extends CMSContentTableModel + implements IDataProcessor +{ + + /*========================================================== + * variables + *==========================================================*/ + public static final String RULE_NAME = "RULENAME"; + public static final String RULE_STAT = "STATUS"; + public static final String RULE_IMPL = "IMPL"; + public static final String RULE_TYPE = "TYPE"; + + protected static String[] mColumns = null; + protected Vector mRules; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSRuleDataModel() { + super(); + mColumns = getColumns(); + init(mColumns); + mRules = new Vector(); + } + + /*========================================================== + * public methods + *==========================================================*/ + + protected abstract String[] getColumns(); + + /** + * clean up the table including the datat objects + */ + public void removeAllRows() { + super.removeAllRows(); + mRules.removeAllElements(); + } + + + public Vector getRules() { + return (Vector) mRules.clone(); + } + + public boolean isCellEditable(int row, int col) { + return false; + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSSMTPPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSSMTPPanel.java new file mode 100644 index 000000000..0275e3cb0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSSMTPPanel.java @@ -0,0 +1,170 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * SMTP setting tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSSMTPPanel extends CMSBaseTab { + private static String PANEL_NAME = "SMTPSETTING"; + private JTextField mServerText; + private JTextField mPortText; + private Color mActiveColor; + private AdminConnection mAdmin; + private CMSBaseResourceModel mModel; + private CMSTabPanel mParent; + private static final String HELPINDEX = + "configuration-system-smtp-help"; + + public CMSSMTPPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mModel = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + } + + public void init() { + Debug.println("SMTPPanel: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + JPanel smtpInfo = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(smtpInfo, gbc); + mCenterPanel.add(smtpInfo); + + GridBagLayout gb1 = new GridBagLayout(); + smtpInfo.setLayout(gb1); + + // add server name label and text field + CMSAdminUtil.resetGBC(gbc); + JLabel serverLabel = makeJLabel("SERVER"); + mServerText = makeJTextField(30); + mActiveColor = mServerText.getBackground(); + CMSAdminUtil.addEntryField(smtpInfo, serverLabel, mServerText, gbc); + + // add port number label and text field + CMSAdminUtil.resetGBC(gbc); + JLabel portLabel = makeJLabel("PORT"); + mPortText = makeJTextField(30); + CMSAdminUtil.addEntryField(smtpInfo, portLabel, mPortText, gbc); + + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_SERVER_NAME, ""); + nvps.put(Constants.PR_PORT, ""); + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SMTP, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + private void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_SERVER_NAME)) { + mServerText.setText(value); + } else if (name.equals(Constants.PR_PORT)) { + mPortText.setText(value); + } + } + } + + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + // check blank field + if (mServerText.getText().trim().equals("")) { + showMessageDialog("BLANKFIELD"); + return false; + } + + String port = mPortText.getText().trim(); + try { + int num = Integer.parseInt(port); + if (num <= 0) { + showMessageDialog("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_SERVER_NAME, mServerText.getText().trim()); + nvps.put(Constants.PR_PORT, port); + mModel.progressStart(); + try { + mAdmin.modify(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SMTP, Constants.RS_ID_CONFIG, nvps); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + mModel.progressStop(); + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSSNMPPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSSNMPPanel.java new file mode 100644 index 000000000..b5b589eb0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSSNMPPanel.java @@ -0,0 +1,296 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * SNMP setting tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSSNMPPanel extends CMSBaseTab { + private static String PANEL_NAME = "SNMPSETTING"; + private Color mActiveColor; + private JButton mOnB; + private JButton mOffB; + private JCheckBox mEnable; + private JTextField mHostNameText; + private JTextField mPortText; + private JTextField mDescText; + private JTextField mOrgnText; + private JTextField mLocText; + private JTextField mContactText; + private AdminConnection mAdmin; + private CMSBaseResourceModel mModel; + private CMSTabPanel mParent; + private JLabel mHostLabel; + private JLabel mPortLabel; + private JLabel mDescLabel; + private JLabel mOrgnLabel; + private JLabel mLocLabel; + private JLabel mContactLabel; + private static final String HELPINDEX = + "configuration-system-snmp-help"; + + public CMSSNMPPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mModel = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + } + + public void init() { + Debug.println("SNMPPanel: init()"); + mAdmin = mModel.getServerInfo().getAdmin(); + JPanel snmpInfo = new JPanel(); + snmpInfo.setBorder(CMSAdminUtil.makeEtchedBorder()); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC(gbc); + mCenterPanel.setLayout(gb); + + mEnable = makeJCheckBox("ENABLE"); + mEnable.setActionCommand("enable"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(mEnable, gbc); + mCenterPanel.add(mEnable); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(snmpInfo, gbc); + mCenterPanel.add(snmpInfo); + + mOnB = makeJButton("ON"); + mOffB = makeJButton("OFF"); + JButton[] bArray = {mOnB, mOffB}; + JPanel buttonPanel = CMSAdminUtil.makeJButtonPanel(bArray); + + GridBagLayout gb1 = new GridBagLayout(); + snmpInfo.setLayout(gb1); + + // add host name label and text field + CMSAdminUtil.resetGBC(gbc); + mHostLabel = makeJLabel("HOST"); + mHostNameText = makeJTextField(30); + mActiveColor = mHostNameText.getBackground(); + CMSAdminUtil.addEntryField(snmpInfo, mHostLabel, mHostNameText, gbc); + + // add port label and text field + CMSAdminUtil.resetGBC(gbc); + mPortLabel = makeJLabel("PORT"); + mPortText = makeJTextField(30); + CMSAdminUtil.addEntryField(snmpInfo, mPortLabel, mPortText, gbc); + + // add description label and text field + CMSAdminUtil.resetGBC(gbc); + mDescLabel = makeJLabel("DESC"); + mDescText = makeJTextField(30); + CMSAdminUtil.addEntryField(snmpInfo, mDescLabel, mDescText, gbc); + + // add organization label and text field + CMSAdminUtil.resetGBC(gbc); + mOrgnLabel = makeJLabel("ORGN"); + mOrgnText = makeJTextField(30); + CMSAdminUtil.addEntryField(snmpInfo, mOrgnLabel, mOrgnText, gbc); + + // add location label and text field + CMSAdminUtil.resetGBC(gbc); + mLocLabel = makeJLabel("LOC"); + mLocText = makeJTextField(30); + CMSAdminUtil.addEntryField(snmpInfo, mLocLabel, mLocText, gbc); + + // add contact label and text field + CMSAdminUtil.resetGBC(gbc); + mContactLabel = makeJLabel("CONTACT"); + mContactText = makeJTextField(30); + CMSAdminUtil.addEntryField(snmpInfo, mContactLabel, mContactText, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gb1.setConstraints(buttonPanel, gbc); + snmpInfo.add(buttonPanel); + + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_SNMP_ENABLED, ""); + nvps.put(Constants.PR_SNMP_MASTER_HOST, ""); + nvps.put(Constants.PR_SNMP_MASTER_PORT, ""); + nvps.put(Constants.PR_SNMP_DESC, ""); + nvps.put(Constants.PR_SNMP_ORGN, ""); + nvps.put(Constants.PR_SNMP_LOC, ""); + nvps.put(Constants.PR_SNMP_CONTACT, ""); + + try { + NameValuePairs val = mAdmin.read(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SNMP, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + private void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_SNMP_ENABLED)) { + mEnable.setSelected(getBoolean(value)); + } else if (name.equals(Constants.PR_SNMP_MASTER_HOST)) { + mHostNameText.setText(value); + } else if (name.equals(Constants.PR_SNMP_MASTER_PORT)) { + mPortText.setText(value); + } else if (name.equals(Constants.PR_SNMP_DESC)) { + mDescText.setText(value); + } else if (name.equals(Constants.PR_SNMP_ORGN)) { + mOrgnText.setText(value); + } else if (name.equals(Constants.PR_SNMP_LOC)) { + mLocText.setText(value); + } else if (name.equals(Constants.PR_SNMP_CONTACT)) { + mContactText.setText(value); + } + } + + if (mEnable.isSelected()) + enableTextField(true, mActiveColor); + else + enableTextField(false, getBackground()); + } + + public boolean getBoolean(String value) { + if (value.equals(Constants.TRUE)) + return true; + return false; + } + + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + if (e.getActionCommand().equals("enable")) { + if (mEnable.isSelected()) { + enableTextField(true, mActiveColor); + } else { + enableTextField(false, getBackground()); + } + } + } + + private void enableTextField(boolean enable, Color color) { + mHostNameText.setEnabled(enable); + mHostNameText.setEditable(enable); + mHostNameText.setBackground(color); + mHostLabel.setEnabled(enable); + mPortText.setEnabled(enable); + mPortText.setEditable(enable); + mPortText.setBackground(color); + mPortLabel.setEnabled(enable); + mDescText.setEnabled(enable); + mDescText.setEditable(enable); + mDescText.setBackground(color); + mDescLabel.setEnabled(enable); + mOrgnText.setEnabled(enable); + mOrgnText.setEditable(enable); + mOrgnText.setBackground(color); + mOrgnLabel.setEnabled(enable); + mLocText.setEnabled(enable); + mLocText.setEditable(enable); + mLocText.setBackground(color); + mLocLabel.setEnabled(enable); + mContactText.setEnabled(enable); + mContactText.setEditable(enable); + mContactText.setBackground(color); + mContactLabel.setEnabled(enable); + mOnB.setEnabled(enable); + mOffB.setEnabled(enable); + invalidate(); + validate(); + repaint(1); + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + String port = mPortText.getText().trim(); + + try { + Integer num = new Integer(port); + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + + NameValuePairs nvps = new NameValuePairs(); + if (mEnable.isSelected()) + nvps.put(Constants.PR_SNMP_ENABLED, Constants.TRUE); + else + nvps.put(Constants.PR_SNMP_ENABLED, Constants.FALSE); + + nvps.put(Constants.PR_SNMP_MASTER_HOST, mHostNameText.getText().trim()); + nvps.put(Constants.PR_SNMP_MASTER_PORT, port); + nvps.put(Constants.PR_SNMP_DESC, mDescText.getText().trim()); + nvps.put(Constants.PR_SNMP_ORGN, mOrgnText.getText().trim()); + nvps.put(Constants.PR_SNMP_LOC, mLocText.getText().trim()); + nvps.put(Constants.PR_SNMP_CONTACT, mContactText.getText().trim()); + + mModel.progressStart(); + try { + mAdmin.modify(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SNMP, Constants.RS_ID_CONFIG, nvps); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + mModel.progressStop(); + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherPreference.java b/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherPreference.java new file mode 100644 index 000000000..4e95d25db --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherPreference.java @@ -0,0 +1,36 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.security.*; +/** + * Constructs panel containing a SSL2 cipher suites + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class CMSSSL2CipherPreference extends CMSCipherPreferencePane + implements ICipherConstants { + + public CMSSSL2CipherPreference(boolean isDomestic) { + super(new CMSSSL2CipherSet(isDomestic), true); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherSet.java b/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherSet.java new file mode 100644 index 000000000..fa18107cb --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherSet.java @@ -0,0 +1,74 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.security.*; +import java.util.*; + +/** + * Constructs a SSL2 cipher suites. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CMSSSL2CipherSet implements ICipherConstants, IAbstractCipherSet { + Vector cipherList = new Vector(); + String title; + + boolean defaultOn = true; + + /** + * Create a SSL2 cipher set + * @param isDomestic show all ssl2 ciphers for domestic and export version. + */ + public CMSSSL2CipherSet(boolean isDomestic) { + ResourceBundle resource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL2CIPHERPREF_RC440MD5"), + RC4EXPORT, defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL2CIPHERPREF_RC240MD5"), + RC2EXPORT, defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL2CIPHERPREF_DES56MD5"), + DES, defaultOn)); + if (isDomestic) { + cipherList.addElement( + new AbstractCipher(resource.getString("SSL2CIPHERPREF_RC4128MD5"), + RC4, defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL2CIPHERPREF_RC2128MD5"), + RC2, defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL2CIPHERPREF_TRIPLEDES168MD5"), + DES3, defaultOn)); + } + title = resource.getString("SSL2CIPHERPREF_TITLE"); + } + + public String getTitle() { + return title; + } + + public Vector getCipherList() { + return cipherList; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherPreference.java b/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherPreference.java new file mode 100644 index 000000000..63444fc75 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherPreference.java @@ -0,0 +1,37 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.security.*; + +/** + * Constructs panel containing a SSL3 cipher suites + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class CMSSSL3CipherPreference extends CMSCipherPreferencePane + implements ICipherConstants { + + public CMSSSL3CipherPreference(boolean isDomestic, boolean hasFortezza) { + super(new CMSSSL3CipherSet(isDomestic, hasFortezza), true); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherSet.java b/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherSet.java new file mode 100644 index 000000000..0286f3820 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherSet.java @@ -0,0 +1,91 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.security.*; +import java.util.*; +import com.netscape.admin.certsrv.*; + +/** + * Constructs a SSL3 cipher suites. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CMSSSL3CipherSet implements ICipherConstants, IAbstractCipherSet { + Vector cipherList = new Vector(); + String title; + + boolean defaultOn = true; + + /** + * Create a SSL3 cipher set + * @param isDomestic show all ssl2 ciphers for domestic and export version. + */ + public CMSSSL3CipherSet(boolean isDomestic, boolean hasFortezza) { + ResourceBundle resource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_RC440MD5"), + RSA_RC4_40_MD5, defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_RC240MD5"), + RSA_RC2_40_MD5, defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_DES56SHA"), + RSA_DES_SHA, defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_FIPSDES56SHA"), + RSA_FIPS_DES_SHA, defaultOn)); + if (isDomestic) { + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_RC4128MD5"), + RSA_RC4_128_MD5, defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_TRIPLEDES168SHA"), + RSA_3DES_SHA, defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_TRIPLEDES168SHA"), + RSA_FIPS_3DES_SHA, defaultOn)); + if (hasFortezza) { + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_FORT80SHA"), + FORTEZZA, !defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_RC4128FORTSHA"), + FORTEZZA_RC4_128_SHA, !defaultOn)); + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_NOENCRYPTIONFORSHA"), + FORTEZZA_NULL, !defaultOn)); + } + } + cipherList.addElement( + new AbstractCipher(resource.getString("SSL3CIPHERPREF_NOENCRYPTION"), + RSA_NULL_MD5, !defaultOn)); + title = resource.getString("SSL3CIPHERPREF_TITLE"); + } + + public String getTitle() { + return title; + } + + public Vector getCipherList() { + return cipherList; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSSelfTestsPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSSelfTestsPanel.java new file mode 100644 index 000000000..ab957a69c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSSelfTestsPanel.java @@ -0,0 +1,219 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.border.*; + +/** + * Self Tests setting tab + * + * @author Matt Harmsen + * @author Christine Ho + * @version $Revision$, $Date$ + */ +public class CMSSelfTestsPanel extends CMSBaseTab +{ + private static final String PROP_TITLE = "On-Demand Self Tests Results"; + private static String PANEL_NAME = "SELFTESTS"; + private AdminConnection mAdmin; + private JButton mOnDemand; + private CMSBaseResourceModel mModel; + private CMSTabPanel mParent; + private static final String HELPINDEX = + "configuration-overview"; + private ViewSelfTestsDialog mViewer = null; + + + public CMSSelfTestsPanel( CMSTabPanel parent ) + { + super( PANEL_NAME, parent ); + mModel = parent.getResourceModel(); + mParent = parent; + mHelpToken = HELPINDEX; + } + + + public void init() + { + Debug.println( "SelfTestsPanel: init()" ); + mAdmin = mModel.getServerInfo().getAdmin(); + JPanel selftestsInfo = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + CMSAdminUtil.resetGBC( gbc ); + mCenterPanel.setLayout( gb ); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints( selftestsInfo, gbc ); + mCenterPanel.add( selftestsInfo ); + + GridBagLayout gb1 = new GridBagLayout(); + selftestsInfo.setLayout( gb1 ); + + // self tests border + selftestsInfo.setBorder( new CompoundBorder( + BorderFactory.createTitledBorder( + mResource.getString( + "SELFTESTS_BORDER_LABEL" ) ), + new EmptyBorder( -3, + 0, + DIFFERENT_COMPONENT_SPACE - 3, + 0 ) ) ); + + // add on-demand self tests label + CMSAdminUtil.resetGBC( gbc ); + JLabel onDemandLabel = makeJLabel( "ONDEMAND" ); + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.gridx = 0; + gbc.anchor = gbc.WEST; + gbc.insets = new Insets( COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE, + 0, + 0 ); + selftestsInfo.add( onDemandLabel, gbc ); + + + // add run button for on-demand self tests + mOnDemand = makeJButton( "RUN" ); + JButton[] buttons = { mOnDemand }; + JButtonFactory.resize( buttons ); + CMSAdminUtil.makeJButtonVPanel( buttons ); + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 0.0; + gbc.gridwidth = gbc.RELATIVE; + gbc.gridx = gbc.RELATIVE; + gbc.anchor = gbc.WEST; + gbc.insets = new Insets( COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE, + 0, + DIFFERENT_COMPONENT_SPACE ); + selftestsInfo.add( mOnDemand, gbc ); + + // add space after the run button + JLabel dummy = new JLabel(" "); + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridx = gbc.RELATIVE; + gbc.anchor = gbc.WEST; + gbc.insets = new Insets( COMPONENT_SPACE, + 0, + COMPONENT_SPACE, + 0 ); + selftestsInfo.add( dummy, gbc ); + + refresh(); + } + + + public void refresh() + { + clearDirtyFlag(); + } + + + public void actionPerformed( ActionEvent evt ) + { + super.actionPerformed( evt ); + + NameValuePairs nvps = new NameValuePairs(); + NameValuePairs nvps1; + + nvps.put(Constants.PR_RUN_SELFTESTS_ON_DEMAND, Constants.TRUE); + + if( evt.getSource().equals( mOnDemand ) ) { + Debug.println( "Run self tests on-demand . . ." ); + + mModel.progressStart(); + try { + nvps1 = mAdmin.process( DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SELFTESTS, + Constants.RS_ID_CONFIG, + nvps ); + // show server response + String responseClass = ""; + String response = ""; + boolean first = true; + for (String name : nvps1.keySet()) { + String value = nvps1.get(name); + if (first) { + first = false; + responseClass = value; + } else { + response = response + value + "\n"; + } + } + + Debug.println( ". . . class \"" + + responseClass + + "\" responded with " + + "on-demand self tests results." ); + + if( mViewer == null ) { + mViewer = new ViewSelfTestsDialog( mModel.getFrame(), + PROP_TITLE ); + } + + mViewer.showDialog( response ); + } catch( EAdminException e ) { + showErrorDialog( e.toString() ); + mModel.progressStop(); + return; + } + mModel.progressStop(); + } + + clearDirtyFlag(); + return; + } + + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() + { + clearDirtyFlag(); + return true; + } + + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() + { + refresh(); + return true; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSTabPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSTabPanel.java new file mode 100644 index 000000000..63899892f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSTabPanel.java @@ -0,0 +1,350 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import javax.swing.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.tree.*; +import java.awt.event.*; +import java.awt.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; + +/** + * Base Class for Tabbed right hand pane + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class CMSTabPanel extends CMSBaseConfigPanel + implements IResourceSelectionListener, ChangeListener, IRefreshTabPanel +{ + /*========================================================== + * variables + *==========================================================*/ + private static String PANEL_NAME = "CMSTABPANEL"; + + protected JTabbedPane mTabbedPane; //tabbed panel + protected JButton mbOK, mbReset, mbHelp; //buttons + CMSBaseResourceModel mModel; //resource model + private ResourceObject mParent; //tree node parent + + /*========================================================== + * constructors + *==========================================================*/ + public CMSTabPanel(CMSBaseResourceModel model, ResourceObject parent) { + this(model, parent, true); + } + + public CMSTabPanel(CMSBaseResourceModel model, ResourceObject parent, boolean showButton) { + super(PANEL_NAME); + mModel = model; + mParent = parent; + + setLayout(new BorderLayout()); + //mTabbedPane = new JTabbedPane(); + + // Look and Feel + mTabbedPane = new NSTabbedPane(); + add("Center", mTabbedPane); + + if (showButton) + add("South", createButtonPanel()); + mbOK.setEnabled(false); + mbReset.setEnabled(false); + + mModel.addIResourceSelectionListener(this); + //mTabbedPane.addChangeListener(this); + } + + /*========================================================== + * public methods + *==========================================================*/ + public void init() {} + + /** + * Retrieve Resource Model + */ + public CMSBaseResourceModel getResourceModel() { + return mModel; + } + + public ResourceObject getResourceObject() { + return mParent; + } + + /** + * Set the Tab associated with this component dirty + */ + public void setDirtyTab(CMSBaseTab component) { + int index = mTabbedPane.indexOfComponent(component); + if (index == -1) { + Debug.println("CMSTabPanel: setDirtyTab() - component not part of this panel"); + return; + } + if ((mTabbedPane != null) && (mTabbedPane.getIconAt(index)== null) ) { + mTabbedPane.setIconAt(index, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_DIRTY_TAB)); + mTabbedPane.repaint(); + } + mbOK.setEnabled(true); + mbReset.setEnabled(true); + } + + /** + * Clear the Tab associated with this component + */ + public void clearDirtyTab(CMSBaseTab component) { + int index = mTabbedPane.indexOfComponent(component); + if (index == -1) { + Debug.println("CMSTabPanel: clearDirtyTab() - component not part of this panel"); + return; + } + if ((mTabbedPane != null) && (mTabbedPane.getIconAt(index)!= null) ) { + mTabbedPane.setIconAt(index, null); + mTabbedPane.repaint(); + } + setOKCancel(); + } + + //=== Callback methods ==== + public boolean applyCallback(){ + int currentTab = mTabbedPane.getSelectedIndex(); + int nTabs = mTabbedPane.getTabCount(); + boolean failed = false; + + //we will go through each tab and apply + for (int i= 0; i < nTabs; ++i) { + CMSBaseTab p = (CMSBaseTab)mTabbedPane.getComponentAt(i); + if (p.isDirty()) { + mTabbedPane.setSelectedIndex(i); + if (!p.applyCallback()) { + failed = true; + } + } + } + + //one or more panel falied + if (failed) { + //get first dirty tab + for (int i= 0; i < nTabs; ++i) { + CMSBaseTab p = (CMSBaseTab)mTabbedPane.getComponentAt(i); + if (p.isDirty()) { + mTabbedPane.setSelectedIndex(i); + break; + } + } + return false; + } + + //everything ok + if (currentTab >=0 ) + mTabbedPane.setSelectedIndex(currentTab); + mbOK.setEnabled(false); + mbReset.setEnabled(false); + mbHelp.requestFocusInWindow(); + return true; + } + + public boolean resetCallback() { + int nTabs = mTabbedPane.getTabCount(); + for (int i= 0; i < nTabs; ++i) { + CMSBaseTab p = (CMSBaseTab)mTabbedPane.getComponentAt(i); + if (p.isDirty()) { + p.resetCallback(); + } + } + mbOK.setEnabled(false); + mbReset.setEnabled(false); + return true; + } + + public void setOKCancel() { + int nTabs = mTabbedPane.getTabCount(); + for (int i= 0; i < nTabs; ++i) { + CMSBaseTab p = (CMSBaseTab)mTabbedPane.getComponentAt(i); + if (p.isDirty()) { + return; + } + } + mbOK.setEnabled(false); + mbReset.setEnabled(false); + } + + public void helpCallback() { + CMSBaseTab p = (CMSBaseTab)mTabbedPane.getSelectedComponent(); + if (p != null) + p.helpCallback(); + Debug.println("CMSTabPanel: helpCallback()"); + } + + public CMSBasePanel getSelectedTab() { + return (CMSBasePanel)mTabbedPane.getSelectedComponent(); + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + //== ACTIONLISTENER ===== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mbOK)) { + applyCallback(); + } + if (e.getSource().equals(mbReset)) { + resetCallback(); + } + if (e.getSource().equals(mbHelp)) { + helpCallback(); + } + } + + //== IResourceListener === + public void select(IResourceObject parent, Object viewInstance) { + //System.out.println("CMSTabPanel: select() "+ parent); + if (parent == mParent) { + try { + mTabbedPane.addChangeListener(this); + mTabbedPane.setSelectedIndex(0); + CMSBaseConfigPanel selectedPanel = (CMSBaseConfigPanel) mTabbedPane.getComponentAt(0); + if ( selectedPanel != null ) + selectedPanel.initialize(); + mTabbedPane.invalidate(); + mTabbedPane.validate(); + } catch (ArrayIndexOutOfBoundsException e) { + //NO TAB SO IGNORE + } + } + } + + public boolean unselect(IResourceObject parent, Object viewInstance) { + //System.out.println("CMSTabPanel: unselect() "+ parent); + + // XXX NOT SAVED MODEL IS MOVED TO HIGHER LEVEL + + //check if any tab is dirty + boolean dirty = false; + int nTabs = mTabbedPane.getTabCount(); + for (int i= 0; i < nTabs; ++i) { + CMSBaseTab p = (CMSBaseTab)mTabbedPane.getComponentAt(i); + if (p.isDirty()) { + dirty = true; + } + } + if (!dirty) + return true; + + //return to previous node + TreePath thisPath = new TreePath(((ResourceObject)parent).getPath()); + TreePath selectedPath = + ((CMSResourcePage)viewInstance).getTree().getSelectionPath(); + if (!thisPath.equals(selectedPath)) + ((CMSResourcePage)viewInstance).getTree().setSelectionPath(thisPath); + + //popup dialog for user to set changes + int result = showConfirmDialog("NOTSAVED"); + switch (result) { + case JOptionPane.YES_OPTION: + if (applyCallback()) { + ((CMSResourcePage)viewInstance).getTree().setSelectionPath(selectedPath); + return true; + } + break; + case JOptionPane.NO_OPTION: + resetCallback(); + ((CMSResourcePage)viewInstance).getTree().setSelectionPath(selectedPath); + return true; + default: + break; + } + + //can not be unselected + return false; + } + + //== ChangeListener == + public void stateChanged(ChangeEvent e) { + //Debug.println("CMSTabPanel: stateChanged()"); + CMSBaseConfigPanel selectedPanel = (CMSBaseConfigPanel)mTabbedPane.getSelectedComponent(); + if ( selectedPanel != null ) + selectedPanel.initialize(); + mTabbedPane.invalidate(); + mTabbedPane.validate(); + mTabbedPane.repaint(1); + } + + /** + * Add Panels to the Tab Panel. ChangeListener is + * added automatically. + * + * @param p CMS Panel to be added + */ + public void addTab(CMSBaseTab p) { + mTabbedPane.addTab(p.getTitle(), p); + } + + /*========================================================== + * protected methods + *==========================================================*/ + + /** + * create button panel using the factory method + */ + protected JPanel createButtonPanel() { + mbOK = makeJButton("APPLY"); + mbReset = makeJButton("RESET"); + mbHelp = makeJButton("HELP"); + + //JButton[] buttons = { mbOK, mbReset, mbHelp }; + JButton[] buttons = { mbOK, mbReset }; + return makeJButtonPanel(buttons, true, true); + } + + class NSTabbedPane extends JTabbedPane { +/* + public String getUIClassID() { + return "SecondaryTabbedPaneUI"; + } +*/ + } + + //=== OVERWRITE DIALOG MESSAGE ===================== + + protected void showMessageDialog(String keyword, int messageType ) { + CMSAdminUtil.showMessageDialog(mModel.getFrame(), mResource, mPanelName, keyword, messageType); + } + + protected void showMessageDialog(String keyword) { + showMessageDialog(keyword, ERROR_MESSAGE); + } + + protected int showConfirmDialog(String keyword, int messageType ) { + return CMSAdminUtil.showConfirmDialog(mModel.getFrame(), mResource, mPanelName, keyword, messageType); + } + + protected int showConfirmDialog(String keyword) { + return showConfirmDialog(keyword, WARNING_MESSAGE); + } + + protected void showErrorDialog(String message) { + CMSAdminUtil.showErrorDialog(mModel.getFrame(), mResource, message, ERROR_MESSAGE); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMSUserCertSettingPanel.java b/base/console/src/com/netscape/admin/certsrv/config/CMSUserCertSettingPanel.java new file mode 100644 index 000000000..ca424c3a0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMSUserCertSettingPanel.java @@ -0,0 +1,155 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; + +import java.awt.event.*; + +/** + * User Certificate Setting + * + * @author Christine Ho + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class CMSUserCertSettingPanel extends CMSCertSettingPanel { + + /*========================================================== + * variables + *==========================================================*/ + private String _servletName; //destination name + private CMSTabPanel mParent; + private PanelMapperConfigDialog mDialog = null; + private static final String RAHELPINDEX = + "configuration-ra-ldappublish-usercert-help"; + private static final String CAHELPINDEX = + "configuration-ca-ldappublish-usercert-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public CMSUserCertSettingPanel(String panelName, CMSTabPanel parent) { + super(panelName, parent); + _servletName = getServletName(panelName); + mParent = parent; + if (panelName.equals("RAUSERCERTSETTING")) + mHelpToken = RAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * Actual UI construction + */ + public void init() { + super.init(); + + //XXX B1 - disable the publisher configuration + mPublisher.setEnabled(false); + //XXX B1 - disable the publisher configuration + + refresh(); + } + + public void refresh() { + _model.progressStart(); + NameValuePairs nvp = new NameValuePairs(); + nvp.put(Constants.PR_MAPPER, ""); + nvp.put(Constants.PR_PUBLISHER, ""); + + try { + NameValuePairs val = _admin.read(_servletName, + ScopeDef.SC_USERCERT, Constants.RS_ID_CONFIG, nvp); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + _model.progressStop(); + } + _model.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mMapper)) { + Debug.println("Edit Mapper Config"); + mDialog = new PanelMapperConfigDialog(_model.getFrame(), _admin); + mDialog.showDialog(_mapper.getText(), + _servletName, ScopeDef.SC_USERCERT); + if (!mDialog.isOK()) + return; + refresh(); + } else if (e.getSource().equals(mPublisher)) { + //Debug.println("Edit Publisher Config"); + } + } + + /*========================================================== + * private methods + *==========================================================*/ + private String getServletName(String panelName) { + if (panelName.equals("CAUSERCERTSETTING")) + return DestDef.DEST_CA_ADMIN; + return DestDef.DEST_RA_ADMIN; + } + + private void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_MAPPER)) { + _mapper.setText(value); + } else if (name.equals(Constants.PR_PUBLISHER)) { + _publisher.setText(value); + } + } + } + +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/CMStoAdminEncryptionPane.java b/base/console/src/com/netscape/admin/certsrv/config/CMStoAdminEncryptionPane.java new file mode 100644 index 000000000..ea448b4e0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CMStoAdminEncryptionPane.java @@ -0,0 +1,67 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.security.EncryptionPane; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.event.*; + +/** + * Encryption set preference panel glue between CMS and KingPin + * + * @author Christina Fu (cfu) + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + * @see com.netscape.management.admserv.config + */ + +/* replace "implements ActionListener" with + *"implements IPluginConfigPanel" when the + * com.netscape.management.admserv.config.* package is available + +public class CMStoAdminEncryptionPane extends EncryptionPane implements IPluginConfigPanel{ +*/ +public class CMStoAdminEncryptionPane extends EncryptionPane + implements ActionListener +{ + protected boolean mEncryptionPaneDirty = false; + + public CMStoAdminEncryptionPane(ConsoleInfo consoleInfo) { + super(consoleInfo); + } + + /** + * overrides the super class action listener + */ + public void actionPerformed(ActionEvent e) { + Debug.println("CMStoAdminEncryptionPane: actionPerformed()"); + mEncryptionPaneDirty = true; + } + + public boolean isDirty() { + return mEncryptionPaneDirty; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsConfigDialog.java b/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsConfigDialog.java new file mode 100644 index 000000000..9a4f5ae17 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsConfigDialog.java @@ -0,0 +1,76 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * CRL Extensions Parameter Configuration Dialog + * + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CRLExtensionsConfigDialog extends CMSBaseConfigDialog + implements ActionListener +{ + /*========================================================== + * constructors + *==========================================================*/ + public CRLExtensionsConfigDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + PREFIX = "CRLEXTCONFIGDIALOG"; + CAHELPINDEX = "configuration-ca-edit-crlextensionrule-dbox-help"; + + mImplName_token = Constants.PR_CRLEXT_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_CRLEXTSRULE; + + init(nvp,parent,conn,dest); + } + + public CRLExtensionsConfigDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest, + String id) { + + super(parent, dest); + PREFIX = "CRLEXTCONFIGDIALOG"; + CAHELPINDEX = "configuration-ca-edit-crlextensionrule-dbox-help"; + + mImplName_token = Constants.PR_CRLEXT_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_CRLEXTSRULE; + + init(nvp,parent,conn,dest,id); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsInstanceTab.java b/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsInstanceTab.java new file mode 100644 index 000000000..5c687ea90 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsInstanceTab.java @@ -0,0 +1,114 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + + +/** + * CRL Extensions - Instances Management Tab + * + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class CRLExtensionsInstanceTab extends CMSPluginInstanceTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "CRLEXTSRULE"; + + private final static String CAHELPINDEX = "configuration-ca-crlinstances-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public CRLExtensionsInstanceTab(CMSBaseResourceModel model, String dest) { + super(model,dest,PANEL_NAME); + Debug.println("CRLExtensionsInstanceTab::CRLExtensionsInstanceTab(,"+dest); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new RuleRuleDataModel(); + mScope = ScopeDef.SC_CRLEXTS_RULES; + RULE_NAME = CRLExtensionsRuleDataModel.RULE_NAME; + RULE_STAT = CRLExtensionsRuleDataModel.RULE_STAT; + mHelpToken = CAHELPINDEX; + } + + public CRLExtensionsInstanceTab(CMSBaseResourceModel model, String dest, String id) { + super(model,dest,PANEL_NAME); + Debug.println("CRLExtensionsInstanceTab::CRLExtensionsInstanceTab(,"+dest); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new RuleRuleDataModel(); + mScope = ScopeDef.SC_CRLEXTS_RULES; + RULE_NAME = CRLExtensionsRuleDataModel.RULE_NAME; + RULE_STAT = CRLExtensionsRuleDataModel.RULE_STAT; + mHelpToken = CAHELPINDEX; + mId = id; + } + + + public CMSBaseConfigDialog makeNewConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) + { + if (mId != null && mId.length() > 0) + return new CRLExtensionsConfigDialog(nvp, parent, conn, dest, mId); + else + return new CRLExtensionsConfigDialog(nvp, parent, conn, dest); + } + + public PluginSelectionDialog getPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + return new CRLExtensionsPluginSelectionDialog(parent, conn, dest, pluginType); + } + + + /** + * create the user action button panel + */ + protected JPanel createUserButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + mAdd.setEnabled(false); + mDelete.setEnabled(false); + mEdit = makeJButton("EDIT"); + JButton[] buttons = {mEdit}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsPluginSelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsPluginSelectionDialog.java new file mode 100644 index 000000000..aa169235d --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsPluginSelectionDialog.java @@ -0,0 +1,67 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * CRL Extensions Plugin Selection Dialog + * + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CRLExtensionsPluginSelectionDialog extends PluginSelectionDialog +{ + /*========================================================== + * variables + *==========================================================*/ + private static final String PREFIX = "CRLEXTSELECTIONDIALOG"; + private static final String CAHELPINDEX = + "configuration-ca-add-crlextensionrule-dbox-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public CRLExtensionsPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + super(PREFIX, parent,conn, dest, pluginType); +// mScope = ScopeDef.SC_RULE_IMPLS; + mInstanceScope = ScopeDef.SC_CRLEXTS_RULES; + mImageName = CMSAdminResources.IMAGE_RULE_PLUGIN; + mHelpToken = CAHELPINDEX; + setDisplay(); + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsRuleDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsRuleDataModel.java new file mode 100644 index 000000000..e5ae9352a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsRuleDataModel.java @@ -0,0 +1,69 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.Debug; + + +/** + * CRL Extensions instance Data model - represents the instance + * table information + * + * @version $Revision$, $Date$ + */ + +public class CRLExtensionsRuleDataModel extends CMSRuleDataModel +{ + + /*========================================================== + * constructors + *==========================================================*/ + public CRLExtensionsRuleDataModel() { + super(); + } + + protected String[] getColumns() { + Debug.println("PolicyRuleDataModel.getColumns()"); + String x[] = {CRLEXTS_RULE, STATUS}; + return x; + } + + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + + if (obj.get(RULE_STAT).equalsIgnoreCase("enabled")) { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE), + JLabel.LEFT)); + v.addElement(mResource.getString("CRLEXTSRULE_LABEL_ENABLED_LABEL")); + } else { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE), + JLabel.LEFT)); + v.addElement(mResource.getString("CRLEXTSRULE_LABEL_DISABLED_LABEL")); + } + addRow(v, data); + mRules.addElement(obj.get(RULE_NAME)); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java b/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java new file mode 100644 index 000000000..040b21b83 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java @@ -0,0 +1,330 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * CRL IP Editor + * + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class CRLIPEditor extends JDialog implements ActionListener { + + private final static String PREFIX = "CRLIPEDITOR"; + private final static String HELPINDEX = + "configuration-revocation"; + private JButton mOK, mCancel, mHelp; + private String mName; + private JTextField mNameText, mDescText; + private ResourceBundle mResource; + private JFrame mParentFrame; + private AdminConnection mAdmin; + private JLabel nameLabel, descLabel; + private Color mActiveColor; + private String mDest; + private JCheckBox mEnableBox; + private boolean mEnable = true; + private String mInstanceName; + private Vector mNames; + + public CRLIPEditor(AdminConnection admin, JFrame parent, + String name, String dest, String instanceName, Vector names) { + super(parent,true); + mParentFrame = parent; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mAdmin = admin; + mName = name; + mNames = names; + mInstanceName = instanceName; + mDest = dest; + setSize(600, 180); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + setDisplay(); + } + + private void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + //gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(content, gbc); + center.add(content); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + public void showDialog(NameValuePairs values) { + + for (String name : values.keySet()) { + String val = values.get(name); + if ((mName == null || mName.length() == 0) && + name.equals(Constants.PR_ID)) { + mNameText.setText(val); + } else if (name.equals(Constants.PR_DESCRIPTION)) { + mDescText.setText(val); + } else if (name.equals(Constants.PR_ENABLED)) { + if (val.equalsIgnoreCase(Constants.TRUE)) + mEnable = true; + else + mEnable = false; + } + } + + mEnableBox.setSelected(mEnable); + enableCRLIP(); + this.show(); + } + + public String getCRLName() { + return mNameText.getText().trim(); + } + + private void enableCRLIP() { + if (mName == null || mName.length() == 0) { + nameLabel.setEnabled(true); + mNameText.setBackground(mActiveColor); + mNameText.setEnabled(true); + mNameText.setEditable(true); + + descLabel.setEnabled(true); + mDescText.setBackground(mActiveColor); + mDescText.setEnabled(true); + mDescText.setEditable(true); + + CMSAdminUtil.repaintComp(nameLabel); + CMSAdminUtil.repaintComp(mNameText); + } else if (mEnable) { + descLabel.setEnabled(true); + mDescText.setBackground(mActiveColor); + mDescText.setEnabled(true); + mDescText.setEditable(true); + } else { + descLabel.setEnabled(false); + mDescText.setBackground(getBackground()); + mDescText.setEnabled(false); + mDescText.setEditable(false); + } + + CMSAdminUtil.repaintComp(descLabel); + CMSAdminUtil.repaintComp(mDescText); + } + + private JPanel makeContentPanel() { + JPanel mainPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mainPanel.setLayout(gb); + + if (mName != null && mName.length() > 0) { + CMSAdminUtil.resetGBC(gbc); + JLabel label1 = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "CRLIPNAME", null); + gbc.anchor = gbc.WEST; + //gbc.weightx = 1.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(label1, gbc); + mainPanel.add(label1); + + CMSAdminUtil.resetGBC(gbc); + JLabel label2 = new JLabel(mName); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(label2, gbc); + mainPanel.add(label2); + } + + CMSAdminUtil.resetGBC(gbc); + mEnableBox = CMSAdminUtil.makeJCheckBox(mResource, PREFIX, + "ENABLE", null, false, this); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(mEnableBox, gbc); + mainPanel.add(mEnableBox); + + if (mName == null || mName.length() == 0) { + CMSAdminUtil.resetGBC(gbc); + nameLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "CRLIPNAME", null); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.insets = new Insets(0, 0, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(nameLabel, gbc); + mainPanel.add(nameLabel); + + CMSAdminUtil.resetGBC(gbc); + mNameText = new JTextField(30); + gbc.anchor = gbc.WEST; + gbc.weightx = 0.0; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(mNameText, gbc); + mainPanel.add(mNameText); + //mActiveColor = mNameText.getBackground(); + } + + CMSAdminUtil.resetGBC(gbc); + descLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "DESCRIPTION", null); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gbc.weightx = 0.0; + gb.setConstraints(descLabel, gbc); + mainPanel.add(descLabel); + + CMSAdminUtil.resetGBC(gbc); + mDescText = new JTextField(30); + gbc.anchor = gbc.WEST; + gbc.weightx = 0.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gb.setConstraints(mDescText, gbc); + mainPanel.add(mDescText); + mActiveColor = mDescText.getBackground(); + + return mainPanel; + } + + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, PREFIX, "HELP", null, this); + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + public void actionPerformed(ActionEvent e) { + + if (e.getSource().equals(mEnableBox)) { + mEnable = mEnableBox.isSelected(); + enableCRLIP(); + } else if (e.getSource().equals(mCancel)) { + this.dispose(); + } else if (e.getSource().equals(mOK)) { + NameValuePairs nvps = new NameValuePairs(); + + if (mName != null && mName.length() > 0) { + nvps.put(Constants.PR_ID, mName); + } else { + nvps.put(Constants.PR_ID, mNameText.getText().trim()); + } + + nvps.put(Constants.PR_DESCRIPTION, mDescText.getText().trim()); + + if (mEnable) { + nvps.put(Constants.PR_ENABLED, Constants.TRUE); + } else { + nvps.put(Constants.PR_ENABLED, Constants.FALSE); + } + + try { + if (mName != null && mName.length() > 0) { + mAdmin.modify(mDest, ScopeDef.SC_CRLIPS, Constants.OP_SET, nvps); + } else { + for (int i = 0; i < mNames.size(); i++) { + String name = (String)mNames.elementAt(i); + if (name.equalsIgnoreCase(mNameText.getText().trim())) { + CMSAdminUtil.showMessageDialog(mParentFrame, "Error", + mNameText.getText().trim()+" already exists", + CMSAdminUtil.ERROR_MESSAGE); + return; + } + if (mNameText.getText().trim().indexOf(' ') > -1 || + mNameText.getText().trim().indexOf('.') > -1 || + mNameText.getText().trim().indexOf(',') > -1) { + CMSAdminUtil.showMessageDialog(mParentFrame, "Error", + "Invalid name: "+mNameText.getText(), + CMSAdminUtil.ERROR_MESSAGE); + return; + } + } + + mAdmin.add(mDest, ScopeDef.SC_CRLIPS, + mNameText.getText().trim(), nvps); + mNames.addElement(mNameText.getText()); + } + this.dispose(); + } catch (EAdminException ex) { + CMSAdminUtil.showMessageDialog(mParentFrame, + "Error", ex.toString(), CMSAdminUtil.ERROR_MESSAGE); + } + } else if (e.getSource().equals(mHelp)) { + CMSAdminUtil.help(HELPINDEX); + } + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/ConfigTableModel.java b/base/console/src/com/netscape/admin/certsrv/config/ConfigTableModel.java new file mode 100644 index 000000000..8608e943a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ConfigTableModel.java @@ -0,0 +1,42 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; + +/** + * Table Model for configuration parameters + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ConfigTableModel extends CMSTableModel { + private static String[] mColumns = {CONFIG, VALUE}; + + public ConfigTableModel() { + init(mColumns); + } + + public boolean isCellEditable(int row, int col) { + if(col == 1) + return true; + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/ConnectorEditor.java b/base/console/src/com/netscape/admin/certsrv/config/ConnectorEditor.java new file mode 100644 index 000000000..6f711eca9 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ConnectorEditor.java @@ -0,0 +1,634 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.ug.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.table.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Connector Editor + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ConnectorEditor extends JDialog implements ActionListener, MouseListener { + + private final static String PREFIX = "CONNECTOREDITOR"; + private final static String HELPINDEX = + "configuration-ra-connector-editor-help"; + private final static String HELPINDEX1 = + "configuration-overview"; + private JButton mOK, mCancel, mHelp; + private String mName; + private ListCertsModel mDataModel; + // Changed by beomsuk + //private JTextField mLocalText, mURIText, mHostText, mPortText; + private JTextField mLocalText, mURIText, mHostText, mPortText, mTimeoutText, mNicknameText; + // Change end + private ResourceBundle mResource; + private JFrame mParentFrame; + private AdminConnection mAdmin; + // Changed by beomsuk + //private JLabel idLabel, uriLabel, hostLabel, portLabel; + private JLabel idLabel, uriLabel, hostLabel, portLabel, timeoutLabel, timeunitLabel, + nicknameLabel; + // Change end + private Color mActiveColor; + private String mDest; + private JCheckBox mEnableBox; + private boolean mEnable = false; + private String mInstanceName; + private boolean mColocated; + private JTable mCertTable; + private JTextArea mHeading; + + public ConnectorEditor(AdminConnection admin, JFrame parent, String name, + String dest, String instanceName, boolean colocated) { + super(parent,true); + mParentFrame = parent; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mAdmin = admin; + mName = name; + mInstanceName = instanceName; + mDest = dest; + mColocated = colocated; + setSize(460, 516); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + setDisplay(); + } + + private void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + //gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(content, gbc); + center.add(content); + + NameValuePairs response = getCertsList(ScopeDef.SC_USERCERTSLIST); + mDataModel.removeAllRows(); + if (response != null) { + String[] vals = new String[response.size()]; + int i=0; + for (String entry : response.keySet()) { + vals[i++] = entry.trim(); + } + + int sindex = 0; + String snickname = ""; + CMSAdminUtil.quickSort(vals, 0, response.size() - 1); + for (i=0; i -1) { + sindex = i; + snickname = fullnickname; + } + } else { + if (fullnickname.indexOf("raSigningCert") > -1) { + sindex = i; + snickname = fullnickname; + } + } + v.addElement(nickname); + v.addElement(entry.substring(lastindex+1)); + v.addElement(value); + v.addElement(tokenname); + mDataModel.addRow(v); + } + } + mCertTable.setRowSelectionInterval(sindex, sindex); + mNicknameText.setText(snickname); + } + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new DefaultTableCellRenderer()); + } + + private void displayCert(int row) { + String nickname = (String)(mCertTable.getValueAt(row, 3)) + ":" + + (String)(mCertTable.getValueAt(row, 0)); + String serialno = (String)(mCertTable.getValueAt(row, 1)); + String issuername = (String)(mCertTable.getValueAt(row, 2)); + + try { + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_NICK_NAME, nickname); + nvps.put(Constants.PR_SERIAL_NUMBER, serialno); + nvps.put(Constants.PR_ISSUER_NAME, issuername); + NameValuePairs results = mAdmin.process( + DestDef.DEST_SERVER_ADMIN, ScopeDef.SC_CERT_PRETTY_PRINT, + Constants.RS_ID_CONFIG, nvps); + if (nvps.size() <= 0) + return; + String name = results.keySet().iterator().next(); // first element + String print = results.get(name); + CertViewDialog certdialog = new CertViewDialog(mParentFrame); + certdialog.showDialog(nickname, print); + } catch (EAdminException ex) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, ex.toString(), + CMSAdminUtil.ERROR_MESSAGE); + } + } + + public void mouseClicked(MouseEvent e) { + //setButtons(); + + //we track the double click action on the table entry - View op + int row = mCertTable.getSelectedRow(); + if(row >= 0) { + mNicknameText.setText((String)(mCertTable.getValueAt(row, 0))); + if(e.getClickCount() == 2) { + displayCert(row); + } + } + } + + public void mouseReleased(MouseEvent e) { + } + + public void mousePressed(MouseEvent e) { + } + + public void mouseEntered(MouseEvent e) { + } + + public void mouseExited(MouseEvent e) { + } + + public void showDialog(NameValuePairs values) { + + for (String name : values.keySet()) { + String val = values.get(name); + if (name.equals(Constants.PR_HOST)) { + mHostText.setText(val); + } else if (name.equals(Constants.PR_PORT)) { + mPortText.setText(val); + // Inserted by beomsuk + } else if (name.equals(Constants.PR_TIMEOUT)) { + if (val == null || val.equals("")) + mTimeoutText.setText("30"); + else + mTimeoutText.setText(val); + // Insert end + } else if (name.equals(Constants.PR_ENABLED)) { + if (val.equals(Constants.TRUE)) + mEnable = true; + else + mEnable = false; + } + } + + mEnableBox.setSelected(mEnable); + enableConnector(); + //update(local); + this.show(); + } + + private void enableConnector() { + if (mEnable) { + update(); + } else { + hostLabel.setEnabled(false); + portLabel.setEnabled(false); + nicknameLabel.setEnabled(false); + timeoutLabel.setEnabled(false); + //timeunitLabel.setEnabled(false); + mHostText.setBackground(getBackground()); + mPortText.setBackground(getBackground()); + mNicknameText.setBackground(getBackground()); + mTimeoutText.setBackground(getBackground()); + mHostText.setEnabled(false); + mPortText.setEnabled(false); + mNicknameText.setEnabled(false); + mTimeoutText.setEnabled(false); + mHostText.setEditable(false); + mPortText.setEditable(false); + mNicknameText.setEditable(false); + mTimeoutText.setEditable(false); + mHeading.setEnabled(false); + mCertTable.setEnabled(false); + mCertTable.setBackground(getBackground()); + CMSAdminUtil.repaintComp(hostLabel); + CMSAdminUtil.repaintComp(portLabel); + CMSAdminUtil.repaintComp(timeoutLabel); + //CMSAdminUtil.repaintComp(timeunitLabel); + CMSAdminUtil.repaintComp(mHostText); + CMSAdminUtil.repaintComp(mPortText); + CMSAdminUtil.repaintComp(mTimeoutText); + } + } + + private void update() { + hostLabel.setEnabled(true); + portLabel.setEnabled(true); + nicknameLabel.setEnabled(true); + timeoutLabel.setEnabled(true); + mHostText.setEditable(true); + mPortText.setEditable(true); + mNicknameText.setEditable(true); + mTimeoutText.setEditable(true); + mHostText.setBackground(mActiveColor); + mPortText.setBackground(mActiveColor); + mNicknameText.setBackground(mActiveColor); + mTimeoutText.setBackground(mActiveColor); + mHostText.setEnabled(true); + mPortText.setEnabled(true); + mTimeoutText.setEnabled(true); + mNicknameText.setEnabled(true); + mHeading.setEnabled(true); + mCertTable.setEnabled(true); + mCertTable.setBackground(mActiveColor); + + CMSAdminUtil.repaintComp(hostLabel); + CMSAdminUtil.repaintComp(portLabel); + CMSAdminUtil.repaintComp(timeoutLabel); + //CMSAdminUtil.repaintComp(timeunitLabel); + CMSAdminUtil.repaintComp(mHostText); + CMSAdminUtil.repaintComp(mPortText); + CMSAdminUtil.repaintComp(mTimeoutText); + } + + private JPanel makeContentPanel() { + JPanel mainPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mainPanel.setLayout(gb); + +/* + CMSAdminUtil.resetGBC(gbc); + JLabel label1 = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "CONNECTORNAME", null); + gbc.anchor = gbc.WEST; + //gbc.weightx = 1.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(label1, gbc); + mainPanel.add(label1); + + CMSAdminUtil.resetGBC(gbc); + JLabel label2 = new JLabel(mName); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + 0, CMSAdminUtil.COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(label2, gbc); + mainPanel.add(label2); +*/ + + CMSAdminUtil.resetGBC(gbc); + JLabel label2 = new JLabel(mName+":"); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.fill = gbc.HORIZONTAL; + gb.setConstraints(label2, gbc); + mainPanel.add(label2); + + CMSAdminUtil.resetGBC(gbc); + mEnableBox = CMSAdminUtil.makeJCheckBox(mResource, PREFIX, + "ENABLE", null, false, this); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; +/* + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE); +*/ + gb.setConstraints(mEnableBox, gbc); + mainPanel.add(mEnableBox); + + CMSAdminUtil.resetGBC(gbc); + hostLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "HOST", null); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.insets = new Insets(0, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(hostLabel, gbc); + mainPanel.add(hostLabel); + + CMSAdminUtil.resetGBC(gbc); + mHostText = new JTextField(20); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; +/* + gbc.insets = new Insets(0, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); +*/ + gb.setConstraints(mHostText, gbc); + mainPanel.add(mHostText); + mActiveColor = mHostText.getBackground(); + + CMSAdminUtil.resetGBC(gbc); + portLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "PORT", null); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + gbc.weightx = 0.0; + gb.setConstraints(portLabel, gbc); + mainPanel.add(portLabel); + + CMSAdminUtil.resetGBC(gbc); + mPortText = new JTextField(20); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.fill = gbc.HORIZONTAL; +/* + gbc.insets = new Insets(0, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); +*/ + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gb.setConstraints(mPortText, gbc); + mainPanel.add(mPortText); + + CMSAdminUtil.resetGBC(gbc); + timeoutLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "TIMEOUT", null); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 4*CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + gbc.weightx = 0.0; + gb.setConstraints(timeoutLabel, gbc); + mainPanel.add(timeoutLabel); + + CMSAdminUtil.resetGBC(gbc); + mTimeoutText = new JTextField(20); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.fill = gbc.HORIZONTAL; +/* + gbc.insets = new Insets(0, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); +*/ + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gb.setConstraints(mTimeoutText, gbc); + mTimeoutText.setText("30"); + mainPanel.add(mTimeoutText); + + CMSAdminUtil.resetGBC(gbc); + nicknameLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "NICKNAME", null); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.insets = new Insets(0, CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(nicknameLabel, gbc); + mainPanel.add(nicknameLabel); + + CMSAdminUtil.resetGBC(gbc); + mNicknameText = new JTextField(50); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(mNicknameText, gbc); + mainPanel.add(mNicknameText); + + CMSAdminUtil.resetGBC(gbc); + mHeading = createTextArea(mResource.getString( + PREFIX+"_TEXT_CERTHEADING_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.fill = gbc.HORIZONTAL; + gbc.insets = new Insets(2*CMSAdminUtil.COMPONENT_SPACE, + 4*CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(mHeading, gbc); + mainPanel.add(mHeading); + + CMSAdminUtil.resetGBC(gbc); + mDataModel = new ListCertsModel(); + mCertTable = new JTable(mDataModel); + JScrollPane scrollPane = JTable.createScrollPaneForTable(mCertTable); + scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mCertTable.setPreferredScrollableViewportSize(new Dimension(200, 350)); + mCertTable.setAutoscrolls(true); + mCertTable.sizeColumnsToFit(true); + mCertTable.addMouseListener(this); + scrollPane.setBackground(Color.white); + setLabelCellRenderer(mCertTable, 0); + setLabelCellRenderer(mCertTable, 1); + setLabelCellRenderer(mCertTable, 2); + +/* + Vector v = new Vector(); + v.addElement("abc1"); + v.addElement("def1"); + v.addElement("hij1"); + mDataModel.addRow(v); + Vector v1 = new Vector(); + v1.addElement("abc1"); + v1.addElement("def1"); + v1.addElement("hij1"); + mDataModel.addRow(v1); + Vector v2 = new Vector(); + v2.addElement("abc1"); + v2.addElement("def1"); + v2.addElement("hij1"); + mDataModel.addRow(v2); +*/ + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + 4*CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(scrollPane, gbc); + mainPanel.add(scrollPane); + + + return mainPanel; + } + + private JTextArea createTextArea(String str) { + JTextArea desc = new JTextArea(str); + desc.setBackground(getBackground()); + desc.setEditable(false); + desc.setCaretColor(getBackground()); + desc.setLineWrap(true); + desc.setWrapStyleWord(true); + + return desc; + } + + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, PREFIX, "HELP", null, this); + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + public void actionPerformed(ActionEvent e) { + + if (e.getSource().equals(mEnableBox)) { + mEnable = mEnableBox.isSelected(); + enableConnector(); + } else if (e.getSource().equals(mCancel)) + this.dispose(); + else if (e.getSource().equals(mOK)) { + NameValuePairs nvps = new NameValuePairs(); + + if (mEnable) { + nvps.put(Constants.PR_LOCAL, Constants.FALSE); + nvps.put(Constants.PR_HOST, mHostText.getText()); + String portStr = mPortText.getText().trim(); + try { + int port = Integer.parseInt(portStr); + if (port <= 0) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, PREFIX, + "OUTOFRANGE", CMSAdminUtil.ERROR_MESSAGE); + return; + } + } catch (NumberFormatException ex) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, PREFIX, + "NONINTEGER", CMSAdminUtil.ERROR_MESSAGE); + return; + } + nvps.put(Constants.PR_PORT, portStr); + + String timeoutStr = mTimeoutText.getText().trim(); + try { + int timeout = Integer.parseInt(timeoutStr); + if (timeout < 0) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, PREFIX, + "TIMEOUTOUTOFRANGE", CMSAdminUtil.ERROR_MESSAGE); + return; + } + } catch (NumberFormatException ex) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, PREFIX, + "TIMEOUTNONINTEGER", CMSAdminUtil.ERROR_MESSAGE); + return; + } + nvps.put(Constants.PR_TIMEOUT, timeoutStr); + + if (mName.equals("Data Recovery Manager Connector")) { + nvps.put(Constants.PR_URI, "/kra/agent/kra/connector"); + } else if (mName.equals("Registration Manager Connector")) { + nvps.put(Constants.PR_URI, "/ra/connector"); + } else if (mName.equals("Certificate Manager Connector")) { + nvps.put(Constants.PR_URI, "/ca/connector"); + } + nvps.put(Constants.PR_NICK_NAME, mNicknameText.getText().trim()); + nvps.put(Constants.PR_ENABLED, Constants.TRUE); + } else { + nvps.put(Constants.PR_ENABLED, Constants.FALSE); + } + + try { + mAdmin.modify(mDest, ScopeDef.SC_CONNECTOR, + mName, nvps); + this.dispose(); + } catch (EAdminException ex) { + CMSAdminUtil.showMessageDialog(mParentFrame, + "Error", ex.toString(), CMSAdminUtil.ERROR_MESSAGE); + } + } else if (e.getSource().equals(mHelp)) { + CMSAdminUtil.help(HELPINDEX1); + } + } + + private NameValuePairs getCertsList(String scope) { + try { + NameValuePairs nvps = + mAdmin.search(DestDef.DEST_SERVER_ADMIN, scope, new NameValuePairs()); + return nvps; + } catch (EAdminException ex) { + CMSAdminUtil.showMessageDialog(mParentFrame, + "Error", ex.toString(), CMSAdminUtil.ERROR_MESSAGE); + return null; + } + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/EvaluatorRegisterDialog.java b/base/console/src/com/netscape/admin/certsrv/config/EvaluatorRegisterDialog.java new file mode 100644 index 000000000..d4dff2e25 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/EvaluatorRegisterDialog.java @@ -0,0 +1,41 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; + +/** + * Evaluator Implementation Registration Editor + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class EvaluatorRegisterDialog extends RegisterDialog { + + private final static String PREFIX = "EVALUATORREGISTERDIALOG"; + + public EvaluatorRegisterDialog(JFrame parent, AdminConnection conn) { + super(PREFIX, parent, conn); + setDisplay(); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/GeneralLogPanel.java b/base/console/src/com/netscape/admin/certsrv/config/GeneralLogPanel.java new file mode 100644 index 000000000..66e9b4397 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/GeneralLogPanel.java @@ -0,0 +1,250 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * LDAP server setting tab + * + * @author Ade Lee + * @version $Revision: 1211 $, $Date: 2010-08-18 13:15:37 -0400 (Wed, 18 Aug 2010) $ + */ +public class GeneralLogPanel extends CMSBaseTab { + + private static String PANEL_NAME = "GENERALLOG"; + private static final String HELPINDEX = + "configuration-general-logs-settings-help"; + private JCheckBox mEnable; + private Color mActiveColor; + private JLabel mLevelLabel; + private JTextField mLevelText; + private JCheckBox mShowCaller; + + protected AdminConnection mAdmin; + protected CMSBaseResourceModel mModel; + private String mServletName; + private CMSTabPanel mParent; + + public GeneralLogPanel(CMSTabPanel parent) { + super(PANEL_NAME, parent); + mHelpToken = HELPINDEX; + mServletName = DestDef.DEST_LOG_ADMIN; + mModel = parent.getResourceModel(); + mParent = parent; + } + + public void init() { + mAdmin = mModel.getServerInfo().getAdmin(); + JPanel serverInfo = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mCenterPanel.setLayout(gb); + + //add the enable checkbox + mEnable = makeJCheckBox("ENABLE"); + mEnable.setSelected(true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE, + 0, + DIFFERENT_COMPONENT_SPACE); + gb.setConstraints(mEnable, gbc); + mCenterPanel.add(mEnable); + + //add the debug properties panel + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(serverInfo, gbc); + mCenterPanel.add(serverInfo); + + GridBagLayout gb1 = new GridBagLayout(); + serverInfo.setLayout(gb1); + serverInfo.setBorder(makeTitledBorder("DEBUG")); + + // add frequency label and text field + CMSAdminUtil.resetGBC(gbc); + mLevelLabel = makeJLabel("LEVEL"); + mLevelText = makeJTextField(30); + mActiveColor = mLevelText.getBackground(); + CMSAdminUtil.addEntryField(serverInfo, + mLevelLabel, mLevelText, gbc); + + // add show caller checkbox + /* + CMSAdminUtil.resetGBC(gbc); + mShowCaller = makeJCheckBox("SHOWCALLER"); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,DIFFERENT_COMPONENT_SPACE - COMPONENT_SPACE,0,COMPONENT_SPACE); + gb1.setConstraints(mShowCaller, gbc); + serverInfo.add(mShowCaller); + */ + refresh(); + } + + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_DEBUG_LOG_ENABLE, "true"); + nvps.put(Constants.PR_DEBUG_LOG_LEVEL, "0"); + /*nvps.add(Constants.PR_DEBUG_LOG_SHOWCALLER, ""); */ + + try { + NameValuePairs val = mAdmin.read(mServletName, + ScopeDef.SC_GENERAL, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + private void enableFields(boolean enable, Color color) { + mLevelText.setEnabled(enable); + mLevelText.setEditable(enable); + mLevelText.setBackground(color); + mLevelLabel.setEnabled(enable); + mLevelLabel.setBackground(color); + + mLevelLabel.invalidate(); + mLevelLabel.validate(); + mLevelLabel.repaint(1); + } + + protected void populate(NameValuePairs nvps) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_DEBUG_LOG_ENABLE)) { + if (value.equals(Constants.TRUE)) + mEnable.setSelected(true); + else + mEnable.setSelected(false); + } else if (name.equals(Constants.PR_DEBUG_LOG_LEVEL)) { + mLevelText.setText(value); + } + + /* else if (name.equals(Constants.PR_DEBUG_LOG_SHOWCALLER)) { + if (value.equals(Constants.TRUE)) + mShowCaller.setSelected(true); + else + mShowCaller.setSelected(false); + } */ + + } + + if (mEnable.isSelected()) + enableFields(true, mActiveColor); + else + enableFields(false, getBackground()); + + } + + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + if (mEnable.isSelected()) { + enableFields(true, mActiveColor); + } else { + enableFields(false, getBackground()); + } + } + + /** + * Implementation for saving panel information + * @return true if save successful; otherwise, false. + */ + public boolean applyCallback() { + // check blank fields + String level = mLevelText.getText().trim(); + + if (mEnable.isSelected() && level.equals("")) { + showMessageDialog("BLANKFIELD"); + return false; + } + + try { + int num = Integer.parseInt(level); + if (num < 0) { + showMessageDialog("LEVELRANGE"); + return false; + } + } catch (NumberFormatException e) { + showMessageDialog("NUMBERFORMAT"); + return false; + } + + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_DEBUG_LOG_LEVEL, level); + + /* + if (mShowCaller.isSelected()) + nvps.add(Constants.PR_DEBUG_LOG_SHOWCALLER, Constants.TRUE); + else + nvps.add(Constants.PR_DEBUG_LOG_SHOWCALLER, Constants.FALSE); + */ + + if (mEnable.isSelected()) + nvps.put(Constants.PR_DEBUG_LOG_ENABLE, Constants.TRUE); + else + nvps.put(Constants.PR_DEBUG_LOG_ENABLE, Constants.FALSE); + + mModel.progressStart(); + try { + mAdmin.modify(mServletName, ScopeDef.SC_GENERAL, + Constants.RS_ID_CONFIG, nvps, false); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + return false; + } + + mModel.progressStop(); + clearDirtyFlag(); + return true; + } + + /** + * Implementation for reset values + * @return true if save successful; otherwise, false. + */ + public boolean resetCallback() { + refresh(); + return true; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/JobsConfigDialog.java b/base/console/src/com/netscape/admin/certsrv/config/JobsConfigDialog.java new file mode 100644 index 000000000..307ddbbc4 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/JobsConfigDialog.java @@ -0,0 +1,62 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Jobs Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class JobsConfigDialog extends CMSBaseConfigDialog + implements ActionListener +{ + + /*========================================================== + * constructors + *==========================================================*/ + public JobsConfigDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + + PREFIX = "JOBSCONFIGDIALOG"; + mImplName_token = Constants.PR_JOBS_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_JOBS; + mHelpToken = "configuration-jobs"; + + init(nvp,parent,conn,dest); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/JobsImplDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/JobsImplDataModel.java new file mode 100644 index 000000000..d3a605433 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/JobsImplDataModel.java @@ -0,0 +1,68 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; + +/** + * Jobs Implementation Data model - represents the implementation + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class JobsImplDataModel extends CMSContentTableModel + implements IDataProcessor +{ + + /*========================================================== + * variables + *==========================================================*/ + public static final String IMPL_NAME = "NAME"; + public static final String IMPL_CLASS = "CLASS"; + public static final String IMPL_DESC = "DESC"; + + private static String[] mColumns = {JOBS_IMPL, CLASSNAME}; + + /*========================================================== + * constructors + *==========================================================*/ + public JobsImplDataModel() { + super(); + init(mColumns); + } + + /*========================================================== + * public methods + *==========================================================*/ + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + v.addElement(new JLabel(obj.get(IMPL_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN), + JLabel.LEFT)); + v.addElement(obj.get(IMPL_CLASS)); + //v.addElement(obj.getValue(IMPL_DESC)); + addRow(v, data); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/JobsImplTab.java b/base/console/src/com/netscape/admin/certsrv/config/JobsImplTab.java new file mode 100644 index 000000000..57848c649 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/JobsImplTab.java @@ -0,0 +1,323 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Jobs Instances Management Tab + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class JobsImplTab extends CMSBaseUGTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String IMPL_NAME = JobsImplDataModel.IMPL_NAME; + private static final String IMPL_CLASS = JobsImplDataModel.IMPL_CLASS; + private static final String IMPL_DESC = JobsImplDataModel.IMPL_DESC; + + private static final String PANEL_NAME = "JOBSIMPL"; + private static final String DIALOG_PREFIX = "JOBSREGISTERDIALOG"; + + private AdminConnection mConnection; + private String mDestination; + + protected JScrollPane mScrollPane; + protected JTable mTable; //table + protected JobsImplDataModel mDataModel; //table model + protected JobsRegisterDialog mEditor=null; //keep single copy + protected ViewDialog mViewer=null; //keep single copy + + protected JButton mRefresh, mAdd, mDelete, mView, mHelp; + private final static String HELPINDEX = "jobsscheduler-certsrv-jobplugin-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public JobsImplTab(CMSBaseResourceModel model) { + super(PANEL_NAME, model); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new JobsImplDataModel(); + mDestination = DestDef.DEST_JOBS_ADMIN; + mHelpToken = HELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } + if (e.getSource().equals(mAdd)) { + if (mEditor==null) + mEditor = new JobsRegisterDialog(mModel.getFrame(), + mConnection); + mEditor.showDialog(mDestination, ScopeDef.SC_JOBS_IMPLS); + refresh(); + } + if (e.getSource().equals(mDelete)) { + Debug.println("Delete"); + if(mTable.getSelectedRow()< 0) + return; + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + delete(); + Debug.println("Deleted"); + } + } + if (e.getSource().equals(mView)) { + Debug.println("View"); + if(mTable.getSelectedRow()< 0) + return; + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + if (mViewer==null) + mViewer = new ViewDialog(mModel.getFrame()); + mViewer.showDialog(obj.get(IMPL_NAME), + obj.get(IMPL_CLASS), + obj.get(IMPL_DESC)); + } + if (e.getSource().equals(mHelp)) { + helpCallback(); + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mouseReleased(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + public void refresh() { + + mDataModel.removeAllRows(); + update(); + + setButtons(); + mTable.invalidate(); + mTable.validate(); + mTable.repaint(1); + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + mView = makeJButton("VIEW"); + JButton[] buttons = {mAdd, mDelete, mView}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + refresh(); + + return mListPanel; + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer(new LabelCellRenderer(new JLabel())); + } + + + //set buttons + private void setButtons() { + + //enable and diable buttons accordingly + //Debug.println("setButtons() - "+mTable.getSelectedRow()); + //Debug.println("setButtons() - "+mTable.getSelectionModel().isSelectionEmpty()); + if (mTable.getSelectionModel().isSelectionEmpty()) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + if(mDataModel.getRowCount()<=0) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + mDelete.setEnabled(true); + mView.setEnabled(true); + + } + + //============================================= + // SEND REQUESTS TO THE SERVER SIDE + //============================================= + private void update() { + //send request and parse data + + mModel.progressStart(); + NameValuePairs response; + try { + response = mConnection.search(mDestination, + ScopeDef.SC_JOBS_IMPLS, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + + Debug.println(response.toString()); + + //parse the data + int i=0; + String[] vals = new String[response.size()]; + Hashtable data = new Hashtable(); + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + Debug.println("entry= "+entry); + Debug.println("value= " + value); + int x = value.indexOf(","); + Debug.println("x = " + x); + NameValuePairs obj = new NameValuePairs(); + obj.put(IMPL_NAME, entry); + vals[i++]= entry ; + if (x != -1) { + obj.put(IMPL_CLASS, value.substring(0, x)); + obj.put(IMPL_DESC, value.substring(x + 1)); + } + else { + obj.put(IMPL_CLASS, value); + } + data.put(entry,obj); + } + + CMSAdminUtil.bubbleSort(vals); + + for (int y=0; y< vals.length ; y++) { + mDataModel.processData(data.get(vals[y])); + } + + data.clear(); + + if (mDataModel.getRowCount() >0) + mTable.setRowSelectionInterval(0,0); + + mModel.progressStop(); + } + + private void delete() { + //get entry name + mModel.progressStart(); + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, + ScopeDef.SC_JOBS_IMPLS, + obj.get(IMPL_NAME)); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/JobsInstanceTab.java b/base/console/src/com/netscape/admin/certsrv/config/JobsInstanceTab.java new file mode 100644 index 000000000..059a741ce --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/JobsInstanceTab.java @@ -0,0 +1,104 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Jobs Instances Management Tab + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class JobsInstanceTab extends CMSPluginInstanceTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "JOBSRULE"; + + private final static String HELPINDEX = "jobsscheduler-certsrv-jobrules-help"; + + + /*========================================================== + * constructors + *==========================================================*/ + public JobsInstanceTab(CMSBaseResourceModel model) { + super(model,DestDef.DEST_JOBS_ADMIN,PANEL_NAME); + Debug.println("JobsInstanceTab::JobsInstanceTab("); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new JobsRuleDataModel(); + mScope = ScopeDef.SC_JOBS_INSTANCE; + RULE_NAME = JobsRuleDataModel.RULE_NAME; + RULE_STAT = JobsRuleDataModel.RULE_STAT; + + mHelpToken = HELPINDEX; + } + + + public CMSBaseConfigDialog makeNewConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest + ) + { + + return new JobsConfigDialog(nvp, + parent, + conn, + dest); + } + + public PluginSelectionDialog getPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType + ) + { + return new JobsPluginSelectionDialog(parent,conn,dest,pluginType); + } + + + /** + * create the user action button panel + */ + protected JPanel createUserButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mEdit = makeJButton("EDIT"); + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + JButton[] buttons = {mAdd, mDelete, mEdit}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/JobsPluginSelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/JobsPluginSelectionDialog.java new file mode 100644 index 000000000..d07e5ed32 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/JobsPluginSelectionDialog.java @@ -0,0 +1,66 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Jobs Plugin Selection Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class JobsPluginSelectionDialog extends PluginSelectionDialog +{ + /*========================================================== + * variables + *==========================================================*/ + private static final String PREFIX = "JOBSSELECTIONDIALOG"; + private static final String HELPINDEX = + "jobsscheduler-certsrv-add-jobrule-dbox-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public JobsPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + super(PREFIX, parent,conn, dest, pluginType); + mScope = ScopeDef.SC_JOBS_IMPLS; + mInstanceScope = ScopeDef.SC_JOBS_INSTANCE; + mImageName = CMSAdminResources.IMAGE_RULE_PLUGIN; + if (dest.equals(DestDef.DEST_JOBS_ADMIN)) + mHelpToken = HELPINDEX; + + setDisplay(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/JobsRegisterDialog.java b/base/console/src/com/netscape/admin/certsrv/config/JobsRegisterDialog.java new file mode 100644 index 000000000..bdb448eeb --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/JobsRegisterDialog.java @@ -0,0 +1,40 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; + +/** + * Jobs Implementation Registration Editor + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class JobsRegisterDialog extends RegisterDialog { + + private final static String PREFIX = "JOBSREGISTERDIALOG"; + + public JobsRegisterDialog(JFrame parent, AdminConnection conn) { + super(PREFIX, parent, conn); + setDisplay(); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/JobsRuleDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/JobsRuleDataModel.java new file mode 100644 index 000000000..76fbd9a38 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/JobsRuleDataModel.java @@ -0,0 +1,71 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.Debug; + + +/** + * Jobs instance Data model - represents the instance + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class JobsRuleDataModel extends CMSRuleDataModel +{ + + /*========================================================== + * constructors + *==========================================================*/ + public JobsRuleDataModel() { + super(); + } + + protected String[] getColumns() { + Debug.println("JobsRuleDataModel.getColumns()"); + String x[] = {JOBS_RULE, STATUS}; + return x; + } + + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + + //XXX NEED TO ADD STUFF + if (obj.get(RULE_STAT).equalsIgnoreCase("enabled")) { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE), + JLabel.LEFT)); + v.addElement(mResource.getString("JOBSRULE_LABEL_ENABLED_LABEL")); + } else { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE), + JLabel.LEFT)); + v.addElement(mResource.getString("JOBSRULE_LABEL_DISABLED_LABEL")); + } + addRow(v, data); + mRules.addElement(obj.get(RULE_NAME)); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/JobsSettingPanel.java b/base/console/src/com/netscape/admin/certsrv/config/JobsSettingPanel.java new file mode 100644 index 000000000..b6a93d191 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/JobsSettingPanel.java @@ -0,0 +1,240 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.connection.*; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +/** + * Jobs Scheduler setting tab + * + * @author cfu + * @version $Revision$, $Date$ + */ +public class JobsSettingPanel extends CMSBaseTab implements ItemListener { + private static final String HELPINDEX = + "jobsscheduler-certsrv-setting-jobrule-help"; + private JTextField mFrequencyText; + private JCheckBox mEnable; + private Color mActiveColor; + private JLabel mFrequencyLabel; + protected AdminConnection mAdmin; + protected CMSBaseResourceModel mModel; + private String mServletName; + private CMSTabPanel mParent; + private String mPanelName; + + public JobsSettingPanel(String panelName, CMSTabPanel parent) { + this(panelName, parent, true); + mPanelName = panelName; + } + + public JobsSettingPanel(String panelName, CMSTabPanel parent, boolean flag) { + super(panelName, parent); + mServletName = DestDef.DEST_JOBS_ADMIN; + mHelpToken = HELPINDEX; + mModel = parent.getResourceModel(); + mParent = parent; + } + + public void init() { + mAdmin = mModel.getServerInfo().getAdmin(); + JPanel serverInfo = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mCenterPanel.setLayout(gb); + + //add the enable checkbox + mEnable = makeJCheckBox("ENABLE"); + mEnable.setSelected(true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(DIFFERENT_COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE, + 0, + DIFFERENT_COMPONENT_SPACE); + gb.setConstraints(mEnable, gbc); + mCenterPanel.add(mEnable); + + //add the frequency panel + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(serverInfo, gbc); + mCenterPanel.add(serverInfo); + + GridBagLayout gb1 = new GridBagLayout(); + serverInfo.setLayout(gb1); + serverInfo.setBorder(makeTitledBorder("FREQUENCY")); + + // add frequency label and text field + CMSAdminUtil.resetGBC(gbc); + mFrequencyLabel = makeJLabel("FREQUENCY"); + mFrequencyText = makeJTextField(30); + mActiveColor = mFrequencyText.getBackground(); + JLabel dateLabel = makeJLabel("MINUTES"); + CMSAdminUtil.addEntryField(serverInfo, + mFrequencyLabel, mFrequencyText, dateLabel, gbc); + + refresh(); + } + + public void refresh() { + mModel.progressStart(); + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_ENABLE, ""); + nvps.put(Constants.PR_JOBS_FREQUENCY, ""); + + try { + NameValuePairs val = mAdmin.read(mServletName, + ScopeDef.SC_JOBS, Constants.RS_ID_CONFIG, nvps); + + populate(val); + } catch (EAdminException e) { + showErrorDialog(e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + clearDirtyFlag(); + mParent.setOKCancel(); + } + + protected void populate(NameValuePairs nvps) { + String clientCert = ""; + + String version = ""; + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name.equals(Constants.PR_JOBS_FREQUENCY)) { + mFrequencyText.setText(value); + } else if (name.equals(Constants.PR_ENABLE)) { + if (value.equals(Constants.TRUE)) + mEnable.setSelected(true); + else + mEnable.setSelected(false); + } + } + + if (mEnable.isSelected()) + enableFields(true, mActiveColor); + else + enableFields(false, getBackground()); + } + + private int getIndex(String val, String[] array) { + for (int i=0; i data = new Hashtable(); + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + int x = value.indexOf(","); + NameValuePairs obj = new NameValuePairs(); + obj.put(IMPL_NAME, entry); + vals[i++]= entry ; + obj.put(IMPL_CLASS, value.substring(0, x)); + obj.put(IMPL_DESC, value.substring(x + 1)); + data.put(entry,obj); + } + + CMSAdminUtil.bubbleSort(vals); + + for (int y=0; y< vals.length ; y++) { + mDataModel.processData(data.get(vals[y])); + } + + data.clear(); + + if (mDataModel.getRowCount() >0) + mTable.setRowSelectionInterval(0,0); + + mModel.progressStop(); + } + + private void delete() { + //get entry name + mModel.progressStart(); + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, + ScopeDef.SC_LOG_IMPLS, + obj.get(IMPL_NAME)); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/LogInstanceTab.java b/base/console/src/com/netscape/admin/certsrv/config/LogInstanceTab.java new file mode 100644 index 000000000..99b86e5eb --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/LogInstanceTab.java @@ -0,0 +1,95 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Log Instances Management Tab + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class LogInstanceTab extends CMSPluginInstanceTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "LOGRULE"; + + private final static String HELPINDEX = "configuration-loginstances-help"; + + + /*========================================================== + * constructors + *==========================================================*/ + public LogInstanceTab(CMSBaseResourceModel model, String dest) { + super(model,dest,PANEL_NAME); + Debug.println("LogInstanceTab::LogInstanceTab(,"+dest); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new LogRuleDataModel(); + mScope = ScopeDef.SC_LOG_RULES; + RULE_NAME = LogRuleDataModel.RULE_NAME; + RULE_IMPL = LogRuleDataModel.RULE_IMPL; + RULE_STAT = LogRuleDataModel.RULE_STAT; + + mHelpToken = HELPINDEX; + } + + + public CMSBaseConfigDialog makeNewConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest + ) + { + + return new LogConfigDialog(nvp, + parent, + conn, + dest); + } + + public PluginSelectionDialog getPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType + ) + { + return new LogPluginSelectionDialog(parent,conn,dest,pluginType); + } + + +} + + + + diff --git a/base/console/src/com/netscape/admin/certsrv/config/LogPluginSelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/LogPluginSelectionDialog.java new file mode 100644 index 000000000..83c8ab2e8 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/LogPluginSelectionDialog.java @@ -0,0 +1,69 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Log Plugin Selection Dialog + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class LogPluginSelectionDialog extends PluginSelectionDialog +{ + /*========================================================== + * variables + *==========================================================*/ + private static final String PREFIX = "LOGSELECTIONDIALOG"; + private static final String HELPINDEX = + "configuration-add-logrule-dbox-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public LogPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + super(PREFIX, parent,conn, dest, pluginType); + mScope = ScopeDef.SC_LOG_IMPLS; + mInstanceScope = ScopeDef.SC_LOG_RULES; + mImageName = CMSAdminResources.IMAGE_RULE_PLUGIN; + mHelpToken = HELPINDEX; + setDisplay(); + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/LogRegisterDialog.java b/base/console/src/com/netscape/admin/certsrv/config/LogRegisterDialog.java new file mode 100644 index 000000000..2360c860a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/LogRegisterDialog.java @@ -0,0 +1,40 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; + +/** + * Log Implementation Registration Editor + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class LogRegisterDialog extends RegisterDialog { + + private final static String PREFIX = "LOGREGISTERDIALOG"; + + public LogRegisterDialog(JFrame parent, AdminConnection conn) { + super(PREFIX, parent, conn); + setDisplay(); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/LogRuleDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/LogRuleDataModel.java new file mode 100644 index 000000000..1a64226f0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/LogRuleDataModel.java @@ -0,0 +1,62 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.Debug; + + +/** + * Log instance Data model - represents the instance + * table information + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + */ +public class LogRuleDataModel extends CMSRuleDataModel +{ + + /*========================================================== + * constructors + *==========================================================*/ + public LogRuleDataModel() { + super(); + } + + protected String[] getColumns() { + Debug.println("LogRuleDataModel.getColumns()"); + String x[] = {LOG_RULE, PLUGIN}; + return x; + } + + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE), + JLabel.LEFT)); + v.addElement(obj.get(RULE_IMPL)); + addRow(v, data); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizard.java b/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizard.java new file mode 100644 index 000000000..cd10c5575 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizard.java @@ -0,0 +1,64 @@ +// --- 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.config; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.management.client.util.*; + +/** + * Wizard for reconfiguring the Recovery MN Scheme + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class MNSchemeWizard extends WizardWidget { + + /*========================================================== + * variables + *==========================================================*/ + + + /*========================================================== + * constructors + *==========================================================*/ + public MNSchemeWizard(JFrame parent, MNSchemeWizardInfo info) { + super(parent); + setWizardInfo(info); + //add page here + addPage(new WMNSelection()); + addPage(new WMNOldAgent()); + addPage(new WMNNewAgent()); + addPage(new WMNResultPage()); + show(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + protected void callHelp() { + if (mCurrent instanceof IWizardPanel) { + ((IWizardPanel)mCurrent).callHelp(); + } + } + +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizardInfo.java b/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizardInfo.java new file mode 100644 index 000000000..8d90914b3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizardInfo.java @@ -0,0 +1,107 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * WizardInfo for reconfiguring the Recovery MN Scheme + * Once complete, we need to zap this object. + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class MNSchemeWizardInfo extends WizardInfo { + + /*========================================================== + * variables + *==========================================================*/ + private AdminConnection mConnection; + private int mM, mN; + + /*========================================================== + * constructors + *==========================================================*/ + public MNSchemeWizardInfo(AdminConnection conn, int m, int n) { + super(); + mConnection = conn; + mM = m; + mN = n; + } + + /*========================================================== + * public methods + *==========================================================*/ + //get m + public String getM() { + return Integer.toString(mM); + } + + //get n + public String getN() { + return Integer.toString(mN); + } + + public String getNewM() { + if(containsKey(Constants.PR_RECOVERY_M)) + return (String) get(Constants.PR_RECOVERY_M); + return getM(); + } + + public String getNewN() { + if(containsKey(Constants.PR_RECOVERY_N)) + return (String) get(Constants.PR_RECOVERY_N); + return getN(); + } + + + //add information into info + public void add(String name, String value) { + put(name,value); + } + + /** + * Clean up the data struture stored within this container + */ + public void cleanup() { + clear(); + } + + /** + * Perform Operation + */ + public void changeScheme() throws EAdminException { + + NameValuePairs param = new NameValuePairs(); + param.put(Constants.PR_RECOVERY_M, (String) get(Constants.PR_RECOVERY_M)); + param.put(Constants.PR_RECOVERY_N, (String) get(Constants.PR_RECOVERY_N)); + param.put(Constants.PR_RECOVERY_AGENT, (String) get(Constants.PR_RECOVERY_AGENT)); + param.put(Constants.PR_OLD_RECOVERY_AGENT, (String) get(Constants.PR_OLD_RECOVERY_AGENT)); + + mConnection.modify(DestDef.DEST_KRA_ADMIN, + ScopeDef.SC_MNSCHEME, + Constants.RS_ID_CONFIG, + param); + + //param.clear(); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/MapperConfigDialog.java b/base/console/src/com/netscape/admin/certsrv/config/MapperConfigDialog.java new file mode 100644 index 000000000..119823d58 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/MapperConfigDialog.java @@ -0,0 +1,64 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Mapper Parameter Configuration Dialog + * + * @author Steve Parkinson + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class MapperConfigDialog extends CMSBaseConfigDialog + implements ActionListener +{ + + /*========================================================== + * constructors + *==========================================================*/ + public MapperConfigDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + + PREFIX = "MAPPERCONFIGDIALOG"; + RAHELPINDEX = "configuration-ra-edit-mapperrule-dbox-help"; + KRAHELPINDEX = "configuration-kra-edit-mapperrule-dbox-help"; + CAHELPINDEX = "configuration-ca-edit-mapperrule-dbox-help"; + mImplName_token = Constants.PR_MAPPER_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_MAPPER; + + init(nvp,parent,conn,dest); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/MapperImplDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/MapperImplDataModel.java new file mode 100644 index 000000000..23d6ee0b4 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/MapperImplDataModel.java @@ -0,0 +1,68 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; + +/** + * Mapper Implementation Data model - represents the implementation + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class MapperImplDataModel extends CMSContentTableModel + implements IDataProcessor +{ + + /*========================================================== + * variables + *==========================================================*/ + public static final String IMPL_NAME = "NAME"; + public static final String IMPL_CLASS = "CLASS"; + public static final String IMPL_DESC = "DESC"; + + private static String[] mColumns = {MAPPER_IMPL, CLASSNAME}; + + /*========================================================== + * constructors + *==========================================================*/ + public MapperImplDataModel() { + super(); + init(mColumns); + } + + /*========================================================== + * public methods + *==========================================================*/ + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + v.addElement(new JLabel(obj.get(IMPL_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN), + JLabel.LEFT)); + v.addElement(obj.get(IMPL_CLASS)); + //v.addElement(obj.getValue(IMPL_DESC)); + addRow(v, data); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/MapperImplTab.java b/base/console/src/com/netscape/admin/certsrv/config/MapperImplTab.java new file mode 100644 index 000000000..2ad54da60 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/MapperImplTab.java @@ -0,0 +1,320 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Mapper Instances Management Tab + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class MapperImplTab extends CMSBaseUGTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String IMPL_NAME = MapperImplDataModel.IMPL_NAME; + private static final String IMPL_CLASS = MapperImplDataModel.IMPL_CLASS; + private static final String IMPL_DESC = MapperImplDataModel.IMPL_DESC; + + private static final String PANEL_NAME = "MAPPERIMPL"; + private static final String DIALOG_PREFIX = "MAPPERREGISTERDIALOG"; + + private AdminConnection mConnection; + private String mDestination; + + protected JScrollPane mScrollPane; + protected JTable mTable; //table + protected MapperImplDataModel mDataModel; //table model + protected MapperRegisterDialog mEditor=null; //keep single copy + protected ViewDialog mViewer=null; //keep single copy + + protected JButton mRefresh, mAdd, mDelete, mView, mHelp; + private final static String RAHELPINDEX = "configuration-ra-mapperplugin-help"; + private final static String CAHELPINDEX = "configuration-ca-mapperplugin-help"; + private final static String KRAHELPINDEX = "configuration-kra-mapperplugin-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public MapperImplTab(CMSBaseResourceModel model, String destination) { + super(PANEL_NAME, model); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new MapperImplDataModel(); + mDestination = destination; + if (mDestination.equals(DestDef.DEST_RA_MAPPER_ADMIN)) + mHelpToken = RAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } + if (e.getSource().equals(mAdd)) { + if (mEditor==null) + mEditor = new MapperRegisterDialog(mModel.getFrame(), + mConnection); + mEditor.showDialog(mDestination, ScopeDef.SC_MAPPER_IMPLS); + refresh(); + } + if (e.getSource().equals(mDelete)) { + Debug.println("Delete"); + if(mTable.getSelectedRow()< 0) + return; + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + delete(); + Debug.println("Deleted"); + } + } + if (e.getSource().equals(mView)) { + Debug.println("View"); + if(mTable.getSelectedRow()< 0) + return; + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + if (mViewer==null) + mViewer = new ViewDialog(mModel.getFrame()); + mViewer.showDialog(obj.get(IMPL_NAME), + obj.get(IMPL_CLASS), + obj.get(IMPL_DESC)); + } + if (e.getSource().equals(mHelp)) { + helpCallback(); + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mouseReleased(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + public void refresh() { + + mDataModel.removeAllRows(); + update(); + + setButtons(); + mTable.invalidate(); + mTable.validate(); + mTable.repaint(1); + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + mView = makeJButton("VIEW"); + JButton[] buttons = {mAdd, mDelete, mView}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + // JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + refresh(); + + return mListPanel; + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer(new LabelCellRenderer(new JLabel())); + } + + + //set buttons + private void setButtons() { + + //enable and diable buttons accordingly + //Debug.println("setButtons() - "+mTable.getSelectedRow()); + //Debug.println("setButtons() - "+mTable.getSelectionModel().isSelectionEmpty()); + if (mTable.getSelectionModel().isSelectionEmpty()) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + if(mDataModel.getRowCount()<=0) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + mDelete.setEnabled(true); + mView.setEnabled(true); + + } + + //============================================= + // SEND REQUESTS TO THE SERVER SIDE + //============================================= + private void update() { + //send request and parse data + + mModel.progressStart(); + NameValuePairs response; + try { + response = mConnection.search(mDestination, + ScopeDef.SC_MAPPER_IMPLS, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + + Debug.println(response.toString()); + + //parse the data + int i=0; + String[] vals = new String[response.size()]; + Hashtable data = new Hashtable(); + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + int x = value.indexOf(","); + NameValuePairs obj = new NameValuePairs(); + obj.put(IMPL_NAME, entry); + vals[i++]= entry ; + obj.put(IMPL_CLASS, value.substring(0, x)); + obj.put(IMPL_DESC, value.substring(x + 1)); + data.put(entry,obj); + } + + CMSAdminUtil.bubbleSort(vals); + + for (int y=0; y< vals.length ; y++) { + mDataModel.processData(data.get(vals[y])); + } + + data.clear(); + + if (mDataModel.getRowCount() >0) + mTable.setRowSelectionInterval(0,0); + + mModel.progressStop(); + } + + private void delete() { + //get entry name + mModel.progressStart(); + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, + ScopeDef.SC_MAPPER_IMPLS, + obj.get(IMPL_NAME)); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/MapperInstanceTab.java b/base/console/src/com/netscape/admin/certsrv/config/MapperInstanceTab.java new file mode 100644 index 000000000..a531ecf30 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/MapperInstanceTab.java @@ -0,0 +1,95 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Mapper Instances Management Tab + * + * @author Steve Parkinson + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class MapperInstanceTab extends CMSPluginInstanceTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "MAPPERRULE"; + + private final static String RAHELPINDEX = "configuration-ra-mapperinstances-help"; + private final static String CAHELPINDEX = "configuration-ca-mapperinstances-help"; + private final static String KRAHELPINDEX = "configuration-kra-mapperinstances-help"; + + + /*========================================================== + * constructors + *==========================================================*/ + public MapperInstanceTab(CMSBaseResourceModel model, String dest) { + super(model,dest,PANEL_NAME); + Debug.println("MapperInstanceTab::MapperInstanceTab(,"+dest); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new MapperRuleDataModel(); + mScope = ScopeDef.SC_MAPPER_RULES; + RULE_NAME = MapperRuleDataModel.RULE_NAME; + RULE_STAT = MapperRuleDataModel.RULE_STAT; + + if (mDestination.equals(DestDef.DEST_RA_MAPPER_ADMIN)) + mHelpToken = RAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + } + + + public CMSBaseConfigDialog makeNewConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest + ) + { + + return new MapperConfigDialog(nvp, + parent, + conn, + dest); + } + + public PluginSelectionDialog getPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType + ) + { + return new MapperPluginSelectionDialog(parent,conn,dest,pluginType); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/MapperPluginSelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/MapperPluginSelectionDialog.java new file mode 100644 index 000000000..ce0e10e9a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/MapperPluginSelectionDialog.java @@ -0,0 +1,74 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Mapper Plugin Selection Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class MapperPluginSelectionDialog extends PluginSelectionDialog +{ + /*========================================================== + * variables + *==========================================================*/ + private static final String PREFIX = "MAPPERSELECTIONDIALOG"; + private static final String CAHELPINDEX = + "configuration-ca-add-mapperrule-dbox-help"; + private static final String RAHELPINDEX = + "configuration-ra-add-mapperrule-dbox-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public MapperPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + super(PREFIX, parent,conn, dest, pluginType); + mScope = ScopeDef.SC_MAPPER_IMPLS; + mInstanceScope = ScopeDef.SC_MAPPER_RULES; + mImageName = CMSAdminResources.IMAGE_RULE_PLUGIN; + if (dest.equals(DestDef.DEST_RA_MAPPER_ADMIN)) + mHelpToken = RAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + setDisplay(); + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/MapperRegisterDialog.java b/base/console/src/com/netscape/admin/certsrv/config/MapperRegisterDialog.java new file mode 100644 index 000000000..3f6be3234 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/MapperRegisterDialog.java @@ -0,0 +1,40 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; + +/** + * Mapper Implementation Registration Editor + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class MapperRegisterDialog extends RegisterDialog { + + private final static String PREFIX = "MAPPERREGISTERDIALOG"; + + public MapperRegisterDialog(JFrame parent, AdminConnection conn) { + super(PREFIX, parent, conn); + setDisplay(); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/MapperRuleDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/MapperRuleDataModel.java new file mode 100644 index 000000000..a72b59f7c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/MapperRuleDataModel.java @@ -0,0 +1,62 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.Debug; + + +/** + * Mapper instance Data model - represents the instance + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class MapperRuleDataModel extends CMSRuleDataModel +{ + + /*========================================================== + * constructors + *==========================================================*/ + public MapperRuleDataModel() { + super(); + } + + protected String[] getColumns() { + Debug.println("MapperRuleDataModel.getColumns()"); + String x[] = {MAPPER_RULE, PLUGIN}; + return x; + } + + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE), + JLabel.LEFT)); + v.addElement(obj.get(RULE_IMPL)); + addRow(v, data); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresConfigDialog.java b/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresConfigDialog.java new file mode 100644 index 000000000..87097ddc0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresConfigDialog.java @@ -0,0 +1,60 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * CRL Extensions Parameter Configuration Dialog + * + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class OCSPStoresConfigDialog extends CMSBaseConfigDialog + implements ActionListener +{ + /*========================================================== + * constructors + *==========================================================*/ + public OCSPStoresConfigDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + PREFIX = "OCSPSTORECONFIGDIALOG"; + CAHELPINDEX = "configuration-ocsp-edit-crlextensionrule-dbox-help"; + + mImplName_token = Constants.PR_OCSPSTORE_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_OCSPSTORESRULE; + + init(nvp,parent,conn,dest); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresInstanceTab.java b/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresInstanceTab.java new file mode 100644 index 000000000..ff234c7fd --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresInstanceTab.java @@ -0,0 +1,132 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; + +import javax.swing.*; +import java.awt.event.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + + +/** + * CRL Extensions - Instances Management Tab + * + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class OCSPStoresInstanceTab extends CMSPluginInstanceTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "OCSPSTORESRULE"; + + private final static String OCSPHELPINDEX = "configuration-ocsp-storeinstances-help"; + + + /*========================================================== + * constructors + *==========================================================*/ + public OCSPStoresInstanceTab(CMSBaseResourceModel model, String dest) { + super(model,dest,PANEL_NAME); + Debug.println("OCSPStoresInstanceTab::OCSPStoresInstanceTab(,"+dest); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new OCSPStoresRuleDataModel(); + mScope = ScopeDef.SC_OCSPSTORES_RULES; + RULE_NAME = OCSPStoresRuleDataModel.RULE_NAME; + RULE_IMPL = OCSPStoresRuleDataModel.RULE_IMPL; + RULE_STAT = OCSPStoresRuleDataModel.RULE_STAT; + mHelpToken = OCSPHELPINDEX; + } + + + public CMSBaseConfigDialog makeNewConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) + { + return new OCSPStoresConfigDialog(nvp, parent, conn, dest); + } + + public PluginSelectionDialog getPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + return new OCSPStoresPluginSelectionDialog(parent, conn, dest, pluginType); + } + + + /** + * create the user action button panel + */ + protected JPanel createUserButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("DEFAULT"); + mDelete = makeJButton("DELETE"); + mAdd.setEnabled(true); + mDelete.setEnabled(false); + mEdit = makeJButton("EDIT"); + JButton[] buttons = {mAdd, mEdit}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mAdd)) { + setDefault(); + } else { + super.actionPerformed(e); + } + } + + private void setDefault() { + + mModel.progressStart(); + //get entry name + NameValuePairs data = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + NameValuePairs nvps = new NameValuePairs(); + + //send comment to server for the removal of user + try { + mConnection.modify(DestDef.DEST_OCSP_ADMIN, + ScopeDef.SC_OCSPSTORE_DEFAULT, + data.get(RULE_NAME), nvps); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresPluginSelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresPluginSelectionDialog.java new file mode 100644 index 000000000..32365c27c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresPluginSelectionDialog.java @@ -0,0 +1,67 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * CRL Extensions Plugin Selection Dialog + * + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class OCSPStoresPluginSelectionDialog extends PluginSelectionDialog +{ + /*========================================================== + * variables + *==========================================================*/ + private static final String PREFIX = "OCSPSTORESELECTIONDIALOG"; + private static final String OCSPHELPINDEX = + "configuration-ocsp-add-crlextensionrule-dbox-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public OCSPStoresPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + super(PREFIX, parent,conn, dest, pluginType); +// mScope = ScopeDef.SC_RULE_IMPLS; + mInstanceScope = ScopeDef.SC_OCSPSTORES_RULES; + mImageName = CMSAdminResources.IMAGE_RULE_PLUGIN; + mHelpToken = OCSPHELPINDEX; + setDisplay(); + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresRuleDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresRuleDataModel.java new file mode 100644 index 000000000..5cd67e276 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresRuleDataModel.java @@ -0,0 +1,69 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.Debug; + + +/** + * CRL Extensions instance Data model - represents the instance + * table information + * + * @version $Revision$, $Date$ + */ + +public class OCSPStoresRuleDataModel extends CMSRuleDataModel +{ + + /*========================================================== + * constructors + *==========================================================*/ + public OCSPStoresRuleDataModel() { + super(); + } + + protected String[] getColumns() { + Debug.println("PolicyRuleDataModel.getColumns()"); + String x[] = {OCSPSTORES_RULE, STATUS}; + return x; + } + + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + + if (obj.get(RULE_STAT).equalsIgnoreCase("enabled")) { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE), + JLabel.LEFT)); + v.addElement(mResource.getString("OCSPSTORESRULE_LABEL_ENABLED_LABEL")); + } else { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE), + JLabel.LEFT)); + v.addElement(mResource.getString("OCSPSTORESRULE_LABEL_DISABLED_LABEL")); + } + addRow(v, data); + mRules.addElement(obj.get(RULE_NAME)); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PanelMapperConfigDialog.java b/base/console/src/com/netscape/admin/certsrv/config/PanelMapperConfigDialog.java new file mode 100644 index 000000000..5de06c7f9 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PanelMapperConfigDialog.java @@ -0,0 +1,409 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * LDAP Mapper Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PanelMapperConfigDialog extends JDialog + implements ActionListener, ItemListener +{ + /*========================================================== + * variables + *==========================================================*/ + private String PREFIX = "MAPPERCONFIGDIALOG"; + + private JFrame mParentFrame; + private ResourceBundle mResource; + protected ConfigTableModel mDataModel; + protected boolean mIsOK = false; + protected NameValuePairs mData; + private JScrollPane mScrollPane; + private JTable mTable; + private String mRuleName; + private String mDest; + private String mScope; //SC_USERCERT or SC_CACERT + private AdminConnection mConn; + private JButton mOK, mCancel, mHelp; + private JComboBox mSelection; + + private static final String CAHELPINDEX = + "configuration-ldappublish-camapper-dbox-help"; + private static final String RAHELPINDEX = + "configuration-ldappublish-ramapper-dbox-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public PanelMapperConfigDialog(JFrame parent, AdminConnection conn) { + super(parent,true); + mConn = conn; + mParentFrame = parent; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mDataModel = new ConfigTableModel(); + setSize(360, 216); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + setDisplay(); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * show the windows + * @param users list of current groups + */ + public void showDialog(String name, String destination, String scope) { + mIsOK = false; + + mDataModel.removeAllRows(); + mData = new NameValuePairs(); + mRuleName = name; + mDest = destination; + mScope = scope; + Debug.println("MapperConfigDialog: showDialog() - mapper: "+ + mRuleName+" dest: "+mDest+" scope: "+mScope); + + if (!refresh(name)) + return; + + this.show(); + } + + public boolean isOK() { + return mIsOK; + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mOK)) { + + //save any current edit component + Component component = mTable.getEditorComponent(); + if (component!= null) { + int col = mTable.getEditingColumn(); + int row = mTable.getEditingRow(); + if ((col>-1)&&(row>-1)) { + String str = ((JTextComponent)component).getText(); + mTable.setValueAt(str, row, col); + } + } + + try { + saveConfiguration(); + } catch (EAdminException e) { + //display error dialog + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.toString(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + + mIsOK = true; + this.dispose(); + } + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + if (evt.getSource().equals(mHelp)) { + if (mDest.equals(DestDef.DEST_CA_ADMIN)) + CMSAdminUtil.help(CAHELPINDEX); + else if (mDest.equals(DestDef.DEST_RA_ADMIN)) + CMSAdminUtil.help(RAHELPINDEX); + } + } + + //== ItemListener == + public void itemStateChanged(ItemEvent e){ + if (e.getSource().equals(mSelection)) { + if (e.getStateChange() == e.SELECTED) { + //take care of current editing + mTable.getColumnModel().getColumn(1). + getCellEditor().stopCellEditing(); + Debug.println("Selected: "+ (String) mSelection.getSelectedItem()); + setupConfigUI((String) mSelection.getSelectedItem()); + } + } + } + + /*========================================================== + * private methods + *==========================================================*/ + + private void saveEdit() { + + //save any current edit component + Component component = mTable.getEditorComponent(); + + } + + //setup and refresh the UI components + private boolean refresh(String mapperName) { + + //get mapper listing + if (!getMapperListing(mapperName)) + return false; + + //setup UI + if (! setupConfigUI(mapperName)) + return false; + + return true; + } + + //retrieve the mapper class listing and update + //the selection UI + private boolean getMapperListing(String mapperName) { + NameValuePairs response; + + try { + response = getMapperList(); + }catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.toString(), CMSAdminUtil.ERROR_MESSAGE); + return false; + } + + Debug.println("MapperList: "+response.toString()); + mSelection.removeAllItems(); + + for (String name : response.keySet()) { + mSelection.addItem(name.trim()); + } + + mSelection.setSelectedItem(mapperName); + return true; + } + + //retrieve the config parameters for the mapper + //and update the config UI + private boolean setupConfigUI(String mapperName) { + + try { + mData = getConfiguration(mapperName); + }catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.toString(), CMSAdminUtil.ERROR_MESSAGE); + return false; + } + Debug.println("MapperConfigDialog: showDialog() config: "+mData.toString()); + + mDataModel.removeAllRows(); + + for (String entry : mData.keySet()) { + entry = entry.trim(); + if (!entry.equals(Constants.PR_MAPPER)) { + String value = mData.get(entry); + Vector v = new Vector(); + v.addElement(entry); + v.addElement(value); + mDataModel.addRow(v); + } + } + mScrollPane.repaint(); + mTable.repaint(); + return true; + } + + private void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(content, gbc); + center.add(content); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + //create botton action panel + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, PREFIX, "HELP", null, this); + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + private JPanel makeContentPane() { + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + //content.setBorder(CMSAdminUtil.makeEtchedBorder()); + + CMSAdminUtil.resetGBC(gbc); + JLabel label3 = CMSAdminUtil.makeJLabel(mResource, PREFIX, "IMPLNAME", null); + mSelection = new JComboBox(); + mSelection.addItemListener(this); + addEntryField(mListPanel, label3, mSelection, gbc); + + //left side certificate table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); + //mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + //setLabelCellRenderer(mTable,1); + setCellEditor(mTable,1); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.insets = new Insets(CMSAdminUtil.DIFFERENT_COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + 0,CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + return mListPanel; + } + + //Set the index column's cellrender as label cell + private void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new DefaultTableCellRenderer()); + } + + //set the index column's cell editor + private void setCellEditor(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellEditor( + new DefaultCellEditor(new JTextField())); + } + + //retrieve the mapper listing from the server side + private NameValuePairs getMapperList() + throws EAdminException + { + return mConn.search(mDest, getMapperScope(), + new NameValuePairs()); + } + + //retrieve the configuration parameters for specific + //mapper class + private NameValuePairs getConfiguration(String mapper) + throws EAdminException + { + return mConn.read(mDest, getMapperScope(), + mapper, new NameValuePairs()); + } + + //get the mapper scope + private String getMapperScope() { + + if (mScope.equals(ScopeDef.SC_CACERT)) + return ScopeDef.SC_CAMAPPER; + else + return ScopeDef.SC_USERMAPPER; + } + + //save the configuration settings for the mapper + private void saveConfiguration() throws EAdminException { + NameValuePairs nvp = getData(); + nvp.put(Constants.PR_MAPPER, (String) mSelection.getSelectedItem()); + mConn.modify(mDest, mScope, Constants.RS_ID_CONFIG, nvp); + } + + private NameValuePairs getData() { + NameValuePairs response = new NameValuePairs(); + for (int i=0; i< mDataModel.getRowCount(); i++) { + response.put((String) mDataModel.getValueAt(i, 0), + (String) mDataModel.getValueAt(i, 1)); + } + return response; + } + + /** + * Add a label and a textfield to a panel, assumed to be using + * GridBagLayout. + */ + private static void addEntryField(JPanel panel, JComponent label, + JComponent field, GridBagConstraints gbc) { + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.gridx = 0; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + panel.add( label, gbc ); + + gbc.gridx++; + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + 0,CMSAdminUtil.COMPONENT_SPACE); + panel.add( field, gbc ); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PluginSelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/PluginSelectionDialog.java new file mode 100644 index 000000000..437881186 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PluginSelectionDialog.java @@ -0,0 +1,375 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Plugin Selection Dialog + * + * @author Jack Pan-chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PluginSelectionDialog extends JDialog + implements ActionListener, MouseListener +{ + /*========================================================== + * variables + *==========================================================*/ + protected JFrame mParentFrame; + protected AdminConnection mConnection; + protected ResourceBundle mResource; + protected DefaultListModel mDataModel; + protected String mDestination; //dest flag + protected String mExtraDestination = null; //dest flag + + private JScrollPane mScrollPane; + protected JList mList; + + protected JButton mOK, mCancel, mHelp; + protected String mPrefix; + protected String mScope; + protected String mInstanceScope; + protected String mImageName; + protected String mHelpToken; + protected CMSPluginInstanceTab mPluginInstanceDialog; + protected CMSBaseResourceModel mModel=null; + + public PluginSelectionDialog( + String prefix, + JFrame parent, + AdminConnection conn, + String dest) + { + this( prefix, + parent, + conn, + dest, + null ); + } + + /*========================================================== + * constructors + *==========================================================*/ + public PluginSelectionDialog( + String prefix, + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + super(parent,true); + mParentFrame = parent; + mConnection = conn; + mDestination = dest; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mDataModel = new DefaultListModel(); + mPrefix = prefix; + mPluginInstanceDialog = pluginType; + + setTitle(mResource.getString(mPrefix+"_TITLE")); + setSize(360, 216); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + } + + public PluginSelectionDialog( + String prefix, + JFrame parent, + AdminConnection conn, + String dest, String extraDest, + CMSPluginInstanceTab pluginType) + { + super(parent,true); + mParentFrame = parent; + mConnection = conn; + mDestination = dest; + mExtraDestination = extraDest; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mDataModel = new DefaultListModel(); + mPrefix = prefix; + mPluginInstanceDialog = pluginType; + + setTitle(mResource.getString(mPrefix+"_TITLE")); + setSize(360, 216); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + } + + /*========================================================== + * public methods + *==========================================================*/ + + public void setModel(CMSBaseResourceModel model) + { + mModel = model; + } + + /** + * show the windows + * @param users list of current groups + */ + public void showDialog() { + + mDataModel.clear(); + + if(!update()) + return; + refresh(); + setArrowButtons(); + this.show(); + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mOK)) { + NameValuePairs response; + try { + response = getDefaultConfig(); + } catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + Debug.println(response.toString()); + String id = ((JLabel)mDataModel.elementAt(mList.getSelectedIndex())).getText(); + response.put(Constants.PR_POLICY_IMPL_NAME, id); + + CMSBaseConfigDialog dialog = null; + if (mExtraDestination == null) { + dialog = mPluginInstanceDialog.makeNewConfigDialog( + response, mParentFrame, mConnection, mDestination); + } else { + dialog = mPluginInstanceDialog.makeNewConfigDialog( + response, mParentFrame, mConnection, mExtraDestination); + } + + dialog.setModel(mModel); + dialog.setInstanceScope(mInstanceScope); + + dialog.showDialog(response,""); + + if(!dialog.isOK()) { + this.dispose(); + return; + } + + response = dialog.getData(); + String name = dialog.getRuleName(); + + Debug.println(response.toString()); + + dialog.dispose(); + this.dispose(); + } + + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setArrowButtons(); + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) { + setArrowButtons(); + } + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) { + setArrowButtons(); + } + + protected void setDisplay() { + Debug.println("*** PluginSelectionDialog.setDisplay() - 1"); + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(content, gbc); + center.add(content); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + //create botton action panel + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, mPrefix, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, mPrefix, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, mPrefix, "HELP", null, this); + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + private JPanel makeContentPane() { + Debug.println("*** PluginSelectionDialog.makeContentPane() - 0"); + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + Debug.println("*** PluginSelectionDialog.makeContentPane() - 1"); + mListPanel.setLayout(gb); + //content.setBorder(CMSAdminUtil.makeEtchedBorder()); + + Debug.println("*** PluginSelectionDialog.makeContentPane() - 2"); + //left side certificate table + mList = CMSAdminUtil.makeJList(mDataModel,9); + Debug.println("PluginSelectionDialog.makeContentPane() - making mList("+mList+")"); + mScrollPane = new JScrollPane(mList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION ); + mList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + return mListPanel; + } + + + //set arrow buttons + private void setArrowButtons() { + + //enable and diable buttons accordingly + //Debug.println("setArrowButtons() - "+mList.getSelectedIndex()); + + if (mList.getSelectedIndex()< 0) { + mOK.setEnabled(false); + return; + } + + mOK.setEnabled(true); + } + + //refresh the table content + private void refresh() { + //mScrollPane.invalidate(); + //mScrollPane.validate(); + //repaint(); + } + + //================================================= + // RETRIEVE INFO FROM SERVER SIDE + //================================================= + + //save order information to the server + protected boolean update() { + + NameValuePairs response; + try { + response = mConnection.search(mDestination, mScope, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return false; + } + + Debug.println(response.toString()); + + //parse the data + String[] vals = new String[response.size()]; + int i=0; + for (String name : response.keySet()) { + vals[i++] = name.trim(); + Debug.println("PluginSelectionDialog::update() - adding '" + vals[i - 1] + "'"); + } + + CMSAdminUtil.bubbleSort(vals); + + for (int y=0; y< vals.length ; y++) { + try { + mDataModel.addElement(new JLabel(vals[y], + CMSAdminUtil.getImage(mImageName), JLabel.LEFT)); + } + catch (Exception ex) { + Debug.println("PluginSelectionDialog could not get image for '"+ + mImageName+"'. Adding without image"); + mDataModel.addElement(new JLabel(vals[y], + JLabel.LEFT)); + } + } + + return true; + } + + //this returns the default configuration + protected NameValuePairs getDefaultConfig() throws EAdminException { + String id = ((JLabel)mDataModel.elementAt(mList.getSelectedIndex())).getText(); + NameValuePairs response; + response = mConnection.read(mDestination, mScope, id, + new NameValuePairs()); + + Debug.println(response.toString()); + + return response; + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PolicyConfigDialog.java b/base/console/src/com/netscape/admin/certsrv/config/PolicyConfigDialog.java new file mode 100644 index 000000000..8dec3cabf --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PolicyConfigDialog.java @@ -0,0 +1,64 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PolicyConfigDialog extends CMSBaseConfigDialog + implements ActionListener +{ + + /*========================================================== + * constructors + *==========================================================*/ + public PolicyConfigDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + + PREFIX = "POLICYCONFIGDIALOG"; + RAHELPINDEX = "configuration-ra-edit-policyrule-dbox-help"; + KRAHELPINDEX = "configuration-kra-edit-policyrule-dbox-help"; + CAHELPINDEX = "configuration-ca-edit-policyrule-dbox-help"; + mImplName_token = Constants.PR_POLICY_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_POLICY; + + init(nvp,parent,conn,dest); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PolicyImplDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/PolicyImplDataModel.java new file mode 100644 index 000000000..59ea36ec8 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PolicyImplDataModel.java @@ -0,0 +1,68 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Implementation Data model - represents the implementation + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PolicyImplDataModel extends CMSContentTableModel + implements IDataProcessor +{ + + /*========================================================== + * variables + *==========================================================*/ + public static final String IMPL_NAME = "NAME"; + public static final String IMPL_CLASS = "CLASS"; + public static final String IMPL_DESC = "DESC"; + + private static String[] mColumns = {POLICY_IMPL, CLASSNAME}; + + /*========================================================== + * constructors + *==========================================================*/ + public PolicyImplDataModel() { + super(); + init(mColumns); + } + + /*========================================================== + * public methods + *==========================================================*/ + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + v.addElement(new JLabel(obj.get(IMPL_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN), + JLabel.LEFT)); + v.addElement(obj.get(IMPL_CLASS)); + //v.addElement(obj.getValue(IMPL_DESC)); + addRow(v, data); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PolicyImplTab.java b/base/console/src/com/netscape/admin/certsrv/config/PolicyImplTab.java new file mode 100644 index 000000000..f4fab7260 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PolicyImplTab.java @@ -0,0 +1,322 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Instances Management Tab + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PolicyImplTab extends CMSBaseUGTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String IMPL_NAME = PolicyImplDataModel.IMPL_NAME; + private static final String IMPL_CLASS = PolicyImplDataModel.IMPL_CLASS; + private static final String IMPL_DESC = PolicyImplDataModel.IMPL_DESC; + + private static final String PANEL_NAME = "POLICYIMPL"; + private static final String DIALOG_PREFIX = "POLICYREGISTERDIALOG"; + + private AdminConnection mConnection; + private String mDestination; + + protected JScrollPane mScrollPane; + protected JTable mTable; //table + protected PolicyImplDataModel mDataModel; //table model + protected PolicyRegisterDialog mEditor=null; //keep single copy + protected ViewDialog mViewer=null; //keep single copy + + protected JButton mRefresh, mAdd, mDelete, mView, mHelp; + private final static String RAHELPINDEX = "configuration-ra-policyplugin-help"; + private final static String CAHELPINDEX = "configuration-ca-policyplugin-help"; + private final static String KRAHELPINDEX = "configuration-kra-policyplugin-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public PolicyImplTab(CMSBaseResourceModel model, String destination) { + super(PANEL_NAME, model); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new PolicyImplDataModel(); + mDestination = destination; + if (mDestination.equals(DestDef.DEST_RA_POLICY_ADMIN)) + mHelpToken = RAHELPINDEX; + else if (mDestination.equals(DestDef.DEST_KRA_POLICY_ADMIN)) + mHelpToken = KRAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } + if (e.getSource().equals(mAdd)) { + if (mEditor==null) + mEditor = new PolicyRegisterDialog(mModel.getFrame(), + mConnection); + mEditor.showDialog(mDestination, ScopeDef.SC_POLICY_IMPLS); + refresh(); + } + if (e.getSource().equals(mDelete)) { + Debug.println("Delete"); + if(mTable.getSelectedRow()< 0) + return; + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + delete(); + Debug.println("Deleted"); + } + } + if (e.getSource().equals(mView)) { + Debug.println("View"); + if(mTable.getSelectedRow()< 0) + return; + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + if (mViewer==null) + mViewer = new ViewDialog(mModel.getFrame()); + mViewer.showDialog(obj.get(IMPL_NAME), + obj.get(IMPL_CLASS), + obj.get(IMPL_DESC)); + } + if (e.getSource().equals(mHelp)) { + helpCallback(); + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mouseReleased(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + public void refresh() { + + mDataModel.removeAllRows(); + update(); + + setButtons(); + mTable.invalidate(); + mTable.validate(); + mTable.repaint(1); + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + mView = makeJButton("VIEW"); + JButton[] buttons = {mAdd, mDelete, mView}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + refresh(); + + return mListPanel; + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer(new LabelCellRenderer(new JLabel())); + } + + + //set buttons + private void setButtons() { + + //enable and diable buttons accordingly + //Debug.println("setButtons() - "+mTable.getSelectedRow()); + //Debug.println("setButtons() - "+mTable.getSelectionModel().isSelectionEmpty()); + if (mTable.getSelectionModel().isSelectionEmpty()) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + if(mDataModel.getRowCount()<=0) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + mDelete.setEnabled(true); + mView.setEnabled(true); + + } + + //============================================= + // SEND REQUESTS TO THE SERVER SIDE + //============================================= + private void update() { + //send request and parse data + + mModel.progressStart(); + NameValuePairs response; + try { + response = mConnection.search(mDestination, + ScopeDef.SC_POLICY_IMPLS, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + + Debug.println(response.toString()); + + //parse the data + int i=0; + String[] vals = new String[response.size()]; + Hashtable data = new Hashtable(); + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + int x = value.indexOf(","); + NameValuePairs obj = new NameValuePairs(); + obj.put(IMPL_NAME, entry); + vals[i++]= entry ; + obj.put(IMPL_CLASS, value.substring(0, x)); + obj.put(IMPL_DESC, value.substring(x + 1)); + data.put(entry,obj); + } + + CMSAdminUtil.bubbleSort(vals); + + for (int y=0; y< vals.length ; y++) { + mDataModel.processData(data.get(vals[y])); + } + + data.clear(); + + if (mDataModel.getRowCount() >0) + mTable.setRowSelectionInterval(0,0); + + mModel.progressStop(); + } + + private void delete() { + //get entry name + mModel.progressStart(); + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, + ScopeDef.SC_POLICY_IMPLS, + obj.get(IMPL_NAME)); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PolicyInstanceTab.java b/base/console/src/com/netscape/admin/certsrv/config/PolicyInstanceTab.java new file mode 100644 index 000000000..9bf8fb54b --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PolicyInstanceTab.java @@ -0,0 +1,139 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Instances Management Tab + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PolicyInstanceTab extends CMSPluginInstanceTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "POLICYRULE"; + + protected JButton mOrder; + private final static String RAHELPINDEX = "configuration-ra-policyrules-help"; + private final static String CAHELPINDEX = "configuration-ca-policyrules-help"; + private final static String KRAHELPINDEX = "configuration-kra-policyrules-help"; + + + /*========================================================== + * constructors + *==========================================================*/ + public PolicyInstanceTab(CMSBaseResourceModel model, String dest) { + super(model,dest,PANEL_NAME); + Debug.println("PolicyInstanceTab::PolicyInstanceTab(,"+dest); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new PolicyRuleDataModel(); + mScope = ScopeDef.SC_POLICY_RULES; + RULE_NAME = PolicyRuleDataModel.RULE_NAME; + RULE_STAT = PolicyRuleDataModel.RULE_STAT; + + if (mDestination.equals(DestDef.DEST_RA_POLICY_ADMIN)) + mHelpToken = RAHELPINDEX; + else if (mDestination.equals(DestDef.DEST_KRA_POLICY_ADMIN)) + mHelpToken = KRAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + } + + + public CMSBaseConfigDialog makeNewConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest + ) + { + + return new PolicyConfigDialog(nvp, + parent, + conn, + dest); + } + + public PluginSelectionDialog getPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType + ) + { + return new PolicyPluginSelectionDialog(parent,conn,dest,pluginType); + } + + + //=== ACTIONLISTENER ===================== + public void moreActionPerformed(ActionEvent e) { + if (e.getSource().equals(mOrder)) { + Debug.println("Order"); + PolicyRuleOrderDialog dialog = + new PolicyRuleOrderDialog(mModel.getFrame(), + mConnection, mDestination); + dialog.showDialog(mDataModel.getRules()); + refresh(); + } + } + + /** + * create the user action button panel + */ + protected JPanel createUserButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mOrder = makeJButton("ORDER"); + mEdit = makeJButton("EDIT"); + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + JButton[] buttons = {mAdd, mDelete, mEdit, mOrder}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + + //set buttons + protected void setButtons() { + super.setButtons(); + + if (mDataModel.getRowCount()<=0) { + mOrder.setEnabled(false); + } + else { + mOrder.setEnabled(true); + } + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PolicyPluginSelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/PolicyPluginSelectionDialog.java new file mode 100644 index 000000000..6ef26b767 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PolicyPluginSelectionDialog.java @@ -0,0 +1,73 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Plugin Selection Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PolicyPluginSelectionDialog extends PluginSelectionDialog +{ + /*========================================================== + * variables + *==========================================================*/ + private static final String PREFIX = "POLICYSELECTIONDIALOG"; + private static final String CAHELPINDEX = + "configuration-ca-add-policyrule-dbox-help"; + private static final String RAHELPINDEX = + "configuration-ra-add-policyrule-dbox-help"; + private static final String KRAHELPINDEX = + "configuration-kra-add-policyrule-dbox-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public PolicyPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + super(PREFIX, parent,conn, dest, pluginType); + mScope = ScopeDef.SC_POLICY_IMPLS; + mInstanceScope = ScopeDef.SC_POLICY_RULES; + mImageName = CMSAdminResources.IMAGE_RULE_PLUGIN; + if (dest.equals(DestDef.DEST_RA_POLICY_ADMIN)) + mHelpToken = RAHELPINDEX; + else if (dest.equals(DestDef.DEST_KRA_POLICY_ADMIN)) + mHelpToken = KRAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + setDisplay(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PolicyRegisterDialog.java b/base/console/src/com/netscape/admin/certsrv/config/PolicyRegisterDialog.java new file mode 100644 index 000000000..cbc961c5b --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PolicyRegisterDialog.java @@ -0,0 +1,40 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; + +/** + * Policy Implementation Registration Editor + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class PolicyRegisterDialog extends RegisterDialog { + + private final static String PREFIX = "POLICYREGISTERDIALOG"; + + public PolicyRegisterDialog(JFrame parent, AdminConnection conn) { + super(PREFIX, parent, conn); + setDisplay(); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleDataModel.java new file mode 100644 index 000000000..9bbeda334 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleDataModel.java @@ -0,0 +1,71 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.Debug; + + +/** + * Policy instance Data model - represents the instance + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class PolicyRuleDataModel extends CMSRuleDataModel +{ + + /*========================================================== + * constructors + *==========================================================*/ + public PolicyRuleDataModel() { + super(); + } + + protected String[] getColumns() { + Debug.println("PolicyRuleDataModel.getColumns()"); + String x[] = {POLICY_RULE, STATUS}; + return x; + } + + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + + //XXX NEED TO ADD STUFF + if (obj.get(RULE_STAT).equalsIgnoreCase("enabled")) { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE), + JLabel.LEFT)); + v.addElement(mResource.getString("POLICYRULE_LABEL_ENABLED_LABEL")); + } else { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE), + JLabel.LEFT)); + v.addElement(mResource.getString("POLICYRULE_LABEL_DISABLED_LABEL")); + } + addRow(v, data); + mRules.addElement(obj.get(RULE_NAME)); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleOrderDialog.java b/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleOrderDialog.java new file mode 100644 index 000000000..1c99d999f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleOrderDialog.java @@ -0,0 +1,331 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Rule Order Dialog -

+ * + * The administrator can use this dialog to reconfig the ordering + * of the existing policy rules. + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PolicyRuleOrderDialog extends JDialog + implements ActionListener, MouseListener +{ + /*========================================================== + * variables + *==========================================================*/ + private String PREFIX = "POLICYORDERDIALOG"; + + private JFrame mParentFrame; + private AdminConnection mConnection; + private ResourceBundle mResource; + protected DefaultListModel mDataModel; + protected String mDestination; //dest flag + + private JScrollPane mScrollPane; + private JList mList; + + private JButton mOK, mCancel, mUp, mDown, mHelp; + private final static String RAHELPINDEX = + "configuration-ra-reorder-policyrule-dbox-help"; + private final static String KRAHELPINDEX = + "configuration-kra-reorder-policyrule-dbox-help"; + private final static String CAHELPINDEX = + "configuration-ca-reorder-policyrule-dbox-help"; + private String mHelpToken; + + /*========================================================== + * constructors + *==========================================================*/ + public PolicyRuleOrderDialog(JFrame parent, AdminConnection conn, String dest) { + super(parent,true); + mParentFrame = parent; + mConnection = conn; + mDestination = dest; + if (mDestination.equals(DestDef.DEST_RA_POLICY_ADMIN)) + mHelpToken = RAHELPINDEX; + else if (mDestination.equals(DestDef.DEST_KRA_POLICY_ADMIN)) + mHelpToken = KRAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mDataModel = new DefaultListModel(); + setSize(360, 216); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + setDisplay(); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * show the windows + * @param users list of current groups + */ + public void showDialog(Vector rules) { + + mDataModel.clear(); + for (int i=0; i0) + mList.setSelectedIndex(0); + + refresh(); + setArrowButtons(); + this.show(); + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mOK)) { + try { + saveOrder(); + } catch (EAdminException e) { + //display error dialog + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + this.dispose(); + } + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + if (evt.getSource().equals(mUp)) { + int index = mList.getSelectedIndex(); + Object obj = mDataModel.elementAt(index); + mDataModel.removeElementAt(index); + mDataModel.insertElementAt(obj,index-1); + mList.setSelectedIndex(index-1); + setArrowButtons(); + refresh(); + } + if (evt.getSource().equals(mDown)) { + int index = mList.getSelectedIndex(); + Object obj = mDataModel.elementAt(index); + mDataModel.removeElementAt(index); + mDataModel.insertElementAt(obj,index+1); + mList.setSelectedIndex(index+1); + setArrowButtons(); + refresh(); + } + if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setArrowButtons(); + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) { + setArrowButtons(); + } + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) { + setArrowButtons(); + } + + /*========================================================== + * private methods + *==========================================================*/ + private void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(content, gbc); + center.add(content); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + /** + * create the bottom action button panel + */ + protected JPanel createUDButtonPanel() { + //up, down buttons required + //actionlister to this object + mUp = CMSAdminUtil.makeJButton(mResource, PREFIX, "UP", null, this); + mDown = CMSAdminUtil.makeJButton(mResource, PREFIX, "DOWN", null, this); + JButton[] buttons = { mUp, mDown}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + //create botton action panel + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, PREFIX, "HELP", null, this); + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + private JPanel makeContentPane() { + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + //content.setBorder(CMSAdminUtil.makeEtchedBorder()); + + //left side certificate table + mList = CMSAdminUtil.makeJList(mDataModel,10); + mScrollPane = new JScrollPane(mList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION ); + mList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE,CMSAdminUtil.COMPONENT_SPACE,0,0); + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createUDButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE,0,0,0); + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + return mListPanel; + } + + //================================================= + // RETRIEVE INFO FROM SERVER SIDE + //================================================= + + //save order information to the server + private void saveOrder() throws EAdminException { + StringBuffer buf = new StringBuffer(); + + int x = 0; + for(int i=0; i 0) + buf.append(","); + x++; + buf.append(((JLabel)mDataModel.getElementAt(i)).getText()); + } + + NameValuePairs nvp = new NameValuePairs(); + nvp.put(Constants.PR_POLICY_ORDER, buf.toString()); + + Debug.println("ORDER: "+buf.toString()); + + mConnection.modify(mDestination, + ScopeDef.SC_POLICY_RULES, + Constants.RS_ID_ORDER, + nvp); + } + + //set arrow buttons + private void setArrowButtons() { + + //enable and diable buttons accordingly + Debug.println("setArrowButtons() - "+mList.getSelectedIndex()); + if (mList.getSelectedIndex()< 0) { + mUp.setEnabled(false); + mDown.setEnabled(false); + mOK.setEnabled(false); + return; + } + + if (mList.getSelectedIndex()==0) + mUp.setEnabled(false); + else + mUp.setEnabled(true); + if (mList.getSelectedIndex()< mDataModel.getSize()-1) + mDown.setEnabled(true); + else + mDown.setEnabled(false); + mOK.setEnabled(true); + } + + //refresh the table content + private void refresh() { + //mTable.invalidate(); + //mTable.validate(); + //mTable.repaint(1); + mScrollPane.invalidate(); + mScrollPane.validate(); + //mScrollPane.repaint(1); + repaint(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileComponentCellEditor.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileComponentCellEditor.java new file mode 100644 index 000000000..b1e2769db --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileComponentCellEditor.java @@ -0,0 +1,109 @@ +// --- 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.config; + +import java.awt.Component; +import java.awt.event.*; +import java.awt.AWTEvent; +import java.lang.Boolean; +import javax.swing.table.*; +import javax.swing.event.*; +import java.util.EventObject; +import javax.swing.tree.*; +import java.io.Serializable; +import javax.swing.*; + +public class ProfileComponentCellEditor implements TableCellEditor { + protected EventListenerList listenerList = new EventListenerList(); + protected ChangeEvent changeEvent = null; + + protected JComponent editorComponent = null; + protected JComponent container = null; // Can be tree or table + + public Component getComponent() { + return editorComponent; + } + + public Object getCellEditorValue() { + return editorComponent; + } + + public boolean isCellEditable(EventObject anEvent) { + return true; + } + + public boolean shouldSelectCell(EventObject anEvent) { + return true; + } + + public boolean stopCellEditing() { + fireEditingStopped(); + return true; + } + + public void cancelCellEditing() { + fireEditingCanceled(); + } + + public void addCellEditorListener(CellEditorListener l) { + listenerList.add(CellEditorListener.class, l); + } + + public void removeCellEditorListener(CellEditorListener l) { + listenerList.remove(CellEditorListener.class, l); + } + + protected void fireEditingStopped() { + Object[] listeners = listenerList.getListenerList(); + // Process the listeners last to first, notifying + // those that are interested in this event + for (int i = listeners.length-2; i>=0; i-=2) { + if (listeners[i]==CellEditorListener.class) { + // Lazily create the event: + if (changeEvent == null) + changeEvent = new ChangeEvent(this); + ((CellEditorListener)listeners[i+1]).editingStopped(changeEvent); + } + } + } + + protected void fireEditingCanceled() { + // Guaranteed to return a non-null array + Object[] listeners = listenerList.getListenerList(); + // Process the listeners last to first, notifying + // those that are interested in this event + for (int i = listeners.length-2; i>=0; i-=2) { + if (listeners[i]==CellEditorListener.class) { + // Lazily create the event: + if (changeEvent == null) + changeEvent = new ChangeEvent(this); + ((CellEditorListener)listeners[i+1]).editingCanceled(changeEvent); + } + } + } + + // implements javax.swing.table.TableCellEditor + public Component getTableCellEditorComponent(JTable table, Object value, + boolean isSelected, int row, int column) { + + editorComponent = (JComponent)value; + container = table; + return editorComponent; + } +} // End of class JComponentCellEditor + diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDataModel.java new file mode 100644 index 000000000..af20b4e99 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDataModel.java @@ -0,0 +1,83 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileConfigDataModel extends AbstractTableModel +{ + Vector rowData; + Vector columnNames; + + public ProfileConfigDataModel() + { + } + + public void setInfo(Vector _rowData, Vector _columnNames) + { + rowData = _rowData; + columnNames = _columnNames; + } + + public String getColumnName(int column) + { + return columnNames.elementAt(column).toString(); + } + public int getRowCount() + { + return rowData.size(); + } + public int getColumnCount() + { + return columnNames.size(); + } + + public Object getValueAt(int row, int column) + { + return ((Vector)rowData.elementAt(row)).elementAt(column); + } + + public boolean isCellEditable(int row, int column) + { + return false; + } + + public void setValueAt(Object value, int row, int column) + { + ((Vector)rowData.elementAt(row)).setElementAt(value, column); + fireTableCellUpdated(row, column); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDialog.java new file mode 100644 index 000000000..a8d312d2a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDialog.java @@ -0,0 +1,396 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileConfigDialog extends CMSBaseConfigDialog + implements ActionListener +{ + protected JButton mRefresh, mEdit, mAdd, mDelete, mOrder, mHelp; + protected JTextField mAuthField=null,mNameField=null, mDescField=null, mConfigField=null; + protected JComboBox mVisibleField = null; + protected JLabel mVisibleLabel=null,mAuthLabel=null,mNameLabel=null, mDescLabel = null, mConfigLabel =null; + + /*========================================================== + * constructors + *==========================================================*/ + public ProfileConfigDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + + PREFIX = "PROFILECONFIGDIALOG"; + mHelpToken = "configuration-certificateprofiles"; + mImplName_token = Constants.PR_POLICY_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_POLICY; + init(nvp,parent,conn,dest); + } + + + protected JPanel makeContentPane() { + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + // 'Policy Rule ID' here + CMSAdminUtil.resetGBC(gbc); + mRulenameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "RULENAME", null); + mRulenameCaption.addMouseListener(this); + mPluginLabel = new JLabel(); + mPluginLabel.setVisible(false); + mPluginName = new JTextField(); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add(mRulenameCaption, gbc); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + 0,CMSAdminUtil.COMPONENT_SPACE); + mListPanel.add( mPluginName, gbc ); + mListPanel.add( mPluginLabel, gbc ); + + // name + CMSAdminUtil.resetGBC(gbc); + mNameLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "NAMENAME", null); + mNameLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mNameLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mNameField = new JTextField(); + mListPanel.add( mNameField, gbc ); + + // desc + CMSAdminUtil.resetGBC(gbc); + mDescLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "DESCNAME", null); + mDescLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mDescLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mDescField = new JTextField(); + mListPanel.add( mDescField, gbc ); + + // visible + CMSAdminUtil.resetGBC(gbc); + mVisibleLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "VISIBLENAME", null); + mVisibleLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mVisibleLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + String[] item = {"true", "false"}; + mVisibleField = new JComboBox(item); + mListPanel.add( mVisibleField, gbc ); + + // authentication + CMSAdminUtil.resetGBC(gbc); + mAuthLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "AUTHNAME", null); + mAuthLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mAuthLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mAuthField = new JTextField(); + mListPanel.add( mAuthField, gbc ); + + // config file +/* + CMSAdminUtil.resetGBC(gbc); + mConfigLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "CONFIGNAME", null); + mConfigLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mConfigLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mConfigField = new JTextField(); + mListPanel.add( mConfigField, gbc ); +*/ + + + // 'Policy Plugin ID' here + CMSAdminUtil.resetGBC(gbc); + mImplnameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "IMPLNAME", null); + mImplnameCaption.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mImplnameCaption, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mImplName = new JLabel(); + mListPanel.add( mImplName, gbc ); + + /* Tab */ +/* + JTabbedPane tabPane = new JTabbedPane(); + JPanel lpanel = createListPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + tabPane.addTab("Policies", lpanel); + gb.setConstraints(tabPane, gbc); + mListPanel.add(tabPane); +*/ + + /* Panel for list of plugin's parameters */ + mParamPanel = new JPanel(); +/* + mScrollPane = new JScrollPane(mParamPanel); + mScrollPane.setBorder(CMSAdminUtil.makeEtchedBorder()); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); +*/ + + /* Panel in which to put plugin's help text */ + mHelpPanel = new JPanel(); + mHelpPanel.setBorder(CMSAdminUtil.makeEtchedBorder()); + mHelpLabel = new JTextArea(3,0); + mHelpLabel.setLineWrap(true); + mHelpLabel.setWrapStyleWord(true); + mHelpLabel.setBackground(mHelpPanel.getBackground()); + mHelpLabel.setEditable(false); + GridBagLayout gb2 = new GridBagLayout(); + GridBagConstraints gbc2 = new GridBagConstraints(); + + CMSAdminUtil.resetGBC(gbc2); + gbc2.fill = gbc.BOTH; + gbc2.anchor = gbc.WEST; + gbc2.gridwidth = gbc.REMAINDER; + gbc2.weightx = 1.0; + gbc2.weighty = 1.0; + gb2.setConstraints(mHelpLabel, gbc2); + mHelpPanel.setLayout(gb2); + mHelpPanel.add(mHelpLabel); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.SOUTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gb.setConstraints(mHelpPanel, gbc); + mListPanel.add(mHelpPanel); + + return mListPanel; + } + + public JPanel createListPanel() + { + // GridBagLayout gb = new GridBagLayout(); + // GridBagConstraints gbc = new GridBagConstraints(); + + Vector colNames = new Vector(); + colNames.addElement("Defaults"); + colNames.addElement("Constraints"); + Vector data = new Vector(); + Vector row = new Vector(); + row.addElement("NoDefault"); + row.addElement("NoConstraint"); + data.addElement(row); + + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + ProfileConfigDataModel model = new ProfileConfigDataModel(); + model.setInfo(data, colNames); + JTable mTable = new JTable(model); + JScrollPane mScrollPane = JTable.createScrollPaneForTable(mTable); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + // mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); +// setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createUserButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + return mListPanel; + } + + protected JPanel createUserButtonPanel() { + Debug.println("CMSPluginInstanceTab::createUserButtonPanel()"); + //edit, add, delete, help buttons required + //actionlister to this object + mEdit = CMSAdminUtil.makeJButton(mResource, PREFIX, "EDIT", null, this); + mAdd = CMSAdminUtil.makeJButton(mResource, PREFIX, "ADD", null, this); + mDelete = CMSAdminUtil.makeJButton(mResource, PREFIX, "DELETE", null, this); + JButton[] buttons = {mAdd, mDelete, mEdit}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mOK)) { + + NameValuePairs nvp = new NameValuePairs(); + try { + if (mModel != null) { mModel.progressStart(); } + + String instanceName = mPluginName.getText(); + nvp.put("impl", mImplName.getText()); + nvp.put("name", mNameField.getText()); + nvp.put("visible", (String) (mVisibleField.getSelectedItem())); + nvp.put("auth", mAuthField.getText()); + nvp.put("desc", mDescField.getText()); + // nvp.add("config", mConfigField.getText()); + // mAdminConnection.add(DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.add(mDest, + ScopeDef.SC_PROFILE_RULES, instanceName, nvp); + + mIsOK = true; + if (mModel != null) { mModel.progressStop(); } + this.dispose(); + } + catch (EAdminException ex) { + mModel.progressStop(); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + ex.toString(),CMSAdminUtil.ERROR_MESSAGE); + } + } + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileDataTable.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileDataTable.java new file mode 100644 index 000000000..94d3b65f2 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileDataTable.java @@ -0,0 +1,68 @@ +// --- 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.config; + +import java.awt.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.table.*; + +/** + * class used to creat the password label + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class ProfileDataTable extends JTable +{ + + public ProfileDataTable(TableModel model) { + super(model); + } + + public TableCellRenderer getCellRenderer(int row, int column) { + TableColumn tableColumn = getColumnModel().getColumn(column); + TableCellRenderer renderer = tableColumn.getCellRenderer(); + if (renderer == null) { + Class c = getColumnClass(column); + if( c.equals(Object.class) ) { + Object o = getValueAt(row,column); + if( o != null ) { + c = getValueAt(row,column).getClass(); + } + } + renderer = getDefaultRenderer(c); + } + return renderer; + } + + public TableCellEditor getCellEditor(int row, int column) { + TableColumn tableColumn = getColumnModel().getColumn(column); + TableCellEditor editor = tableColumn.getCellEditor(); + if (editor == null) { + Class c = getColumnClass(column); + if( c.equals(Object.class) ) { + Object o = getValueAt(row,column); + if( o != null ) + c = getValueAt(row,column).getClass(); + } + editor = getDefaultEditor(c); + } + return editor; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDataModel.java new file mode 100644 index 000000000..096a4075c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDataModel.java @@ -0,0 +1,88 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileEditDataModel extends AbstractTableModel +{ + Vector rowData; + Vector columnNames; + + public ProfileEditDataModel() + { + } + + public void setInfo(Vector _rowData, Vector _columnNames) + { + rowData = _rowData; + columnNames = _columnNames; + } + + public String getColumnName(int column) + { + return columnNames.elementAt(column).toString(); + } + public int getRowCount() + { + return rowData.size(); + } + public int getColumnCount() + { + return columnNames.size(); + } + + public Object getValueAt(int row, int column) + { + return ((Vector)rowData.elementAt(row)).elementAt(column); + } + + public boolean isCellEditable(int row, int column) + { + return false; + } + + public void setValueAt(Object value, int row, int column) + { + ((Vector)rowData.elementAt(row)).setElementAt(value, column); + fireTableCellUpdated(row, column); + } + + public void removeRow(int row) { + rowData.removeElementAt(row); + fireTableRowsDeleted(row, rowData.size()); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDialog.java new file mode 100644 index 000000000..d10e19215 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDialog.java @@ -0,0 +1,931 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileEditDialog extends CMSBaseConfigDialog + implements ActionListener, ChangeListener +{ + protected JButton mRefresh, mOrder, mHelp; + protected JTextField mAuthField=null,mNameField=null, mDescField=null, mConfigField=null; + protected JLabel mVisibleLabel=null,mAuthLabel=null,mNameLabel=null, mDescLabel = null, mConfigLabel =null; + protected JComboBox mVisibleField = null; + protected JTable mPolicyTable=null, mInputTable=null, mOutputTable=null, + mAuthTable=null; + + protected String mDefSetId = null; + protected String mName = null; + protected JTabbedPane mTabbedPane = null; + protected JButton mPolicyEdit, mPolicyAdd, mPolicyDelete; + protected JButton mInputEdit, mInputAdd, mInputDelete; + protected JButton mOutputEdit, mOutputAdd, mOutputDelete; + + /*========================================================== + * constructors + *==========================================================*/ + public ProfileEditDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + + PREFIX = "PROFILEEDITDIALOG"; + mHelpToken = "configuration-certificateprofiles"; + mImplName_token = Constants.PR_POLICY_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_POLICY; + + init(nvp,parent,conn,dest); + setSize(540, 440); + } + + + protected JPanel makeContentPane() { + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + // 'Policy Rule ID' here + CMSAdminUtil.resetGBC(gbc); + mRulenameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "RULENAME", null); + mRulenameCaption.addMouseListener(this); + mPluginLabel = new JLabel(); + mPluginLabel.setVisible(false); + mPluginName = new JTextField(); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add(mRulenameCaption, gbc); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + 0,CMSAdminUtil.COMPONENT_SPACE); + mListPanel.add( mPluginName, gbc ); + mListPanel.add( mPluginLabel, gbc ); + + // name + CMSAdminUtil.resetGBC(gbc); + mNameLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "NAMENAME", null); + mNameLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mNameLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mNameField = new JTextField(); + mListPanel.add( mNameField, gbc ); + + // desc + CMSAdminUtil.resetGBC(gbc); + mDescLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "DESCNAME", null); + mDescLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mDescLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mDescField = new JTextField(); + mListPanel.add( mDescField, gbc ); + + // visible + CMSAdminUtil.resetGBC(gbc); + mVisibleLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "VISIBLENAME", null); + mVisibleLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mVisibleLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + String[] item = {"true", "false"}; + mVisibleField = new JComboBox(item); + mListPanel.add( mVisibleField, gbc ); + + // auth + CMSAdminUtil.resetGBC(gbc); + mAuthLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "AUTHNAME", null); + mAuthLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mAuthLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mAuthField = new JTextField(); + mListPanel.add( mAuthField, gbc ); + + // config file +/* + CMSAdminUtil.resetGBC(gbc); + mConfigLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "CONFIGNAME", null); + mConfigLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + // mListPanel.add( mConfigLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mConfigField = new JTextField(); + // mListPanel.add( mConfigField, gbc ); + +*/ + + // 'Policy Plugin ID' here + CMSAdminUtil.resetGBC(gbc); + mImplnameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "IMPLNAME", null); + mImplnameCaption.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mImplnameCaption, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mImplName = new JLabel(); + mListPanel.add( mImplName, gbc ); + + /* Tab */ + mTabbedPane = new JTabbedPane(); + Vector policyColNames = new Vector(); + policyColNames.addElement("Set Id"); + policyColNames.addElement("Id"); + policyColNames.addElement("Defaults"); + policyColNames.addElement("Constraints"); + Vector policyData = new Vector(); + Vector policyRow = new Vector(); + policyRow.addElement("p1"); + policyRow.addElement("p1"); + policyRow.addElement("NoDefault"); + policyRow.addElement("NoConstraint"); + policyData.addElement(policyRow); + ProfileEditDataModel model = new ProfileEditDataModel(); + model.setInfo(policyData, policyColNames); + mPolicyTable = new JTable(model); + mPolicyEdit = CMSAdminUtil.makeJButton(mResource, PREFIX, "EDIT", null, this); + mPolicyAdd = CMSAdminUtil.makeJButton(mResource, PREFIX, "ADD", null, this); + mPolicyDelete = CMSAdminUtil.makeJButton(mResource, PREFIX, "DELETE", null, this); + JPanel buttonPanel = createUserButtonPanel(mPolicyAdd, + mPolicyDelete, mPolicyEdit); + JPanel lpanel = createListPanel(mPolicyTable, buttonPanel, + policyColNames, policyData); + + Vector inputColNames = new Vector(); + inputColNames.addElement("Id"); + inputColNames.addElement("Inputs"); + Vector inputData = new Vector(); + Vector inputRow = new Vector(); + inputRow.addElement("i1"); + inputRow.addElement("NoInput"); + inputData.addElement(inputRow); + ProfileEditDataModel model1 = new ProfileEditDataModel(); + model1.setInfo(inputData, inputColNames); + mInputTable = new JTable(model1); + mInputEdit = CMSAdminUtil.makeJButton(mResource, PREFIX, "EDIT", null, this); + mInputAdd = CMSAdminUtil.makeJButton(mResource, PREFIX, "ADD", null, this); + mInputDelete = CMSAdminUtil.makeJButton(mResource, PREFIX, "DELETE", null, this); + JPanel buttonPanel1 = createUserButtonPanel(mInputAdd, + mInputDelete, mInputEdit); + JPanel lpanel1 = createListPanel(mInputTable, buttonPanel1, + inputColNames, inputData); + + Vector outputColNames = new Vector(); + outputColNames.addElement("Id"); + outputColNames.addElement("Outputs"); + Vector outputData = new Vector(); + Vector outputRow = new Vector(); + outputRow.addElement("i1"); + outputRow.addElement("NoOutput"); + outputData.addElement(outputRow); + ProfileEditDataModel model2 = new ProfileEditDataModel(); + model2.setInfo(outputData, outputColNames); + mOutputTable = new JTable(model2); + mOutputEdit = CMSAdminUtil.makeJButton(mResource, PREFIX, "EDIT", null, this); + mOutputAdd = CMSAdminUtil.makeJButton(mResource, PREFIX, "ADD", null, this); + mOutputDelete = CMSAdminUtil.makeJButton(mResource, PREFIX, "DELETE", + null , this); + JPanel buttonPanel2 = createUserButtonPanel(mOutputAdd, + mOutputDelete, mOutputEdit); + JPanel lpanel2 = createListPanel(mOutputTable, buttonPanel2, + outputColNames, outputData); + +// JPanel lpanel2 = createOutputPanel(); +// JPanel lpanel3 = createAuthPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + mTabbedPane.addTab(mResource.getString(PREFIX+"_POLICIES_TAB"), lpanel); + mTabbedPane.addTab(mResource.getString(PREFIX+"_INPUTS_TAB"), lpanel1); + mTabbedPane.addTab(mResource.getString(PREFIX+"_OUTPUTS_TAB"), lpanel2); + + //mTabbedPane.addTab(mResource.getString(PREFIX+"_OUTPUTS_TAB"), lpanel2); + //mTabbedPane.addTab(mResource.getString(PREFIX+"_AUTHS_TAB"), lpanel3); + gb.setConstraints(mTabbedPane, gbc); + mListPanel.add(mTabbedPane); + + /* Panel for list of plugin's parameters */ + mParamPanel = new JPanel(); +/* + mScrollPane = new JScrollPane(mParamPanel); + mScrollPane.setBorder(CMSAdminUtil.makeEtchedBorder()); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); +*/ + + /* Panel in which to put plugin's help text */ + mHelpPanel = new JPanel(); + mHelpPanel.setBorder(CMSAdminUtil.makeEtchedBorder()); + mHelpLabel = new JTextArea(3,0); + mHelpLabel.setLineWrap(true); + mHelpLabel.setWrapStyleWord(true); + mHelpLabel.setBackground(mHelpPanel.getBackground()); + mHelpLabel.setEditable(false); + GridBagLayout gb2 = new GridBagLayout(); + GridBagConstraints gbc2 = new GridBagConstraints(); + + CMSAdminUtil.resetGBC(gbc2); + gbc2.fill = gbc.BOTH; + gbc2.anchor = gbc.WEST; + gbc2.gridwidth = gbc.REMAINDER; + gbc2.weightx = 1.0; + gbc2.weighty = 1.0; + gb2.setConstraints(mHelpLabel, gbc2); + mHelpPanel.setLayout(gb2); + mHelpPanel.add(mHelpLabel); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.SOUTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gb.setConstraints(mHelpPanel, gbc); + mListPanel.add(mHelpPanel); + mTabbedPane.addChangeListener(this); + + return mListPanel; + } + + private JTable getTable() { + int i = mTabbedPane.getSelectedIndex(); + if (i == 0) { + return mPolicyTable; + } else if (i == 1) { + return mInputTable; + } else if (i == 2) { + return mOutputTable; + } + return null; + } + + public JPanel createListPanel(JTable table, JPanel buttonPanel, + Vector column, Vector datav) + { + Vector colNames = column; + Vector data = datav; + + JPanel listPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + listPanel.setLayout(gb); + + //center table + JScrollPane mScrollPane = JTable.createScrollPaneForTable(table); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + table.setAutoscrolls(true); + table.sizeColumnsToFit(true); + table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + // table.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + table.addMouseListener(this); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + listPanel.add(mScrollPane); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + listPanel.add(buttonPanel); + + return listPanel; + } + + protected JPanel createUserButtonPanel(JButton add, JButton delete, + JButton edit) { + Debug.println("CMSPluginInstanceTab::createUserButtonPanel()"); + //edit, add, delete, help buttons required + //actionlister to this object + JButton[] buttons = {add, delete, edit}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + public void refresh() + { + showDialog(null, mName); + } + + public void stateChanged(ChangeEvent evt) { + setProfileOtherInfo(mName); + } + + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + + if (evt.getSource().equals(mPolicyAdd)) { + String profileId = mPluginName.getText(); + Debug.println("Add Policy"); + ProfilePolicySelectionDialog dialog = + new ProfilePolicySelectionDialog(mDefSetId, profileId, + "PROFILEPOLICYSELDIALOG", + mModel.getFrame(), + mAdminConnection, + DestDef.DEST_REGISTRY_ADMIN, mDest); + + dialog.setModel(mModel); + dialog.setDisplay(); + dialog.showDialog(); + refresh(); + } + + if (evt.getSource().equals(mInputAdd)) { + String profileId = mPluginName.getText(); + Debug.println("Add Input"); + ProfileNonPolicySelDialog dialog = + new ProfileNonPolicySelDialog(profileId, + "PROFILEINPUTSELDIALOG", mModel.getFrame(), + mAdminConnection, DestDef.DEST_REGISTRY_ADMIN, mDest, + ScopeDef.SC_PROFILE_INPUT); + dialog.setModel(mModel); + dialog.setDisplay(); + dialog.showDialog(); + refresh(); + } + + if (evt.getSource().equals(mOutputAdd)) { + String profileId = mPluginName.getText(); + Debug.println("Add Output"); + ProfileNonPolicySelDialog dialog = + new ProfileNonPolicySelDialog(profileId, + "PROFILEOUTPUTSELDIALOG", mModel.getFrame(), + mAdminConnection, DestDef.DEST_REGISTRY_ADMIN, mDest, + ScopeDef.SC_PROFILE_OUTPUT); + dialog.setModel(mModel); + dialog.setDisplay(); + dialog.showDialog(); + refresh(); + } + + if (evt.getSource().equals(mPolicyDelete)) { + JTable table = getTable(); + if (table.getSelectedRowCount() <= 0) { + String msg = mResource.getString( + PREFIX+"_DIALOG_NOPOLICY_MESSAGE"); + CMSAdminUtil.showErrorDialog(mModel.getFrame(), + mResource, msg, CMSAdminUtil.ERROR_MESSAGE); + return; + } + int i = CMSAdminUtil.showConfirmDialog(mParentFrame, + mResource, PREFIX, "DELETE", CMSAdminUtil.WARNING_MESSAGE); + if (i == JOptionPane.YES_OPTION) { + String policyId = (String) + table.getValueAt(table.getSelectedRow(), 0) + ":" + + table.getValueAt(table.getSelectedRow(), 1); + try { + deletePolicy(mPluginName.getText().trim(),policyId); + + ProfileEditDataModel model = + (ProfileEditDataModel)table.getModel(); + model.removeRow(table.getSelectedRow()); + table.invalidate(); + table.validate(); + table.repaint(1); + } catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, + mResource, e.toString(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + Debug.println("Deleted"); + } + } + + if (evt.getSource().equals(mInputDelete)) { + JTable table = getTable(); + if (table.getSelectedRowCount() <= 0) { + String msg = mResource.getString( + PREFIX+"_DIALOG_NOPOLICY_MESSAGE"); + CMSAdminUtil.showErrorDialog(mModel.getFrame(), + mResource, msg, CMSAdminUtil.ERROR_MESSAGE); + return; + } + int i = CMSAdminUtil.showConfirmDialog(mParentFrame, + mResource, PREFIX, "DELETE", CMSAdminUtil.WARNING_MESSAGE); + if (i == JOptionPane.YES_OPTION) { + String inputId = (String) + table.getValueAt(table.getSelectedRow(), 0); + try { + deleteInput(mPluginName.getText().trim(),inputId); + + ProfileEditDataModel model = + (ProfileEditDataModel)table.getModel(); + model.removeRow(table.getSelectedRow()); + table.invalidate(); + table.validate(); + table.repaint(1); + } catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, + mResource, e.toString(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + Debug.println("Deleted"); + } + } + + if (evt.getSource().equals(mOutputDelete)) { + JTable table = getTable(); + if (table.getSelectedRowCount() <= 0) { + String msg = mResource.getString( + PREFIX+"_DIALOG_NOPOLICY_MESSAGE"); + CMSAdminUtil.showErrorDialog(mModel.getFrame(), + mResource, msg, CMSAdminUtil.ERROR_MESSAGE); + return; + } + int i = CMSAdminUtil.showConfirmDialog(mParentFrame, + mResource, PREFIX, "DELETE", CMSAdminUtil.WARNING_MESSAGE); + if (i == JOptionPane.YES_OPTION) { + String outputId = (String) + table.getValueAt(table.getSelectedRow(), 0); + try { + deleteOutput(mPluginName.getText().trim(),outputId); + + ProfileEditDataModel model = + (ProfileEditDataModel)table.getModel(); + model.removeRow(table.getSelectedRow()); + table.invalidate(); + table.validate(); + table.repaint(1); + } catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, + mResource, e.toString(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + Debug.println("Deleted"); + } + } + + if (evt.getSource().equals(mPolicyEdit)) { + JTable table = getTable(); + // pick selected entry + if (table.getSelectedRowCount() <= 0) { + CMSAdminUtil.showErrorDialog(mModel.getFrame(), + mResource, + "You must select a policy first", + CMSAdminUtil.ERROR_MESSAGE); + return; + } + String policyId = (String) + table.getValueAt(table.getSelectedRow(), 0) + ":" + + table.getValueAt(table.getSelectedRow(), 1); + + Debug.println("Edit"); + NameValuePairs nvp = new NameValuePairs(); + ProfilePolicyEditDialog dialog = + new ProfilePolicyEditDialog(nvp, + mModel.getFrame(), + mAdminConnection, + // DestDef.DEST_CA_PROFILE_ADMIN); + mDest); + dialog.setModel(mModel); + + String name = mPluginName.getText() + ";" + policyId; + Debug.println(" XXXX name=" + name); + dialog.showDialog(null, name); + } + + if (evt.getSource().equals(mInputEdit)) { + JTable table = getTable(); + // pick selected entry + if (table.getSelectedRowCount() <= 0) { + CMSAdminUtil.showErrorDialog(mModel.getFrame(), + mResource, + "You must select an input first", + CMSAdminUtil.ERROR_MESSAGE); + return; + } + String inputId = (String) + table.getValueAt(table.getSelectedRow(), 0); + + Debug.println("Edit input"); + NameValuePairs nvp = new NameValuePairs(); + ProfileNonPolicyNewDialog dialog = + new ProfileNonPolicyNewDialog(nvp, + mModel.getFrame(), + mAdminConnection, + //DestDef.DEST_CA_PROFILE_ADMIN, + mDest, + ScopeDef.SC_PROFILE_INPUT_CONFIG, false); + dialog.setModel(mModel); + + String name = mPluginName.getText() + ";" + inputId; + Debug.println(" XXXX name=" + name); + dialog.showDialog(null, mPluginName.getText().trim(), inputId); + } + + if (evt.getSource().equals(mOutputEdit)) { + JTable table = getTable(); + // pick selected entry + if (table.getSelectedRowCount() <= 0) { + CMSAdminUtil.showErrorDialog(mModel.getFrame(), + mResource, + "You must select an output first", + CMSAdminUtil.ERROR_MESSAGE); + return; + } + String outputId = (String) + table.getValueAt(table.getSelectedRow(), 0); + + Debug.println("Edit output"); + NameValuePairs nvp = new NameValuePairs(); + ProfileNonPolicyNewDialog dialog = + new ProfileNonPolicyNewDialog(nvp, + mModel.getFrame(), + mAdminConnection, + // DestDef.DEST_CA_PROFILE_ADMIN, + mDest, + ScopeDef.SC_PROFILE_OUTPUT_CONFIG, false); + dialog.setModel(mModel); + + String name = mPluginName.getText() + ";" + outputId; + Debug.println(" XXXX name=" + name); + dialog.showDialog(null, mPluginName.getText().trim(), outputId); + } + + if (evt.getSource().equals(mOK)) { + + NameValuePairs nvp = new NameValuePairs(); + try { + if (mModel != null) + mModel.progressStart(); + + String instanceName = mPluginName.getText(); + nvp.put("impl", mImplName.getText()); + nvp.put("name", mNameField.getText()); + nvp.put("desc", mDescField.getText()); + nvp.put("visible", (String) (mVisibleField.getSelectedItem())); + nvp.put("auth", mAuthField.getText()); + // nvp.add("config", mConfigField.getText()); + +/* + // mAdminConnection.add(DestDef.DEST_CA_PROFILE_ADMIN, + ScopeDef.SC_PROFILE_RULES, instanceName, nvp); +*/ + //DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.modify(mDest, + ScopeDef.SC_PROFILE_RULES, instanceName, nvp); + + mIsOK = true; + if (mModel != null) + mModel.progressStop(); + this.dispose(); + } catch (EAdminException ex) { + mModel.progressStop(); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + ex.toString(),CMSAdminUtil.ERROR_MESSAGE); + } + } + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + + } + + private void deletePolicy(String profileId, String policyId) + throws EAdminException{ + NameValuePairs nvps = new NameValuePairs(); + nvps.put("POLICYID", policyId); + //mAdminConnection.delete(DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.delete(mDest, + ScopeDef.SC_PROFILE_POLICIES, profileId, nvps); + } + + private void deleteInput(String profileId, String inputId) + throws EAdminException{ + NameValuePairs nvps = new NameValuePairs(); + nvps.put("INPUTID", inputId); + //mAdminConnection.delete(DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.delete(mDest, + ScopeDef.SC_PROFILE_INPUT, profileId, nvps); + } + + private void deleteOutput(String profileId, String outputId) + throws EAdminException{ + NameValuePairs nvps = new NameValuePairs(); + nvps.put("OUTPUTID", outputId); + //mAdminConnection.delete(DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.delete(mDest, + ScopeDef.SC_PROFILE_OUTPUT, profileId, nvps); + } + + public void showDialog(NameValuePairs data, String name) { + + mName = name; + setProfileInfo(name); + setProfileOtherInfo(name); + + this.show(); + } + + private void setProfileInfo(String name) { + mModel.progressStart(); + + // retrieve profile information + NameValuePairs response = null; + NameValuePairs request = new NameValuePairs(); + try { + //response = mAdminConnection.read(DestDef.DEST_CA_PROFILE_ADMIN, + response = mAdminConnection.read(mDest, + ScopeDef.SC_PROFILE_RULES, + name, request); + } catch (EAdminException e) { +// CMSAdminUtil.showErrorDialog(mParentFrame, mResource, e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + + String enable = response.get("enable"); + + if (response != null) { + mPluginName.setEnabled(false); + mPluginName.setBackground(getBackground()); + mPluginName.setText(name); + mNameField.setText(response.get("name")); + mDescField.setText(response.get("desc")); + mAuthField.setText(response.get("auth")); + mVisibleField.setSelectedItem(response.get("visible")); + mImplName.setText(response.get("plugin")); + // mConfigField.setText(response.getValue("config")); + } + if (enable != null && enable.equals("true")) { + // disable everything + mNameField.setEnabled(false); + mDescField.setEnabled(false); + mAuthField.setEnabled(false); + mVisibleField.setEnabled(false); + mImplName.setEnabled(false); + + mPolicyEdit.setEnabled(false); + mPolicyAdd.setEnabled(false); + mPolicyDelete.setEnabled(false); + + mInputEdit.setEnabled(false); + mInputAdd.setEnabled(false); + mInputDelete.setEnabled(false); + + mOutputEdit.setEnabled(false); + mOutputAdd.setEnabled(false); + mOutputDelete.setEnabled(false); + } + } + + private void setProfileOtherInfo(String name) { + if (mModel != null) + mModel.progressStart(); + JTable table = getTable(); + NameValuePairs request = new NameValuePairs(); + NameValuePairs response = null; + if (table == mPolicyTable) { + try { + response = mAdminConnection.read( + mDest, + ScopeDef.SC_PROFILE_POLICIES, name, request); + } catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.toString(), CMSAdminUtil.ERROR_MESSAGE); + if (mModel != null) + mModel.progressStop(); + return; + } + + if (mModel != null) + mModel.progressStop(); + if (response != null) { + populatePolicies(response, table); + } + } else if (table == mInputTable) { + try { + response = mAdminConnection.read( + mDest, + ScopeDef.SC_PROFILE_INPUT, name, request); + } catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.toString(), CMSAdminUtil.ERROR_MESSAGE); + if (mModel != null) + mModel.progressStop(); + return; + } + + if (mModel != null) + mModel.progressStop(); + if (response != null) { + populateNonPolicy(response, table); + } + } else if (table == mOutputTable) { + try { + response = mAdminConnection.read( + mDest, + ScopeDef.SC_PROFILE_OUTPUT, name, request); + } catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.toString(), CMSAdminUtil.ERROR_MESSAGE); + if (mModel != null) + mModel.progressStop(); + return; + } + + if (mModel != null) + mModel.progressStop(); + if (response != null) { + populateNonPolicy(response, table); + } + } else { + // do nothing + } + } + + private void populatePolicies(NameValuePairs response, JTable table) { + Vector colNames = new Vector(); + colNames.addElement("Set Id"); + colNames.addElement("Id"); + colNames.addElement("Defaults"); + colNames.addElement("Constraints"); + Vector> d = new Vector>(); + + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + Debug.println("populatePolicies entry= "+entry); + Debug.println("populatePolicies value= "+value); + + StringTokenizer st = new StringTokenizer(value, ";"); + String def = st.nextToken(); + String con = st.nextToken(); + Vector row = new Vector(); + + StringTokenizer st1 = new StringTokenizer(entry, ":"); + String setId = st1.nextToken(); + String id = st1.nextToken(); + + if (mDefSetId == null) { + mDefSetId = setId; + } + row.addElement(setId); + row.addElement(id); + row.addElement(def); + row.addElement(con); + d.addElement(row); + } + ProfileEditDataModel model = new ProfileEditDataModel(); + model.setInfo(d, colNames); + table.setModel(model); + } + + private void populateNonPolicy(NameValuePairs response, JTable table) { + Vector colNames = new Vector(); + colNames.addElement("Id"); + if (table == mInputTable) + colNames.addElement("Inputs"); + else if (table == mOutputTable) + colNames.addElement("Outputs"); + Vector> d = new Vector>(); + + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + Debug.println("populateNonPolicy entry= " + entry); + Debug.println("populateNonPolicy value= " + value); + + Vector row = new Vector(); + row.addElement(entry); + row.addElement(value); + d.addElement(row); + } + ProfileEditDataModel model = new ProfileEditDataModel(); + model.setInfo(d, colNames); + table.setModel(model); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileImplDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileImplDataModel.java new file mode 100644 index 000000000..eee2531cf --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileImplDataModel.java @@ -0,0 +1,70 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Implementation Data model - represents the implementation + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileImplDataModel extends CMSContentTableModel + implements IDataProcessor +{ + + /*========================================================== + * variables + *==========================================================*/ + public static final String IMPL_NAME = "NAME"; + public static final String IMPL_CLASS = "CLASS"; + public static final String IMPL_TYPE = "TYPE"; + public static final String IMPL_DESC = "DESC"; + + private static String[] mColumns = {POLICY_IMPL, IMPL_TYPE, CLASSNAME}; + + /*========================================================== + * constructors + *==========================================================*/ + public ProfileImplDataModel() { + super(); + init(mColumns); + } + + /*========================================================== + * public methods + *==========================================================*/ + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + v.addElement(new JLabel(obj.get(IMPL_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN), + JLabel.LEFT)); + v.addElement(obj.get(IMPL_TYPE)); + v.addElement(obj.get(IMPL_CLASS)); + //v.addElement(obj.getValue(IMPL_DESC)); + addRow(v, data); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileImplTab.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileImplTab.java new file mode 100644 index 000000000..c7d28dd07 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileImplTab.java @@ -0,0 +1,382 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Instances Management Tab + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileImplTab extends CMSBaseUGTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String IMPL_NAME = ProfileImplDataModel.IMPL_NAME; + private static final String IMPL_TYPE = ProfileImplDataModel.IMPL_TYPE; + private static final String IMPL_CLASS = ProfileImplDataModel.IMPL_CLASS; + private static final String IMPL_DESC = ProfileImplDataModel.IMPL_DESC; + + private static final String PANEL_NAME = "PROFILEIMPL"; + private static final String DIALOG_PREFIX = "PROFILEREGISTERDIALOG"; + + private AdminConnection mConnection; + private String mDestination; + + protected JScrollPane mScrollPane; + protected JTable mTable; //table + protected ProfileImplDataModel mDataModel; //table model + protected ProfileRegisterDialog mEditor=null; //keep single copy + protected ViewDialog mViewer=null; //keep single copy + + protected JButton mRefresh, mAdd, mDelete, mView, mHelp; + private final static String HELPINDEX = "configuration-certificateprofiles"; + + /*========================================================== + * constructors + *==========================================================*/ + public ProfileImplTab(CMSBaseResourceModel model, String destination) { + super(PANEL_NAME, model); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new ProfileImplDataModel(); + mDestination = destination; + mHelpToken = HELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } + if (e.getSource().equals(mAdd)) { + if (mEditor==null) + mEditor = new ProfileRegisterDialog(mModel.getFrame(), + mConnection); + mEditor.showDialog(mDestination, ScopeDef.SC_POLICY_IMPLS); + refresh(); + } + if (e.getSource().equals(mDelete)) { + Debug.println("Delete"); + if(mTable.getSelectedRow()< 0) + return; + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + delete(); + Debug.println("Deleted"); + } + } + if (e.getSource().equals(mView)) { + Debug.println("View"); + if(mTable.getSelectedRow()< 0) + return; + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + if (mViewer==null) + mViewer = new ViewDialog(mModel.getFrame()); + mViewer.showDialog(obj.get(IMPL_NAME), + obj.get(IMPL_CLASS), + obj.get(IMPL_DESC)); + } + if (e.getSource().equals(mHelp)) { + helpCallback(); + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mouseReleased(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + public void refresh() { + + mDataModel.removeAllRows(); + update(); + + setButtons(); + mTable.invalidate(); + mTable.validate(); + mTable.repaint(1); + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + mView = makeJButton("VIEW"); + JButton[] buttons = {mAdd, mDelete, mView}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + refresh(); + + return mListPanel; + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer(new LabelCellRenderer(new JLabel())); + } + + + //set buttons + private void setButtons() { + + //enable and diable buttons accordingly + //Debug.println("setButtons() - "+mTable.getSelectedRow()); + //Debug.println("setButtons() - "+mTable.getSelectionModel().isSelectionEmpty()); + if (mTable.getSelectionModel().isSelectionEmpty()) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + if(mDataModel.getRowCount()<=0) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + mDelete.setEnabled(true); + mView.setEnabled(true); + + } + + //============================================= + // SEND REQUESTS TO THE SERVER SIDE + //============================================= + private void update() { + //send request and parse data + + mModel.progressStart(); + NameValuePairs response = new NameValuePairs(); + NameValuePairs response1; + NameValuePairs response2; + NameValuePairs response3; + NameValuePairs response4; + NameValuePairs response5; + try { + response1 = mConnection.search(mDestination, + "profile", + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + for (String entry : response1.keySet()) { + entry = entry.trim(); + response.put(entry + ";profile", response1.get(entry)); + } + try { + response2 = mConnection.search(mDestination, + "profileInput", + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + for (String entry : response2.keySet()) { + entry = entry.trim(); + response.put(entry + ";profileInput", response2.get(entry)); + } + try { + response3 = mConnection.search(mDestination, + "profileOutput", + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + for (String entry : response3.keySet()) { + entry = entry.trim(); + response.put(entry + ";profileOutput", response3.get(entry)); + } + try { + response4 = mConnection.search(mDestination, + "defaultPolicy", + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + for (String entry : response4.keySet()) { + entry = entry.trim(); + response.put(entry + ";defaultPolicy", response4.get(entry)); + } + try { + response5 = mConnection.search(mDestination, + "constraintPolicy", + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + for (String entry : response5.keySet()) { + entry = entry.trim(); + response.put(entry + ";constraintPolicy", response5.get(entry)); + } + + //parse the data + int i=0; + String[] vals = new String[response.size()]; + Hashtable data = new Hashtable(); + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + int x = value.indexOf(","); + int x_end = value.lastIndexOf(","); + int y = entry.indexOf(";"); + NameValuePairs obj = new NameValuePairs(); + obj.put(IMPL_NAME, entry.substring(0, y)); + obj.put(IMPL_TYPE, entry.substring(y + 1)); + vals[i++]= entry ; + obj.put(IMPL_CLASS, value.substring(0, x)); + obj.put(IMPL_DESC, value.substring(x + 1, x_end)); + data.put(entry,obj); + } + + CMSAdminUtil.bubbleSort(vals); + + for (int y=0; y< vals.length ; y++) { + mDataModel.processData(data.get(vals[y])); + } + + data.clear(); + + if (mDataModel.getRowCount() >0) + mTable.setRowSelectionInterval(0,0); + + mModel.progressStop(); + } + + private void delete() { + //get entry name + mModel.progressStart(); + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, + obj.get(IMPL_TYPE), + obj.get(IMPL_NAME)); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileInstanceTab.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileInstanceTab.java new file mode 100644 index 000000000..6dbc1dceb --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileInstanceTab.java @@ -0,0 +1,161 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Profile Instances Management Tab + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileInstanceTab extends CMSPluginInstanceTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "PROFILERULE"; + + protected JButton mOrder; + private final static String HELPINDEX = "configuration-certificateprofiles"; + private ResourceBundle mResource; + private String mDest; + + /*========================================================== + * constructors + *==========================================================*/ + public ProfileInstanceTab(CMSBaseResourceModel model, String dest) { + super(model,dest,PANEL_NAME); + Debug.println("PolicyInstanceTab::PolicyInstanceTab(,"+dest); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new ProfileRuleDataModel(); + mScope = ScopeDef.SC_POLICY_RULES; + mDest = dest; + RULE_NAME = PolicyRuleDataModel.RULE_NAME; + RULE_STAT = PolicyRuleDataModel.RULE_STAT; + mResource = ResourceBundle.getBundle( + CMSAdminResources.class.getName()); + + mHelpToken = HELPINDEX; + } + + public CMSBaseConfigDialog makeEditConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest + ) + { + return new ProfileEditDialog(nvp, + parent, + conn, + dest); + } + + public CMSBaseConfigDialog makeNewConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest + ) + { + + return new ProfileConfigDialog(nvp, + parent, + conn, + dest); + } + + public PluginSelectionDialog getPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType + ) + { + return new ProfilePluginSelectionDialog(parent,conn,DestDef.DEST_REGISTRY_ADMIN, dest, pluginType); + } + + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mEdit) || e.getSource().equals(mDelete)) { + if(mTable.getSelectedRow()< 0) + return; + NameValuePairs data = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + // dont check enable and disable here. We want to + // view profile even though it is enabled + } + + super.actionPerformed(e); + } + + public void moreActionPerformed(ActionEvent e) { + if (e.getSource().equals(mOrder)) { + Debug.println("Order"); + PolicyRuleOrderDialog dialog = + new PolicyRuleOrderDialog(mModel.getFrame(), + mConnection, mDestination); + dialog.showDialog(mDataModel.getRules()); + refresh(); + } + } + + /** + * create the user action button panel + */ + protected JPanel createUserButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mOrder = makeJButton("ORDER"); + mEdit = makeJButton("EDIT"); + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + JButton[] buttons = {mAdd, mDelete, mEdit }; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + + //set buttons + protected void setButtons() { + super.setButtons(); + + if (mDataModel.getRowCount()<=0) { + mOrder.setEnabled(false); + } + else { + mOrder.setEnabled(true); + } + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileListDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileListDataModel.java new file mode 100644 index 000000000..2e4633046 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileListDataModel.java @@ -0,0 +1,60 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Profile List Model + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileListDataModel extends DefaultListModel { + + private Vector mObjectContainer = new Vector(); + + public Object getObjectValueAt(int row) { + return mObjectContainer.elementAt(row); + } + + public void removeAllRows() { + super.removeAllElements(); + mObjectContainer.removeAllElements(); + } + + public void addElement(Object displayData, Object extraData) { + super.addElement(displayData); + mObjectContainer.addElement(extraData); + } + + public void clear() { + super.clear(); + mObjectContainer.clear(); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicyNewDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicyNewDialog.java new file mode 100644 index 000000000..e597b242b --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicyNewDialog.java @@ -0,0 +1,429 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileNonPolicyNewDialog extends CMSBaseConfigDialog + implements ActionListener +{ + protected JButton mRefresh, mEdit, mAdd, mDelete, mOrder, mHelp; + protected JTextField mNameField=null, mDescField=null, mConfigField=null; + protected JLabel mNameLabel=null, mDescLabel = null, mConfigLabel =null; + protected JTable mTable = null; + private String mParamId = null, mInputId = null; + private String mScope = null; + private boolean mIsNew = true; + + /*========================================================== + * constructors + *==========================================================*/ + public ProfileNonPolicyNewDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest, String scope, boolean new1) { + + super(parent, dest); + + PREFIX = "PROFILEREGISTRYNEWDIALOG"; + mHelpToken = "configuration-certificateprofiles"; + mImplName_token = Constants.PR_POLICY_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_POLICY; + mIsNew = new1; + mScope = scope; + + init(nvp,parent,conn,dest); + setSize(500, 415); + } + + + protected JPanel makeContentPane() { + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + // 'Policy Rule ID' here + CMSAdminUtil.resetGBC(gbc); + mRulenameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "RULENAME", null); + mRulenameCaption.addMouseListener(this); + mPluginLabel = new JLabel(); + mPluginLabel.setVisible(false); + mPluginName = new JTextField(); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add(mRulenameCaption, gbc); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + 0,CMSAdminUtil.COMPONENT_SPACE); + mListPanel.add( mPluginName, gbc ); + // mListPanel.add( mPluginLabel, gbc ); + + // name + CMSAdminUtil.resetGBC(gbc); + mNameLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "NAMENAME", null); + mNameLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + // mListPanel.add( mNameLabel, gbc ); + mNameLabel.setBackground(getBackground()); + mNameLabel.setEnabled(false); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mNameField = new JTextField(); + // mListPanel.add( mNameField, gbc ); + + // desc + CMSAdminUtil.resetGBC(gbc); + mDescLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "DESCNAME", null); + // mDescLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mDescLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mDescField = new JTextField(); + mListPanel.add( mDescField, gbc ); + + // config file +/* + CMSAdminUtil.resetGBC(gbc); + mConfigLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "CONFIGNAME", null); + mConfigLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + // mListPanel.add( mConfigLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mConfigField = new JTextField(); + // mListPanel.add( mConfigField, gbc ); +*/ + + + // 'Policy Plugin ID' here + CMSAdminUtil.resetGBC(gbc); + mImplnameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "IMPLNAME", null); + mImplnameCaption.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + // mListPanel.add( mImplnameCaption, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mImplName = new JLabel(); +// mListPanel.add( mImplName, gbc ); + + JPanel lpanel1 = createListPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(lpanel1, gbc); + mListPanel.add(lpanel1); + + /* Panel in which to put plugin's help text */ + mHelpPanel = new JPanel(); + mHelpPanel.setBorder(CMSAdminUtil.makeEtchedBorder()); + mHelpLabel = new JTextArea(3,0); + mHelpLabel.setLineWrap(true); + mHelpLabel.setWrapStyleWord(true); + mHelpLabel.setBackground(mHelpPanel.getBackground()); + mHelpLabel.setEditable(false); + GridBagLayout gb2 = new GridBagLayout(); + GridBagConstraints gbc2 = new GridBagConstraints(); + + CMSAdminUtil.resetGBC(gbc2); + gbc2.fill = gbc.BOTH; + gbc2.anchor = gbc.WEST; + gbc2.gridwidth = gbc.REMAINDER; + gbc2.weightx = 1.0; + gbc2.weighty = 1.0; + gb2.setConstraints(mHelpLabel, gbc2); + mHelpPanel.setLayout(gb2); + mHelpPanel.add(mHelpLabel); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.SOUTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gb.setConstraints(mHelpPanel, gbc); + mListPanel.add(mHelpPanel); + + return mListPanel; + } + + public JPanel createListPanel() + { + Vector colNames = new Vector(); + colNames.addElement("Parameter"); + colNames.addElement("Value"); + Vector data = new Vector(); + Vector row = new Vector(); + row.addElement("x"); + row.addElement("x"); + data.addElement(row); + + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + ProfilePolicyEditDataModel model = new ProfilePolicyEditDataModel(); + model.setInfo(data, colNames); + mTable = new JTable(model); + JScrollPane mScrollPane = JTable.createScrollPaneForTable(mTable); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + // mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); +// setLabelCellRenderer(mTable,0); +setLabelCellEditor(mTable, 1); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + // gbc.gridwidth = 1; + // gbc.weightx = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + return mListPanel; + } + + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + + if (evt.getSource().equals(mOK)) { + + try { + if (mModel != null) { + mModel.progressStart(); + } + + NameValuePairs nvp = new NameValuePairs(); + String instanceName = mPluginName.getText(); + + String id = mDescField.getText(); + if (id == null || id.trim().equals("")) { + String msg = mResource.getString( + PREFIX+"_DIALOG_BLANKPOLICYID_MESSAGE"); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + msg ,CMSAdminUtil.ERROR_MESSAGE); + return; + } + + for (int i = 0; i < mTable.getRowCount(); i++) { + nvp.put((String) mTable.getValueAt(i, 0), + (String) mTable.getValueAt(i, 1)); + } + + if (mIsNew) { + String name = instanceName + ";" + id + ";" + mParamId; + // mAdminConnection.add(DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.add(mDest, + mScope, name, nvp); + //ScopeDef.SC_PROFILE_INPUT, name, nvp); + } else { + String name = instanceName + ";" + id; + //mAdminConnection.modify(DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.modify(mDest, + mScope, name, nvp); + //ScopeDef.SC_PROFILE_INPUT_CONFIG, name, nvp); + } + + mIsOK = true; + if (mModel != null) { + mModel.progressStop(); + } + + this.dispose(); + } + catch (EAdminException ex) { + mModel.progressStop(); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + ex.toString(),CMSAdminUtil.ERROR_MESSAGE); + } + } + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + + } + + public void showDialog(NameValuePairs data, String profileId, String paramId) { + + if (mIsNew) + mParamId = paramId; + else { + mInputId = paramId; + mDescField.setText(paramId); + mDescField.setBackground(getBackground()); + mDescField.setEnabled(false); + } + + mModel.progressStart(); + + // retrieve profile information + NameValuePairs response = null; + NameValuePairs request = new NameValuePairs(); + try { + if (mIsNew) + response = mAdminConnection.read(DestDef.DEST_REGISTRY_ADMIN, + //ScopeDef.SC_PROFILE_INPUT, + mScope, paramId, request); + else + // response = mAdminConnection.read(DestDef.DEST_CA_PROFILE_ADMIN, + response = mAdminConnection.read(mDest, + //ScopeDef.SC_PROFILE_INPUT_CONFIG, + mScope, profileId+";"+mInputId, request); + } catch (EAdminException e) { +// CMSAdminUtil.showErrorDialog(mParentFrame, mResource, e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + + Vector defcolNames = new Vector(); + defcolNames.addElement("Parameter"); + defcolNames.addElement("Value"); + Vector defdata = new Vector(); + + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + Debug.println("entry= " + entry); + Debug.println("value= " + value); + + int start_pos = value.indexOf(';'); + int end_pos = value.lastIndexOf(';'); + String syntax = null; + String syntaxVal = null; + String val = null; + + syntax = value.substring(0,start_pos); + syntaxVal = value.substring(start_pos+1, end_pos); + val = value.substring(end_pos+1); + + Vector row = new Vector(); + row.addElement(entry); + row.addElement(val); + defdata.addElement(row); + } + ProfilePolicyEditDataModel model = new ProfilePolicyEditDataModel(); + model.setInfo(defdata, defcolNames); + mTable.setModel(model); + + if (response != null) { + mPluginName.setText(profileId); + mPluginName.setBackground(getBackground()); + mPluginName.setEnabled(false); + mNameField.setText(response.get("name")); + if (mIsNew) + mDescField.setText(response.get("desc")); + } + + this.show(); + } + + protected void setLabelCellEditor(JTable table, int index) { +/* + table.getColumnModel().getColumn(index).setCellRenderer( + new PasswordCellRenderer()); +*/ + table.getColumnModel().getColumn(index).setCellEditor( + new DefaultCellEditor(new JTextField())); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicySelDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicySelDialog.java new file mode 100644 index 000000000..8d97ffd13 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicySelDialog.java @@ -0,0 +1,386 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Plugin Selection Dialog + * + * @author Jack Pan-chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileNonPolicySelDialog extends JDialog + implements ActionListener, MouseListener +{ + /*========================================================== + * variables + *==========================================================*/ + protected JFrame mParentFrame; + protected AdminConnection mConnection; + protected ResourceBundle mResource; + protected DefaultListModel mListModel; + protected Hashtable mListData; + protected String mDestination; //dest flag + + private JScrollPane mScrollPane; + protected JList mList; + + protected JLabel mLabel; + protected JButton mOK, mCancel, mHelp; + protected String mPrefix; + protected String mScope; + protected String mInstanceScope; + protected String mProfileId; + protected String mHelpToken; + protected String mExtraDestination; + protected CMSPluginInstanceTab mPluginInstanceDialog; + protected CMSBaseResourceModel mModel=null; + + + public ProfileNonPolicySelDialog ( + String profileId, + String prefix, + JFrame parent, + AdminConnection conn, + String dest, String scope) + { + this(profileId, prefix, parent, conn, dest, null, scope, null); + } + + public ProfileNonPolicySelDialog ( + String profileId, + String prefix, + JFrame parent, + AdminConnection conn, + String dest, String extraDest, String scope) + { + this( profileId, prefix, + parent, + conn, + dest, extraDest, scope, + null ); + } + + public ProfileNonPolicySelDialog( + String profileId, + String prefix, + JFrame parent, + AdminConnection conn, + String dest, String scope, + CMSPluginInstanceTab pluginType) + { + this(profileId, prefix, parent, conn, dest, null, scope, pluginType); + } + + /*========================================================== + * constructors + *==========================================================*/ + public ProfileNonPolicySelDialog( + String profileId, + String prefix, + JFrame parent, + AdminConnection conn, + String dest, String extraDest, String scope, + CMSPluginInstanceTab pluginType) + { + super(parent,true); + mProfileId = profileId; + mParentFrame = parent; + mConnection = conn; + mDestination = dest; + mExtraDestination = extraDest; + mScope = scope; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mListModel = new DefaultListModel(); + mListData = new Hashtable(); + mPrefix = prefix; + mPluginInstanceDialog = pluginType; + + setTitle(mResource.getString(mPrefix+"_TITLE")); + setSize(400, 230); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + } + + /*========================================================== + * public methods + *==========================================================*/ + + public void setModel(CMSBaseResourceModel model) + { + mModel = model; + } + + /** + * show the windows + * @param users list of current groups + */ + public void showDialog() { + + mListModel.clear(); + + if(!update()) + return; + this.show(); + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mOK)) { + + // check selection lists + if (mList.getSelectedIndex() < 0) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, "Must select default", CMSAdminUtil.ERROR_MESSAGE); + } + + NameValuePairs response = null; + + String scope = ""; + if (mPrefix.equals("PROFILEINPUTSELDIALOG")) { + scope = ScopeDef.SC_PROFILE_INPUT; + } else if (mPrefix.equals("PROFILEOUTPUTSELDIALOG")) { + scope = ScopeDef.SC_PROFILE_OUTPUT; + } + + ProfileNonPolicyNewDialog dialog = + new ProfileNonPolicyNewDialog( + response, + mParentFrame, + mConnection, + mExtraDestination, scope, true); + + dialog.setModel(mModel); + + String name = ((JLabel)mListModel.elementAt(mList.getSelectedIndex())).getText(); + + dialog.showDialog(response, mProfileId, getID(name)); + + if(!dialog.isOK()) { + this.dispose(); + return; + } + + //response = dialog.getData(); + // String name = dialog.getRuleName(); + + // Debug.println(response.toString()); + + dialog.dispose(); + this.dispose(); + } + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setArrowButtons(); + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) { + setArrowButtons(); + } + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) { + setArrowButtons(); + } + + protected void setDisplay() { + Debug.println("*** PluginSelectionDialog.setDisplay() - 1"); + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + JPanel content = makeContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(content, gbc); + center.add(content); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + //create botton action panel + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, mPrefix, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, mPrefix, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, mPrefix, "HELP", null, this); + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + private JPanel makeContentPane() { + Debug.println("*** PluginSelectionDialog.makeContentPane() - 0"); + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + Debug.println("*** PluginSelectionDialog.makeContentPane() - 1"); + mListPanel.setLayout(gb); + //content.setBorder(CMSAdminUtil.makeEtchedBorder()); + + JLabel label = CMSAdminUtil.makeJLabel(mResource, mPrefix, + "SELECT", null); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.fill = gbc.HORIZONTAL; + gb.setConstraints(label, gbc); + mListPanel.add(label); + + Debug.println("*** PluginSelectionDialog.makeContentPane() - 2"); + mList = CMSAdminUtil.makeJList(mListModel,9); + mScrollPane = new JScrollPane(mList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION ); + mList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + return mListPanel; + } + + //set arrow buttons + private void setArrowButtons() { + + if (mList.getSelectedIndex()< 0) { + mOK.setEnabled(false); + return; + } + + mOK.setEnabled(true); + } + + //refresh the table content + private void refresh() { + //mScrollPane.invalidate(); + //mScrollPane.validate(); + //repaint(); + } + + //================================================= + // RETRIEVE INFO FROM SERVER SIDE + //================================================= + + //save order information to the server + protected boolean update() { + + NameValuePairs response; + NameValuePairs params = new NameValuePairs(); + try { + response = mConnection.search(mDestination, mScope, + params); + } catch (EAdminException e) { + //display error dialog + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return false; + } + + Debug.println(response.toString()); + + //parse the data + String[] vals = new String[response.size()]; + int i=0; + for (String name : response.keySet()) { + name = name.trim(); + String val = response.get(name); + StringTokenizer st = new StringTokenizer(val, ","); + String className = st.nextToken(); + String desc = st.nextToken(); + String friendlyName = st.nextToken(); + vals[i++] = friendlyName.trim(); + mListData.put(name, friendlyName); + // vals[i++] = ((String)e.nextElement()).trim(); + Debug.println("PluginSelectionDialog::update() - adding '"+vals[i-1]+"'"); + } + + CMSAdminUtil.bubbleSort(vals); + + for (int y=0; y< vals.length ; y++) { + try { + mListModel.addElement(new JLabel(vals[y], JLabel.LEFT)); + } catch (Exception ex) { + } + } + + return true; + } + + private String getID(String name) { + Enumeration keys = mListData.keys(); + while (keys.hasMoreElements()) { + String key = (String)keys.nextElement(); + String val = (String)mListData.get(key); + if (val.equals(name)) { + return key; + } + } + return ""; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfilePluginSelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ProfilePluginSelectionDialog.java new file mode 100644 index 000000000..ec3bb4c7c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfilePluginSelectionDialog.java @@ -0,0 +1,187 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import java.awt.event.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Plugin Selection Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfilePluginSelectionDialog extends PluginSelectionDialog +{ + /*========================================================== + * variables + *==========================================================*/ + private static final String PREFIX = "PROFILESELECTIONDIALOG"; + private static final String HELPINDEX = "configuration-certificateprofiles"; + + /*========================================================== + * constructors + *==========================================================*/ + public ProfilePluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + super(PREFIX, parent,conn, dest, pluginType); + mScope = ScopeDef.SC_PROFILE_IMPLS; + mInstanceScope = ScopeDef.SC_PROFILE_RULES; + mImageName = CMSAdminResources.IMAGE_RULE_PLUGIN; + mHelpToken = HELPINDEX; + mDataModel = new ProfileListDataModel(); + setDisplay(); + } + + public ProfilePluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, String extraDest, + CMSPluginInstanceTab pluginType) + { + super(PREFIX, parent,conn, dest, extraDest, pluginType); + mScope = ScopeDef.SC_PROFILE_IMPLS; + mInstanceScope = ScopeDef.SC_PROFILE_RULES; + mImageName = CMSAdminResources.IMAGE_RULE_PLUGIN; + mHelpToken = HELPINDEX; + mDataModel = new ProfileListDataModel(); + setDisplay(); + } + + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mOK)) { + NameValuePairs response; + try { + response = getDefaultConfig(); + } catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + Debug.println(response.toString()); + String id =(String)(((ProfileListDataModel)mDataModel).getObjectValueAt(mList.getSelectedIndex())); + response.put(Constants.PR_POLICY_IMPL_NAME, id); + + CMSBaseConfigDialog dialog = null; + if (mExtraDestination == null) { + dialog = mPluginInstanceDialog.makeNewConfigDialog( + response, mParentFrame, mConnection, mDestination); + } else { + dialog = mPluginInstanceDialog.makeNewConfigDialog( + response, mParentFrame, mConnection, mExtraDestination); + } + + dialog.setModel(mModel); + dialog.setInstanceScope(mInstanceScope); + + dialog.showDialog(response,""); + + if(!dialog.isOK()) { + this.dispose(); + return; + } + + response = dialog.getData(); + String name = dialog.getRuleName(); + + Debug.println(response.toString()); + + dialog.dispose(); + this.dispose(); + } + + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + } + + //this returns the default configuration + protected NameValuePairs getDefaultConfig() throws EAdminException { + String id = (String)(((ProfileListDataModel)mDataModel).getObjectValueAt(mList.getSelectedIndex())); + NameValuePairs response; + response = mConnection.read(mDestination, mScope, id, + new NameValuePairs()); + + Debug.println(response.toString()); + + return response; + } + + //save order information to the server + protected boolean update() { + + NameValuePairs response; + try { + response = mConnection.search(mDestination, mScope, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return false; + } + + Debug.println(response.toString()); + + //parse the data + String[] classnames = new String[response.size()]; + String[] ids = new String[response.size()]; + int i=0; + for (String id : response.keySet()) { + String value = response.get(id); + int pos = value.lastIndexOf(","); + String className = value.substring(pos+1); + + classnames[i] = className; + ids[i++] = id; + Debug.println("PluginSelectionDialog::update() - adding '"+classnames[i-1]+"'"); + } + + CMSAdminUtil.bubbleSort(classnames, ids); + + for (int y=0; y< classnames.length ; y++) { + try { + ((ProfileListDataModel)mDataModel).addElement(new JLabel(classnames[y], + CMSAdminUtil.getImage(mImageName), JLabel.LEFT), ids[y]); + } + catch (Exception ex) { + Debug.println("PluginSelectionDialog could not get image for '"+ + mImageName+"'. Adding without image"); + ((ProfileListDataModel)mDataModel).addElement(new JLabel(classnames[y], + JLabel.LEFT), ids[y]); + } + } + + return true; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDataModel.java new file mode 100644 index 000000000..7b306d1da --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDataModel.java @@ -0,0 +1,85 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfilePolicyEditDataModel extends AbstractTableModel +{ + Vector rowData; + Vector columnNames; + + public ProfilePolicyEditDataModel() + { + } + + public void setInfo(Vector _rowData, Vector _columnNames) + { + rowData = _rowData; + columnNames = _columnNames; + } + + public String getColumnName(int column) + { + return columnNames.elementAt(column).toString(); + } + public int getRowCount() + { + return rowData.size(); + } + public int getColumnCount() + { + return columnNames.size(); + } + + public Object getValueAt(int row, int column) + { + return ((Vector)rowData.elementAt(row)).elementAt(column); + } + + public boolean isCellEditable(int row, int column) + { + if (column == 1) + return true; + return false; + } + + public void setValueAt(Object value, int row, int column) + { + ((Vector)rowData.elementAt(row)).setElementAt(value, column); + fireTableCellUpdated(row, column); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDialog.java new file mode 100644 index 000000000..34b95c0f1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDialog.java @@ -0,0 +1,698 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.table.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfilePolicyEditDialog extends CMSBaseConfigDialog + implements ActionListener, FocusListener +{ + protected JButton mRefresh, mEdit, mAdd, mDelete, mOrder, mHelp; + protected JTextField mNameField=null, mIdField=null, mDescField=null, mConfigField=null; + protected JLabel mNameLabel=null, mIdLabel=null, mDescLabel = null, mConfigLabel =null; + protected JTable mConstraintTable = null; + protected ProfileDataTable mDefaultTable = null; + protected Hashtable mHelpDesc = new Hashtable(); + + /*========================================================== + * constructors + *==========================================================*/ + public ProfilePolicyEditDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + + PREFIX = "PROFILEEDITDIALOG"; + mHelpToken = "configuration-certificateprofiles"; + mImplName_token = Constants.PR_POLICY_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_POLICY; + init(nvp,parent,conn,dest); + setSize(500, 415); + } + + + protected JPanel makeContentPane() { + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + // 'Policy Rule ID' here + CMSAdminUtil.resetGBC(gbc); + mRulenameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "RULENAME", null); + mRulenameCaption.addMouseListener(this); + mPluginLabel = new JLabel(); + mPluginLabel.setVisible(false); + mPluginName = new JTextField(); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add(mRulenameCaption, gbc); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + 0,CMSAdminUtil.COMPONENT_SPACE); + mListPanel.add( mPluginName, gbc ); + // mListPanel.add( mPluginLabel, gbc ); + + // name + CMSAdminUtil.resetGBC(gbc); + mNameLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "NAMENAME", null); + mNameLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + // mListPanel.add( mNameLabel, gbc ); + mNameLabel.setBackground(getBackground()); + mNameLabel.setEnabled(false); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mNameField = new JTextField(); + // mListPanel.add( mNameField, gbc ); + + // desc + CMSAdminUtil.resetGBC(gbc); + mDescLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "DESCNAME", null); + // mDescLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mDescLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mDescField = new JTextField(); + mListPanel.add( mDescField, gbc ); + + CMSAdminUtil.resetGBC(gbc); + mIdLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "IDNAME", null); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mIdLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mIdField = new JTextField(); + mListPanel.add( mIdField, gbc ); + + // config file +/* + CMSAdminUtil.resetGBC(gbc); + mConfigLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "CONFIGNAME", null); + mConfigLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + // mListPanel.add( mConfigLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mConfigField = new JTextField(); + // mListPanel.add( mConfigField, gbc ); +*/ + + + // 'Policy Plugin ID' here + CMSAdminUtil.resetGBC(gbc); + mImplnameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "IMPLNAME", null); + mImplnameCaption.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + // mListPanel.add( mImplnameCaption, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mImplName = new JLabel(); +// mListPanel.add( mImplName, gbc ); + + /* Tab */ + JTabbedPane tabPane = new JTabbedPane(); + JPanel lpanel1 = createDefaultListPanel(); + JPanel lpanel2 = createConstraintListPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(tabPane, gbc); + tabPane.addTab("Default", lpanel1); + tabPane.addTab("Constraint", lpanel2); + mListPanel.add(tabPane); + + /* Panel for list of plugin's parameters */ + mParamPanel = new JPanel(); +/* + mScrollPane = new JScrollPane(mParamPanel); + mScrollPane.setBorder(CMSAdminUtil.makeEtchedBorder()); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); +*/ + + /* Panel in which to put plugin's help text */ + mHelpPanel = new JPanel(); + mHelpPanel.setBorder(CMSAdminUtil.makeEtchedBorder()); + mHelpLabel = new JTextArea(3,0); + mHelpLabel.setLineWrap(true); + mHelpLabel.setWrapStyleWord(true); + mHelpLabel.setBackground(mHelpPanel.getBackground()); + mHelpLabel.setEditable(false); + GridBagLayout gb2 = new GridBagLayout(); + GridBagConstraints gbc2 = new GridBagConstraints(); + + CMSAdminUtil.resetGBC(gbc2); + gbc2.fill = gbc.BOTH; + gbc2.anchor = gbc.WEST; + gbc2.gridwidth = gbc.REMAINDER; + gbc2.weightx = 1.0; + gbc2.weighty = 1.0; + gb2.setConstraints(mHelpLabel, gbc2); + mHelpPanel.setLayout(gb2); + mHelpPanel.add(mHelpLabel); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.SOUTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gb.setConstraints(mHelpPanel, gbc); + mListPanel.add(mHelpPanel); + + return mListPanel; + } + + public JPanel createDefaultListPanel() + { + Vector colNames = new Vector(); + colNames.addElement("Parameter"); + colNames.addElement("Value"); + Vector data = new Vector(); + Vector row = new Vector(); + row.addElement("x"); + row.addElement("x"); + data.addElement(row); + + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + ProfilePolicyEditDataModel model = new ProfilePolicyEditDataModel(); + model.setInfo(data, colNames); + mDefaultTable = new ProfileDataTable(model); + JScrollPane mScrollPane = JTable.createScrollPaneForTable(mDefaultTable); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mDefaultTable.setAutoscrolls(true); + mDefaultTable.sizeColumnsToFit(true); + mDefaultTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + // mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mDefaultTable.addMouseListener(this); +// setLabelCellRenderer(mDefaultTable,1); +//setLabelCellEditor(mDefaultTable, 1); + mDefaultTable.setDefaultRenderer(JComponent.class, new JComponentCellRenderer()); + mDefaultTable.setDefaultEditor(JComponent.class, + new ProfileComponentCellEditor()); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + // gbc.gridwidth = 1; + // gbc.weightx = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + +/* + JPanel buttonPanel = createUserButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); +*/ + + return mListPanel; + } + + public JPanel createConstraintListPanel() + { + Vector colNames = new Vector(); + colNames.addElement("Parameter"); + colNames.addElement("Value"); + Vector data = new Vector(); + Vector row = new Vector(); + row.addElement("x"); + row.addElement("x"); + data.addElement(row); + + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + ProfilePolicyEditDataModel model = new ProfilePolicyEditDataModel(); + model.setInfo(data, colNames); + mConstraintTable = new ProfileDataTable(model); + JScrollPane mScrollPane = JTable.createScrollPaneForTable(mConstraintTable); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mConstraintTable.setAutoscrolls(true); + mConstraintTable.sizeColumnsToFit(true); + mConstraintTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + // mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mConstraintTable.addMouseListener(this); +// setLabelCellRenderer(mConstraintTable,0); + mConstraintTable.setDefaultRenderer(JComponent.class, new JComponentCellRenderer()); + mConstraintTable.setDefaultEditor(JComponent.class, + new ProfileComponentCellEditor()); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + // gbc.gridwidth = 1; + // gbc.weightx = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + +/* + JPanel buttonPanel = createUserButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); +*/ + + return mListPanel; + } + + protected JPanel createUserButtonPanel() { + Debug.println("CMSPluginInstanceTab::createUserButtonPanel()"); + //edit, add, delete, help buttons required + //actionlister to this object + mEdit = CMSAdminUtil.makeJButton(mResource, PREFIX, "EDIT", null, this); + mAdd = CMSAdminUtil.makeJButton(mResource, PREFIX, "ADD", null, this); + mDelete = CMSAdminUtil.makeJButton(mResource, PREFIX, "DELETE", null, this); + JButton[] buttons = {mAdd, mDelete, mEdit}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + public void actionPerformed(ActionEvent evt) { + if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + + if (evt.getSource().equals(mAdd)) { +/* + Debug.println("Add"); + PluginSelectionDialog dialog = + getPluginSelectionDialog( + mModel.getFrame(), + mConnection, + mDestination, + this + ); + + dialog.setModel(mModel); + dialog.showDialog(); + refresh(); +*/ + } + if (evt.getSource().equals(mDelete)) { + } + if (evt.getSource().equals(mEdit)) { + } + + if (evt.getSource().equals(mOK)) { + + try { + if (mModel != null) { mModel.progressStart(); } + + NameValuePairs nvp = new NameValuePairs(); + String instanceName = mPluginName.getText(); + + String policyId = mDescField.getText() + ":" + mIdField.getText(); + String name = instanceName + ";" + policyId; + +/* + nvp.add("impl", mImplName.getText()); + nvp.add("name", mNameField.getText()); + nvp.add("desc", mDescField.getText()); + nvp.add("config", mConfigField.getText()); +*/ + + for (int i = 0; i < mDefaultTable.getRowCount(); i++) { + JComponent comp = (JComponent)mDefaultTable.getValueAt(i,1); + String val = null; + if (comp instanceof JTextField) { + val = ((JTextField)comp).getText().trim(); + } else if (comp instanceof JComboBox) { + val = (String)(((JComboBox)comp).getSelectedItem()); + } + String name1 = ((JLabel)(mDefaultTable.getValueAt(i,0))).getText(); + nvp.put(name1, val); + } + + + //mAdminConnection.modify(DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.modify(mDest, + ScopeDef.SC_PROFILE_DEFAULT_POLICY, name, nvp); + + mIsOK = true; + if (mModel != null) { mModel.progressStop(); } + + nvp = new NameValuePairs(); + for (int i = 0; i < mConstraintTable.getRowCount(); i++) { + + JComponent comp = (JComponent)mConstraintTable.getValueAt(i,1); + String val = null; + if (comp instanceof JTextField) { + val = ((JTextField)comp).getText().trim(); + } else if (comp instanceof JComboBox) { + val = (String)(((JComboBox)comp).getSelectedItem()); + } + + String name1 = ((JLabel)(mConstraintTable.getValueAt(i,0))).getText(); + nvp.put(name1, val); + } + instanceName = mPluginName.getText(); +//DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.modify(mDest, + ScopeDef.SC_PROFILE_CONSTRAINT_POLICY, name, nvp); + + this.dispose(); + } + catch (EAdminException ex) { + mModel.progressStop(); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + ex.toString(),CMSAdminUtil.ERROR_MESSAGE); + } + } + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + + } + + private String getHelpDescription(String value) { + int start_pos = value.indexOf(';'); + int end_pos = value.lastIndexOf(';'); + int end1_pos = value.lastIndexOf(';',end_pos-1); + String syntax = null; + String syntaxVal = null; + String v = null; + syntax = value.substring(0,start_pos); + syntaxVal = value.substring(start_pos+1, end_pos); + v = value.substring(end1_pos+1,end_pos); + return v; + } + + private Object getComponent(String value) { + int start_pos = value.indexOf(';'); + int end_pos = value.lastIndexOf(';'); + int end1_pos = value.lastIndexOf(';',end_pos-1); + String syntax = null; + String syntaxVal = null; + String v = null; + + syntax = value.substring(0,start_pos); + syntaxVal = value.substring(start_pos+1, end1_pos); + v = value.substring(end_pos+1); +/* + StringTokenizer st = new StringTokenizer(value, ";"); + while (st.hasMoreTokens()) { + try { + syntax = st.nextToken(); + syntaxVal = st.nextToken(); + v = st.nextToken(); + } catch (Exception e) { + } + } +*/ + + if (syntax != null) { + return CMSAdminUtil.createTableCell(syntax, syntaxVal, v); + } + + return null; + } + + public void showDialog(NameValuePairs data, String name) { + + mHelpDesc.clear(); + + mModel.progressStart(); + + StringTokenizer st = new StringTokenizer(name, ";"); + String profileId = st.nextToken(); + String policyId = st.nextToken(); + StringTokenizer st1 = new StringTokenizer(policyId, ":"); + String setid = st1.nextToken(); + String pid = st1.nextToken(); + + // retrieve profile information + NameValuePairs response = null; + NameValuePairs request = new NameValuePairs(); + try { + //response = mAdminConnection.read(DestDef.DEST_CA_PROFILE_ADMIN, + response = mAdminConnection.read(mDest, + ScopeDef.SC_PROFILE_DEFAULT_POLICY, + name, request); + } catch (EAdminException e) { +// CMSAdminUtil.showErrorDialog(mParentFrame, mResource, e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + + Vector defcolNames = new Vector(); + defcolNames.addElement("Parameter"); + defcolNames.addElement("Value"); + Vector defdata = new Vector(); + + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + Debug.println("ProfilePolicyEditDialog entry= "+entry); + Debug.println("ProfilePolicyEditDialog value= "+value); + + Object obj = getComponent(value); + Vector row = new Vector(); + JLabel label = new JLabel(entry); + ((Component)obj).addFocusListener(this); + mHelpDesc.put(obj, getHelpDescription(value)); + row.addElement(label); + row.addElement(obj); + defdata.addElement(row); + } + ProfilePolicyEditDataModel defmodel = new ProfilePolicyEditDataModel(); + defmodel.setInfo(defdata, defcolNames); + mDefaultTable.setModel(defmodel); + + if (response != null) { + mPluginName.setText(profileId); + mPluginName.setBackground(getBackground()); + mPluginName.setEnabled(false); + mNameField.setText(response.get("name")); + mDescField.setText(setid); + mDescField.setBackground(getBackground()); + mDescField.setEnabled(false); + mIdField.setText(pid); + mIdField.setBackground(getBackground()); + mIdField.setEnabled(false); + } + + // retrieve policy information + mModel.progressStart(); + try { + //response = mAdminConnection.read(DestDef.DEST_CA_PROFILE_ADMIN, + response = mAdminConnection.read(mDest, + ScopeDef.SC_PROFILE_CONSTRAINT_POLICY, + name, + request); + } catch (EAdminException e) { +// CMSAdminUtil.showErrorDialog(mParentFrame, mResource, e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + + Vector colNames = new Vector(); + colNames.addElement("Parameter"); + colNames.addElement("Value"); + Vector d = new Vector(); + + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + Debug.println("entry= "+entry); + Debug.println("value= "+value); + + Object obj = getComponent(value); + Vector row = new Vector(); + JLabel label = new JLabel(entry); + ((Component)obj).addFocusListener(this); + mHelpDesc.put(obj, getHelpDescription(value)); + row.addElement(label); + row.addElement(obj); + d.addElement(row); + } + ProfilePolicyEditDataModel model = new ProfilePolicyEditDataModel(); + model.setInfo(d, colNames); + mConstraintTable.setModel(model); + + this.show(); + } + + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new DefaultTableCellRenderer()); + } + + protected void setLabelCellEditor(JTable table, int index) { +/* + table.getColumnModel().getColumn(index).setCellRenderer( + new PasswordCellRenderer()); +*/ + table.getColumnModel().getColumn(index).setCellEditor( + new DefaultCellEditor(new JTextField())); + } + + class JComponentCellRenderer implements TableCellRenderer { + public Component getTableCellRendererComponent(JTable table, + Object value, boolean isSelected, boolean hasFocus, int row, + int column) { + return (JComponent)value; + } + } + + /** + * From focuslistener interface. This lets us know when a component + * has received focus, so we can update the help text. + */ + public void focusGained(FocusEvent f) { + Debug.println("focusGained"); + Component comp = f.getComponent(); + String desc = (String)mHelpDesc.get(comp); + if (desc != null) { + mHelpLabel.setText(desc); + } + } + + /** need to supply this method for focuslistener, but we + * really don't care about it + */ + public void focusLost(FocusEvent f) { + Debug.println("focusLost"); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyNewDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyNewDialog.java new file mode 100644 index 000000000..941917808 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyNewDialog.java @@ -0,0 +1,714 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.table.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfilePolicyNewDialog extends CMSBaseConfigDialog + implements ActionListener, FocusListener +{ + protected JButton mRefresh, mEdit, mAdd, mDelete, mOrder, mHelp; + protected JTextField mNameField=null, mIdField=null, mDescField=null, mConfigField=null; + protected JLabel mNameLabel=null, mIdLabel=null, mDescLabel = null, mConfigLabel =null; + protected JTable mDefaultTable = null, mConstraintTable = null; + + private String mConstraintId = null, mDefaultId = null; + + public String mDefSetId = null; + protected Hashtable mHelpDesc = new Hashtable(); + + /*========================================================== + * constructors + *==========================================================*/ + public ProfilePolicyNewDialog(String defSetId, NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + + mDefSetId = defSetId; + PREFIX = "PROFILENEWDIALOG"; + mHelpToken = "configuration-certificateprofiles"; + mImplName_token = Constants.PR_POLICY_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_POLICY; + + init(nvp,parent,conn,dest); + setSize(500, 415); + } + + + protected JPanel makeContentPane() { + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + // 'Policy Rule ID' here + CMSAdminUtil.resetGBC(gbc); + mRulenameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "RULENAME", null); + mRulenameCaption.addMouseListener(this); + mPluginLabel = new JLabel(); + mPluginLabel.setVisible(false); + mPluginName = new JTextField(); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add(mRulenameCaption, gbc); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + 0,CMSAdminUtil.COMPONENT_SPACE); + mListPanel.add( mPluginName, gbc ); + // mListPanel.add( mPluginLabel, gbc ); + + // name + CMSAdminUtil.resetGBC(gbc); + mNameLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "NAMENAME", null); + mNameLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + // mListPanel.add( mNameLabel, gbc ); + mNameLabel.setBackground(getBackground()); + mNameLabel.setEnabled(false); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mNameField = new JTextField(); + // mListPanel.add( mNameField, gbc ); + + // desc + CMSAdminUtil.resetGBC(gbc); + mDescLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "DESCNAME", null); + // mDescLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mDescLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mDescField = new JTextField(); + mListPanel.add( mDescField, gbc ); + + + CMSAdminUtil.resetGBC(gbc); + mIdLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "IDNAME", null); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + mListPanel.add( mIdLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mIdField = new JTextField(); + mListPanel.add( mIdField, gbc ); + + // config file +/* + CMSAdminUtil.resetGBC(gbc); + mConfigLabel = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "CONFIGNAME", null); + mConfigLabel.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + // mListPanel.add( mConfigLabel, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mConfigField = new JTextField(); + // mListPanel.add( mConfigField, gbc ); +*/ + + + // 'Policy Plugin ID' here + CMSAdminUtil.resetGBC(gbc); + mImplnameCaption = CMSAdminUtil.makeJLabel(mResource, PREFIX, + "IMPLNAME", null); + mImplnameCaption.addMouseListener(this); + + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.gridwidth = 1; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + // mListPanel.add( mImplnameCaption, gbc ); + + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + mImplName = new JLabel(); +// mListPanel.add( mImplName, gbc ); + + /* Tab */ + JTabbedPane tabPane = new JTabbedPane(); + JPanel lpanel1 = createDefaultListPanel(); + JPanel lpanel2 = createConstraintListPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(tabPane, gbc); + tabPane.addTab("Default", lpanel1); + tabPane.addTab("Constraint", lpanel2); + mListPanel.add(tabPane); + + /* Panel for list of plugin's parameters */ + mParamPanel = new JPanel(); +/* + mScrollPane = new JScrollPane(mParamPanel); + mScrollPane.setBorder(CMSAdminUtil.makeEtchedBorder()); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); +*/ + + /* Panel in which to put plugin's help text */ + mHelpPanel = new JPanel(); + mHelpPanel.setBorder(CMSAdminUtil.makeEtchedBorder()); + mHelpLabel = new JTextArea(3,0); + mHelpLabel.setLineWrap(true); + mHelpLabel.setWrapStyleWord(true); + mHelpLabel.setBackground(mHelpPanel.getBackground()); + mHelpLabel.setEditable(false); + GridBagLayout gb2 = new GridBagLayout(); + GridBagConstraints gbc2 = new GridBagConstraints(); + + CMSAdminUtil.resetGBC(gbc2); + gbc2.fill = gbc.BOTH; + gbc2.anchor = gbc.WEST; + gbc2.gridwidth = gbc.REMAINDER; + gbc2.weightx = 1.0; + gbc2.weighty = 1.0; + gb2.setConstraints(mHelpLabel, gbc2); + mHelpPanel.setLayout(gb2); + mHelpPanel.add(mHelpLabel); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.SOUTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gb.setConstraints(mHelpPanel, gbc); + mListPanel.add(mHelpPanel); + + return mListPanel; + } + + public JPanel createDefaultListPanel() + { + Vector colNames = new Vector(); + colNames.addElement("Parameter"); + colNames.addElement("Value"); + Vector data = new Vector(); + Vector row = new Vector(); + row.addElement("x"); + row.addElement("x"); + data.addElement(row); + + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + ProfilePolicyEditDataModel model = new ProfilePolicyEditDataModel(); + model.setInfo(data, colNames); + mDefaultTable = new ProfileDataTable(model); + JScrollPane mScrollPane = JTable.createScrollPaneForTable(mDefaultTable); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mDefaultTable.setAutoscrolls(true); + mDefaultTable.sizeColumnsToFit(true); + mDefaultTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + // mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mDefaultTable.addMouseListener(this); + mDefaultTable.setDefaultRenderer(JComponent.class, new JComponentCellRenderer()); + mDefaultTable.setDefaultEditor(JComponent.class, new ProfileComponentCellEditor()); + + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + // gbc.gridwidth = 1; + // gbc.weightx = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + +/* + JPanel buttonPanel = createUserButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); +*/ + + return mListPanel; + } + + public JPanel createConstraintListPanel() + { + Vector colNames = new Vector(); + colNames.addElement("Parameter"); + colNames.addElement("Value"); + Vector data = new Vector(); + Vector row = new Vector(); + row.addElement("x"); + row.addElement("x"); + data.addElement(row); + + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + ProfilePolicyEditDataModel model = new ProfilePolicyEditDataModel(); + model.setInfo(data, colNames); + mConstraintTable = new ProfileDataTable(model); + JScrollPane mScrollPane = JTable.createScrollPaneForTable(mConstraintTable); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mConstraintTable.setAutoscrolls(true); + mConstraintTable.sizeColumnsToFit(true); + mConstraintTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + // mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mConstraintTable.addMouseListener(this); + mConstraintTable.setDefaultRenderer(JComponent.class, new JComponentCellRenderer()); + mConstraintTable.setDefaultEditor(JComponent.class, new ProfileComponentCellEditor()); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + // gbc.gridwidth = 1; + // gbc.weightx = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + +/* + JPanel buttonPanel = createUserButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); +*/ + + return mListPanel; + } + + protected JPanel createUserButtonPanel() { + Debug.println("CMSPluginInstanceTab::createUserButtonPanel()"); + //edit, add, delete, help buttons required + //actionlister to this object + mEdit = CMSAdminUtil.makeJButton(mResource, PREFIX, "EDIT", null, this); + mAdd = CMSAdminUtil.makeJButton(mResource, PREFIX, "ADD", null, this); + mDelete = CMSAdminUtil.makeJButton(mResource, PREFIX, "DELETE", null, this); + JButton[] buttons = {mAdd, mDelete, mEdit}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + if (evt.getSource().equals(mAdd)) { +/* + Debug.println("Add"); + PluginSelectionDialog dialog = + getPluginSelectionDialog( + mModel.getFrame(), + mConnection, + mDestination, + this + ); + + dialog.setModel(mModel); + dialog.showDialog(); + refresh(); +*/ + } + if (evt.getSource().equals(mDelete)) { + } + if (evt.getSource().equals(mEdit)) { + } + + if (evt.getSource().equals(mOK)) { + try { + String policySetStr = mDescField.getText().trim(); + String policyIDStr = mIdField.getText().trim(); + if (policySetStr == null || policySetStr.length() == 0) { + String msg = mResource.getString( + PREFIX+"_DIALOG_BLANKPOLICYSET_MESSAGE"); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + msg ,CMSAdminUtil.ERROR_MESSAGE); + return; + } + if (policyIDStr == null || policyIDStr.length() == 0) { + String msg = mResource.getString( + PREFIX+"_DIALOG_BLANKPOLICYID_MESSAGE"); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + msg ,CMSAdminUtil.ERROR_MESSAGE); + return; + } + if (mModel != null) { mModel.progressStart(); } + + NameValuePairs nvp = new NameValuePairs(); + String instanceName = mPluginName.getText().trim(); + + // create policy + String policyId = policySetStr + ":" + policyIDStr; + String name = instanceName + ";" + policyId + ";" + mDefaultId + ";" + mConstraintId; + //mAdminConnection.add(DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.add(mDest, + ScopeDef.SC_PROFILE_POLICIES, name, nvp); + +/* + nvp.add("impl", mImplName.getText()); + nvp.add("name", mNameField.getText()); + nvp.add("desc", mDescField.getText()); + nvp.add("config", mConfigField.getText()); +*/ + + for (int i = 0; i < mDefaultTable.getRowCount(); i++) { + JComponent comp = (JComponent)mDefaultTable.getValueAt(i,1); + String val = null; + if (comp instanceof JTextField) { + val = ((JTextField)comp).getText().trim(); + } else if (comp instanceof JComboBox) { + val = (String)(((JComboBox)comp).getSelectedItem()); + } + String name1 = ((JLabel)(mDefaultTable.getValueAt(i,0))).getText(); + nvp.put(name1, val); + } + + + //mAdminConnection.add(DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.add(mDest, + ScopeDef.SC_PROFILE_DEFAULT_POLICY, name, nvp); + + mIsOK = true; + if (mModel != null) { mModel.progressStop(); } + + nvp = new NameValuePairs(); + for (int i = 0; i < mConstraintTable.getRowCount(); i++) { + JComponent comp = (JComponent)mConstraintTable.getValueAt(i,1); + String val = null; + if (comp instanceof JTextField) { + val = ((JTextField)comp).getText().trim(); + } else if (comp instanceof JComboBox) { + val = (String)(((JComboBox)comp).getSelectedItem()); + } + + String name1 = ((JLabel)(mConstraintTable.getValueAt(i,0))).getText(); + nvp.put(name1, val); + } + instanceName = mPluginName.getText(); + //mAdminConnection.add(DestDef.DEST_CA_PROFILE_ADMIN, + mAdminConnection.add(mDest, + ScopeDef.SC_PROFILE_CONSTRAINT_POLICY, name, nvp); + + this.dispose(); + } + catch (EAdminException ex) { + mModel.progressStop(); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + ex.toString(),CMSAdminUtil.ERROR_MESSAGE); + } + } + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + + } + + public void showDialog(NameValuePairs data, String name) { + + mModel.progressStart(); + + // name = profileId;defId;configid + StringTokenizer st = new StringTokenizer(name, ";"); + String profileId = st.nextToken(); + String defId = st.nextToken(); + String conId = st.nextToken(); + + mDefaultId = defId; + mConstraintId = conId; + + // retrieve profile information + NameValuePairs response = null; + NameValuePairs request = new NameValuePairs(); + try { + name = profileId + ";" + defId; + response = mAdminConnection.read(DestDef.DEST_REGISTRY_ADMIN, + ScopeDef.SC_PROFILE_DEFAULT_POLICY, + defId, request); + } catch (EAdminException e) { +// CMSAdminUtil.showErrorDialog(mParentFrame, mResource, e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + + Vector defcolNames = new Vector(); + defcolNames.addElement("Parameter"); + defcolNames.addElement("Value"); + Vector defdata = new Vector(); + + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + Debug.println("entry= "+entry); + Debug.println("value= "+value); + + Object obj = getComponent(value); + Vector row = new Vector(); + ((Component)obj).addFocusListener(this); + mHelpDesc.put(obj, getHelpDescription(value)); + row.addElement(new JLabel(entry)); + row.addElement(obj); + defdata.addElement(row); + } + ProfilePolicyEditDataModel defmodel = new ProfilePolicyEditDataModel(); + defmodel.setInfo(defdata, defcolNames); + mDefaultTable.setModel(defmodel); + + if (response != null) { + mPluginName.setText(profileId); + mPluginName.setBackground(getBackground()); + mPluginName.setEnabled(false); + mNameField.setText(response.get("name")); + mDescField.setText(response.get("desc")); + } + + // retrieve policy information + mModel.progressStart(); + try { + name = profileId + ";" + conId; + response = mAdminConnection.read(DestDef.DEST_REGISTRY_ADMIN, + ScopeDef.SC_PROFILE_CONSTRAINT_POLICY, + conId, + request); + } catch (EAdminException e) { +// CMSAdminUtil.showErrorDialog(mParentFrame, mResource, e.toString()); + mModel.progressStop(); + } + mModel.progressStop(); + + Vector colNames = new Vector(); + colNames.addElement("Parameter"); + colNames.addElement("Value"); + Vector d = new Vector(); + + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + Debug.println("entry= "+entry); + Debug.println("value= "+value); + + Object obj = getComponent(value); + Vector row = new Vector(); + ((Component)obj).addFocusListener(this); + mHelpDesc.put(obj, getHelpDescription(value)); + row.addElement(new JLabel(entry)); + row.addElement(obj); + d.addElement(row); + } + ProfilePolicyEditDataModel model = new ProfilePolicyEditDataModel(); + model.setInfo(d, colNames); + mConstraintTable.setModel(model); + + String desc = mDescField.getText(); + if (desc == null || desc.equals("")) { + if (mDefSetId != null) { + mDescField.setText(mDefSetId); + } + } + + this.show(); + } + + protected void setLabelCellEditor(JTable table, int index) { +/* + table.getColumnModel().getColumn(index).setCellRenderer( + new PasswordCellRenderer()); +*/ + table.getColumnModel().getColumn(index).setCellEditor( + new DefaultCellEditor(new JTextField())); + } + + class JComponentCellRenderer implements TableCellRenderer { + public Component getTableCellRendererComponent(JTable table, + Object value, boolean isSelected, boolean hasFocus, int row, + int column) { + return (JComponent)value; + } + } + + private Object getComponent(String value) { + int start_pos = value.indexOf(';'); + int end_pos = value.lastIndexOf(';'); + int end1_pos = value.lastIndexOf(';',end_pos-1); + String syntax = null; + String syntaxVal = null; + String v = null; + + syntax = value.substring(0,start_pos); + syntaxVal = value.substring(start_pos+1, end1_pos); + v = value.substring(end_pos+1); +/* + StringTokenizer st = new StringTokenizer(value, ";"); + String syntax = null; + String syntaxVal = null; + String v = null; + while (st.hasMoreTokens()) { + try { + syntax = st.nextToken(); + syntaxVal = st.nextToken(); + v = st.nextToken(); + } catch (Exception e) { + } + } +*/ + if (syntax != null) { + return CMSAdminUtil.createTableCell(syntax, syntaxVal, v); + } + + return null; + } + + private String getHelpDescription(String value) { + int start_pos = value.indexOf(';'); + int end_pos = value.lastIndexOf(';'); + int end1_pos = value.lastIndexOf(';',end_pos-1); + String syntax = null; + String syntaxVal = null; + String v = null; + syntax = value.substring(0,start_pos); + syntaxVal = value.substring(start_pos+1, end_pos); + v = value.substring(end1_pos+1,end_pos); + return v; + } + + /** + * From focuslistener interface. This lets us know when a component + * has received focus, so we can update the help text. + */ + public void focusGained(FocusEvent f) { + Debug.println("focusGained"); + Component comp = f.getComponent(); + String desc = (String)mHelpDesc.get(comp); + if (desc != null) { + mHelpLabel.setText(desc); + } + } + + /** need to supply this method for focuslistener, but we + * really don't care about it + */ + public void focusLost(FocusEvent f) { + Debug.println("focusLost"); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicySelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicySelectionDialog.java new file mode 100644 index 000000000..44fe9886b --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicySelectionDialog.java @@ -0,0 +1,515 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Plugin Selection Dialog + * + * @author Jack Pan-chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfilePolicySelectionDialog extends JDialog + implements ActionListener, MouseListener, ListSelectionListener +{ + /*========================================================== + * variables + *==========================================================*/ + protected JFrame mParentFrame; + protected AdminConnection mConnection; + protected ResourceBundle mResource; + protected DefaultListModel mConstraintModel; + protected DefaultListModel mDefaultModel; + protected String mDestination; //dest flag + + private JScrollPane mScrollPane; + protected JList mDefaultList, mConstraintList; + protected Hashtable mDefaultData, mConstraintData; + protected JLabel mDefaultLabel, mConstraintLabel; + protected JButton mOK, mCancel, mHelp; + protected String mDefSetId; + protected String mPrefix; + protected String mScope; + protected String mInstanceScope; + protected String mImageName; + protected String mProfileId; + protected String mHelpToken="configuration-certificateprofiles"; + protected CMSPluginInstanceTab mPluginInstanceDialog; + protected CMSBaseResourceModel mModel=null; + protected String mExtraDestination; + + public ProfilePolicySelectionDialog( + String defSetId, + String profileId, + String prefix, + JFrame parent, + AdminConnection conn, + String dest) + { + this(defSetId, profileId, prefix, parent, conn, dest, null, null); + } + + public ProfilePolicySelectionDialog( + String defSetId, + String profileId, + String prefix, + JFrame parent, + AdminConnection conn, + String dest, String extraDest) + { + this(defSetId, profileId, prefix, + parent, + conn, + dest, extraDest, + null ); + } + + public ProfilePolicySelectionDialog( + String defSetId, + String profileId, + String prefix, + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) { + this(defSetId, profileId, prefix, parent, conn, dest, null, pluginType); + } + + /*========================================================== + * constructors + *==========================================================*/ + public ProfilePolicySelectionDialog( + String defSetId, + String profileId, + String prefix, + JFrame parent, + AdminConnection conn, + String dest, String extraDest, + CMSPluginInstanceTab pluginType) + { + super(parent,true); + mDefSetId = defSetId; + mProfileId = profileId; + mParentFrame = parent; + mConnection = conn; + mDestination = dest; + mExtraDestination = extraDest; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + mDefaultModel = new DefaultListModel(); + mConstraintModel = new DefaultListModel(); + mDefaultData = new Hashtable(); + mConstraintData = new Hashtable(); + mPrefix = prefix; + mPluginInstanceDialog = pluginType; + + setTitle(mResource.getString(mPrefix+"_TITLE")); + setSize(440, 250); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + } + + /*========================================================== + * public methods + *==========================================================*/ + + public void setModel(CMSBaseResourceModel model) + { + mModel = model; + } + + /** + * show the windows + * @param users list of current groups + */ + public void showDialog() { + + mConstraintModel.clear(); + mDefaultModel.clear(); + + if(!update("defaultPolicy", mDefaultModel, mDefaultData)) + return; +/* + if(!update("constraintPolicy", mConstraintModel)) + return; +*/ +/* + refresh(); + setArrowButtons(); +*/ + this.show(); + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mOK)) { + + // check selection lists + if (mDefaultList.getSelectedIndex() < 0) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, "Must select default", CMSAdminUtil.ERROR_MESSAGE); + return; + } + + if (mConstraintList.getSelectedIndex() < 0) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, "Must select constraint", CMSAdminUtil.ERROR_MESSAGE); + return; + } + + NameValuePairs response = null; +/* + try { + response = getDefaultConfig(); + } catch (EAdminException e) { + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return; + } + Debug.println(response.toString()); + String id = ((JLabel)mDefaultModel.elementAt(mDefaultList.getSelectedIndex())).getText(); + response.add(Constants.PR_POLICY_IMPL_NAME,id); +*/ + ProfilePolicyNewDialog dialog = + new ProfilePolicyNewDialog( + mDefSetId, + response, + mParentFrame, + mConnection, + mExtraDestination); + + dialog.setModel(mModel); + dialog.setInstanceScope(mInstanceScope); + + // profile;defClass;conClass + String defaultName = ((JLabel)mDefaultModel.elementAt(mDefaultList.getSelectedIndex())).getText(); + String conName = ((JLabel)mConstraintModel.elementAt(mConstraintList.getSelectedIndex())).getText(); + + + String namex = mProfileId + ";" + getID(defaultName, mDefaultData) + + ";" + getID(conName, mConstraintData); + dialog.showDialog(response,namex); + + if(!dialog.isOK()) { + this.dispose(); + return; + } + + //response = dialog.getData(); + // String name = dialog.getRuleName(); + + // Debug.println(response.toString()); + + dialog.dispose(); + this.dispose(); + } + + + if (evt.getSource().equals(mCancel)) { + this.dispose(); + } + if (evt.getSource().equals(mHelp)) { + CMSAdminUtil.help(mHelpToken); + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setArrowButtons(); + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) { + setArrowButtons(); + } + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) { + setArrowButtons(); + } + + protected void setDisplay() { + Debug.println("*** PluginSelectionDialog.setDisplay() - 1"); + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + // default content panel + mDefaultLabel = CMSAdminUtil.makeJLabel(mResource, mPrefix, + "DEFAULTNAME", null); + center.add(mDefaultLabel); + + JPanel content = makeDefaultContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(content, gbc); + center.add(content); + + // constraint content panel + mConstraintLabel = CMSAdminUtil.makeJLabel(mResource, mPrefix, + "CONSTRAINTNAME", null); + center.add(mConstraintLabel); + + JPanel content1 = makeConstraintContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(content1, gbc); + center.add(content1); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + //create botton action panel + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, mPrefix, "OK", null, this); + mCancel = CMSAdminUtil.makeJButton(mResource, mPrefix, "CANCEL", null, this); + mHelp = CMSAdminUtil.makeJButton(mResource, mPrefix, "HELP", null, this); + //JButton[] buttons = { mOK, mCancel, mHelp}; + JButton[] buttons = { mOK, mCancel}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonPanel( buttons, true); + } + + private JPanel makeDefaultContentPane() { + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + //content.setBorder(CMSAdminUtil.makeEtchedBorder()); + + //left side certificate table + mDefaultList = CMSAdminUtil.makeJList(mDefaultModel,9); + mDefaultList.addListSelectionListener(this); + Debug.println("PluginSelectionDialog.makeContentPane() - making mList("+mDefaultList+")"); + mScrollPane = new JScrollPane(mDefaultList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mDefaultList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION ); + mDefaultList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + return mListPanel; + } + + private JPanel makeConstraintContentPane() { + JPanel mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + //content.setBorder(CMSAdminUtil.makeEtchedBorder()); + + //left side certificate table + mConstraintList = CMSAdminUtil.makeJList(mConstraintModel,9); + Debug.println("PluginSelectionDialog.makeContentPane() - making mList("+mConstraintList+")"); + mScrollPane = new JScrollPane(mConstraintList, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mConstraintList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION ); + mConstraintList.addMouseListener(this); + mScrollPane.setBackground(Color.white); + mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + return mListPanel; + } + + + //set arrow buttons + private void setArrowButtons() { + + //enable and diable buttons accordingly + //Debug.println("setArrowButtons() - "+mList.getSelectedIndex()); + + if (mDefaultList.getSelectedIndex()< 0 && mConstraintList.getSelectedIndex()<0) { + mOK.setEnabled(false); + return; + } + + mOK.setEnabled(true); + } + + //refresh the table content + private void refresh() { + //mScrollPane.invalidate(); + //mScrollPane.validate(); + //repaint(); + } + + public void valueChanged(ListSelectionEvent e) { + if (e.getSource().equals(mDefaultList)) { + if (mDefaultList.getSelectedIndex() < 0) + return; + String name = ((JLabel)mDefaultModel.elementAt(mDefaultList.getSelectedIndex())).getText(); + NameValuePairs response=null; + + try { + response = mConnection.read(mDestination, + ScopeDef.SC_SUPPORTED_CONSTRAINTPOLICIES, + getID(name, mDefaultData), new NameValuePairs()); + Debug.println(response.toString()); + } catch (Exception ex) { + Debug.println(ex.toString()); + } + + mConstraintModel.clear(); + mConstraintData.clear(); + parseData(response, mConstraintModel, mConstraintData); + mConstraintList.invalidate(); + mConstraintList.validate(); + repaint(); + } + } + + //================================================= + // RETRIEVE INFO FROM SERVER SIDE + //================================================= + + //save order information to the server + protected boolean update(String scope, DefaultListModel model, + Hashtable data) { + + NameValuePairs response; + NameValuePairs params = new NameValuePairs(); + try { + response = mConnection.search(mDestination, scope, + params); + } catch (EAdminException e) { + //display error dialog + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.getMessage(), CMSAdminUtil.ERROR_MESSAGE); + return false; + } + + Debug.println(response.toString()); + + model.clear(); + data.clear(); + parseData(response, model, data); + return true; + } + + private void parseData(NameValuePairs response, DefaultListModel model, + Hashtable data) { + //parse the data + String[] vals = new String[response.size()]; + int i=0; + for (String name : response.keySet()) { + name = name.trim(); + String val = response.get(name); + StringTokenizer st = new StringTokenizer(val, ","); + String className = st.nextToken(); + String desc = st.nextToken(); + String friendlyName = st.nextToken(); + vals[i++] = friendlyName.trim(); + data.put(name, friendlyName); + Debug.println("PluginSelectionDialog::update() - adding '"+vals[i-1]+"'"); + } + + CMSAdminUtil.bubbleSort(vals); + + for (int y=0; y< vals.length ; y++) { + try { + model.addElement(new JLabel(vals[y], + CMSAdminUtil.getImage(mImageName), JLabel.LEFT)); + } + catch (Exception ex) { + Debug.println("PluginSelectionDialog could not get image for '"+ + mImageName+"'. Adding without image"); + model.addElement(new JLabel(vals[y], + JLabel.LEFT)); + } + } + } + + //this returns the default configuration + protected NameValuePairs getDefaultConfig() throws EAdminException { + String name = ((JLabel)mDefaultModel.elementAt(mDefaultList.getSelectedIndex())).getText(); + NameValuePairs response; + response = mConnection.read(mDestination, + ScopeDef.SC_SUPPORTED_CONSTRAINTPOLICIES, getID(name.trim(), mDefaultData), + new NameValuePairs()); + + Debug.println(response.toString()); + + return response; + } + + private String getID(String name, Hashtable t) { + Enumeration keys = t.keys(); + while (keys.hasMoreElements()) { + String key = (String)keys.nextElement(); + String val = (String)t.get(key); + if (val.equals(name)) { + return key; + } + } + return ""; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileRegisterDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileRegisterDialog.java new file mode 100644 index 000000000..c576adbe6 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileRegisterDialog.java @@ -0,0 +1,303 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + + +/** + * Policy Implementation Registration Editor + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ProfileRegisterDialog extends JDialog + implements ActionListener, DocumentListener, MouseListener +{ + + private final static String PREFIX = "PROFILEREGISTERDIALOG"; + + + /*========================================================== + * variables + *==========================================================*/ + private JFrame mParentFrame; + private AdminConnection mConnection; + private ResourceBundle mResource; + + private JTextField mNameField, mClassField, mTypeField, mDescField; + private JButton mOK, mCancel; + + protected String mDestination; //DEST_TAG to support RA/KRA/CA dest + protected String mScope; + protected String mPrefix; + private boolean mIsOK = false; + protected boolean mType = false; + + /*========================================================== + * constructors + *==========================================================*/ + public ProfileRegisterDialog(String prefix, JFrame parent, AdminConnection conn) { + super(parent,true); + mParentFrame = parent; + mPrefix = prefix; + mConnection = conn; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + setSize(360, 216); + setTitle(mResource.getString(mPrefix+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + //setDisplay(); SUBCLASS MUST call setDiaply() in its constructor + } + + public ProfileRegisterDialog(JFrame parent, AdminConnection conn) { + this(PREFIX, parent, conn); + mType = true; + setDisplay(); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * show the windows + */ + public void showDialog(String destination, String scope) { + //initialize and setup + mNameField.setText(""); + mClassField.setText(""); + mTypeField.setText(""); + mDescField.setText(""); + mDestination=destination; + mScope=scope; + this.show(); + } + + protected void setDestination(String destination) { + mDestination = destination; + } + + protected void setScope(String scope) { + mScope = scope; + } + + public boolean isOK() { + return mIsOK; + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mCancel)) { + mIsOK = false; + this.hide(); + } + + if (evt.getSource().equals(mOK)) { + + /* REPLACED BY PROACTIVE ENFORCEMENT + if (mNameField.getText().trim().equals("")) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, mPrefix, + "NONAME", CMSAdminUtil.ERROR_MESSAGE); + return; + } + if (mClassField.getText().trim().equals("")) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, mPrefix, + "NOCLASS", CMSAdminUtil.ERROR_MESSAGE); + return; + } + */ + + //save value + try { + addImpl(); + } catch (EAdminException e) { + //display error dialog + Debug.println(e.toString()); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.toString(), CMSAdminUtil.ERROR_MESSAGE); + mIsOK = false; + return; + } + mIsOK = true; + this.hide(); + } + } + + //== DocumentListener == + public void insertUpdate(DocumentEvent e) { + setButtons(); + } + + public void removeUpdate(DocumentEvent e){ + setButtons(); + } + + public void changedUpdate(DocumentEvent e){ + setButtons(); + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) {} + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + + protected void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(content, gbc); + center.add(content); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + /*========================================================== + * private methods + *==========================================================*/ + + //set arrow buttons + private void setButtons() { + if ( (mNameField.getText().trim().equals("")) || + (mClassField.getText().trim().equals("")) ) { + mOK.setEnabled(false); + } else { + mOK.setEnabled(true); + } + } + + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, mPrefix, "OK", null, this); + mOK.setEnabled(false); + mCancel = CMSAdminUtil.makeJButton(mResource, mPrefix, "CANCEL", null, this); + JButton[] buttons = { mOK, mCancel}; + return CMSAdminUtil.makeJButtonPanel( buttons ); + } + + private JPanel makeContentPane() { + JPanel content = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + content.setLayout(gb3); + //content.setBorder(CMSAdminUtil.makeEtchedBorder()); + + CMSAdminUtil.resetGBC(gbc); + JLabel label1 = CMSAdminUtil.makeJLabel(mResource, mPrefix, "NAME", null); + mNameField = new JTextField(); + mNameField.getDocument().addDocumentListener(this); + mNameField.addMouseListener(this); + CMSAdminUtil.addEntryField(content, label1, mNameField, gbc); + + CMSAdminUtil.resetGBC(gbc); + // gbc.gridheight = gbc.REMAINDER; + JLabel label2 = CMSAdminUtil.makeJLabel(mResource, mPrefix, "CLASS", null); + mClassField = new JTextField(); + mClassField.getDocument().addDocumentListener(this); + mClassField.addMouseListener(this); + CMSAdminUtil.addEntryField(content, label2, mClassField, gbc); + + CMSAdminUtil.resetGBC(gbc); + // gbc.gridheight = gbc.REMAINDER; + JLabel label3 = CMSAdminUtil.makeJLabel(mResource, mPrefix, "TYPE", null); + mTypeField = new JTextField(); + mTypeField.getDocument().addDocumentListener(this); + mTypeField.addMouseListener(this); + CMSAdminUtil.addEntryField(content, label3, mTypeField, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.gridheight = gbc.REMAINDER; + JLabel label4 = CMSAdminUtil.makeJLabel(mResource, mPrefix, "DESC", null); + mDescField = new JTextField(); + mDescField.getDocument().addDocumentListener(this); + mDescField.addMouseListener(this); + CMSAdminUtil.addEntryField(content, label4, mDescField, gbc); + + return content; + } + + //================================================= + // CONNECT TO SERVER SIDE + //================================================= + + //add new group information + private void addImpl() throws EAdminException { + + //construct NVP + NameValuePairs config = new NameValuePairs(); + config.put(Constants.PR_POLICY_CLASS, mClassField.getText()); + config.put(Constants.PR_POLICY_DESC, mDescField.getText()); + + if (mType) { + mScope=mTypeField.getText(); + } + + //send request + mConnection.add(mDestination, + mScope, + mNameField.getText().trim(), + config); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ProfileRuleDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/ProfileRuleDataModel.java new file mode 100644 index 000000000..7a3ba2827 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ProfileRuleDataModel.java @@ -0,0 +1,69 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; + + +/** + * Policy instance Data model - represents the instance + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class ProfileRuleDataModel extends CMSRuleDataModel +{ + + /*========================================================== + * constructors + *==========================================================*/ + public ProfileRuleDataModel() { + super(); + } + + protected String[] getColumns() { + String x[] = {PROFILE_RULE, STATUS}; + return x; + } + + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + + //XXX NEED TO ADD STUFF + if (obj.get(RULE_STAT).equalsIgnoreCase("enabled")) { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE), + JLabel.LEFT)); + v.addElement(mResource.getString("POLICYRULE_LABEL_ENABLED_LABEL")); + } else { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE), + JLabel.LEFT)); + v.addElement(mResource.getString("POLICYRULE_LABEL_DISABLED_LABEL")); + } + addRow(v, data); + mRules.addElement(obj.get(RULE_NAME)); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PublisherConfigDialog.java b/base/console/src/com/netscape/admin/certsrv/config/PublisherConfigDialog.java new file mode 100644 index 000000000..90d67ba9e --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PublisherConfigDialog.java @@ -0,0 +1,64 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Publisher Parameter Configuration Dialog + * + * @author Steve Parkinson + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PublisherConfigDialog extends CMSBaseConfigDialog + implements ActionListener +{ + + /*========================================================== + * constructors + *==========================================================*/ + public PublisherConfigDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + + PREFIX = "PUBLISHERCONFIGDIALOG"; + RAHELPINDEX = "configuration-ra-edit-publisherrule-dbox-help"; + KRAHELPINDEX = "configuration-kra-edit-publisherrule-dbox-help"; + CAHELPINDEX = "configuration-ca-edit-publisherrule-dbox-help"; + mImplName_token = Constants.PR_PUBLISHER_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_PUBLISHER; + + init(nvp,parent,conn,dest); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PublisherImplDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/PublisherImplDataModel.java new file mode 100644 index 000000000..aefa4b1cc --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PublisherImplDataModel.java @@ -0,0 +1,68 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Implementation Data model - represents the implementation + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PublisherImplDataModel extends CMSContentTableModel + implements IDataProcessor +{ + + /*========================================================== + * variables + *==========================================================*/ + public static final String IMPL_NAME = "NAME"; + public static final String IMPL_CLASS = "CLASS"; + public static final String IMPL_DESC = "DESC"; + + private static String[] mColumns = {PUBLISHER_IMPL, CLASSNAME}; + + /*========================================================== + * constructors + *==========================================================*/ + public PublisherImplDataModel() { + super(); + init(mColumns); + } + + /*========================================================== + * public methods + *==========================================================*/ + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + v.addElement(new JLabel(obj.get(IMPL_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN), + JLabel.LEFT)); + v.addElement(obj.get(IMPL_CLASS)); + //v.addElement(obj.getValue(IMPL_DESC)); + addRow(v, data); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PublisherImplTab.java b/base/console/src/com/netscape/admin/certsrv/config/PublisherImplTab.java new file mode 100644 index 000000000..79fedfe5e --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PublisherImplTab.java @@ -0,0 +1,321 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Publisher Instances Management Tab + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PublisherImplTab extends CMSBaseUGTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String IMPL_NAME = PublisherImplDataModel.IMPL_NAME; + private static final String IMPL_CLASS = PublisherImplDataModel.IMPL_CLASS; + private static final String IMPL_DESC = PublisherImplDataModel.IMPL_DESC; + + private static final String PANEL_NAME = "PUBLISHERIMPL"; + private static final String DIALOG_PREFIX = "PUBLISHERREGISTERDIALOG"; + + private AdminConnection mConnection; + private String mDestination; + + protected JScrollPane mScrollPane; + protected JTable mTable; //table + protected PublisherImplDataModel mDataModel; //table model + protected PublisherRegisterDialog mEditor=null; //keep single copy + protected ViewDialog mViewer=null; //keep single copy + + protected JButton mRefresh, mAdd, mDelete, mView, mHelp; + private final static String RAHELPINDEX = "configuration-ra-publisherplugin-help"; + private final static String CAHELPINDEX = "configuration-ca-publisherplugin-help"; + private final static String KRAHELPINDEX = "configuration-publisherkra-plugin-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public PublisherImplTab(CMSBaseResourceModel model, String destination) { + super(PANEL_NAME, model); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new PublisherImplDataModel(); + mDestination = destination; + if (mDestination.equals(DestDef.DEST_RA_PUBLISHER_ADMIN)) + mHelpToken = RAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } + if (e.getSource().equals(mAdd)) { + if (mEditor==null) + mEditor = new PublisherRegisterDialog(mModel.getFrame(), + mConnection); + mEditor.showDialog(mDestination, ScopeDef.SC_PUBLISHER_IMPLS); + refresh(); + } + if (e.getSource().equals(mDelete)) { + Debug.println("Delete"); + if(mTable.getSelectedRow()< 0) + return; + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + delete(); + Debug.println("Deleted"); + } + } + if (e.getSource().equals(mView)) { + Debug.println("View"); + if(mTable.getSelectedRow()< 0) + return; + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + if (mViewer==null) + mViewer = new ViewDialog(mModel.getFrame()); + mViewer.showDialog(obj.get(IMPL_NAME), + obj.get(IMPL_CLASS), + obj.get(IMPL_DESC)); + } + if (e.getSource().equals(mHelp)) { + helpCallback(); + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mouseReleased(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + public void refresh() { + + mDataModel.removeAllRows(); + update(); + + setButtons(); + mTable.invalidate(); + mTable.validate(); + mTable.repaint(1); + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + mView = makeJButton("VIEW"); + JButton[] buttons = {mAdd, mDelete, mView}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + refresh(); + + return mListPanel; + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer(new LabelCellRenderer(new JLabel())); + } + + + //set buttons + private void setButtons() { + + //enable and diable buttons accordingly + //Debug.println("setButtons() - "+mTable.getSelectedRow()); + //Debug.println("setButtons() - "+mTable.getSelectionModel().isSelectionEmpty()); + if (mTable.getSelectionModel().isSelectionEmpty()) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + if(mDataModel.getRowCount()<=0) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + mDelete.setEnabled(true); + mView.setEnabled(true); + + } + + //============================================= + // SEND REQUESTS TO THE SERVER SIDE + //============================================= + private void update() { + //send request and parse data + + mModel.progressStart(); + NameValuePairs response; + try { + response = mConnection.search(mDestination, + "publisherImpls", + // ScopeDef.SC_PUBLISHER_IMPLS, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + + Debug.println(response.toString()); + + //parse the data + int i=0; + String[] vals = new String[response.size()]; + Hashtable data = new Hashtable(); + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + int x = value.indexOf(","); + NameValuePairs obj = new NameValuePairs(); + obj.put(IMPL_NAME, entry); + vals[i++]= entry ; + obj.put(IMPL_CLASS, value.substring(0, x)); + obj.put(IMPL_DESC, value.substring(x + 1)); + data.put(entry,obj); + } + + CMSAdminUtil.bubbleSort(vals); + + for (int y=0; y< vals.length ; y++) { + mDataModel.processData(data.get(vals[y])); + } + + data.clear(); + + if (mDataModel.getRowCount() >0) + mTable.setRowSelectionInterval(0,0); + + mModel.progressStop(); + } + + private void delete() { + //get entry name + mModel.progressStart(); + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, + ScopeDef.SC_PUBLISHER_IMPLS, + obj.get(IMPL_NAME)); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PublisherInstanceTab.java b/base/console/src/com/netscape/admin/certsrv/config/PublisherInstanceTab.java new file mode 100644 index 000000000..e9d3bdbb0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PublisherInstanceTab.java @@ -0,0 +1,95 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Publisher Instances Management Tab + * + * @author Steve Parkinson + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PublisherInstanceTab extends CMSPluginInstanceTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "PUBLISHERRULE"; + + private final static String RAHELPINDEX = "configuration-ra-publisherinstances-help"; + private final static String CAHELPINDEX = "configuration-ca-publisherinstances-help"; + private final static String KRAHELPINDEX = "configuration-kra-publisherinstances-help"; + + + /*========================================================== + * constructors + *==========================================================*/ + public PublisherInstanceTab(CMSBaseResourceModel model, String dest) { + super(model,dest,PANEL_NAME); + Debug.println("PublisherInstanceTab::PublisherInstanceTab(,"+dest); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new PublisherRuleDataModel(); + mScope = ScopeDef.SC_PUBLISHER_RULES; + RULE_NAME = PublisherRuleDataModel.RULE_NAME; + RULE_STAT = PublisherRuleDataModel.RULE_STAT; + + if (mDestination.equals(DestDef.DEST_RA_PUBLISHER_ADMIN)) + mHelpToken = RAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + } + + + public CMSBaseConfigDialog makeNewConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest + ) + { + + return new PublisherConfigDialog(nvp, + parent, + conn, + dest); + } + + public PluginSelectionDialog getPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType + ) + { + return new PublisherPluginSelectionDialog(parent,conn,dest,pluginType); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PublisherPluginSelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/PublisherPluginSelectionDialog.java new file mode 100644 index 000000000..536d9096f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PublisherPluginSelectionDialog.java @@ -0,0 +1,74 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Publisher Plugin Selection Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class PublisherPluginSelectionDialog extends PluginSelectionDialog +{ + /*========================================================== + * variables + *==========================================================*/ + private static final String PREFIX = "PUBLISHERSELECTIONDIALOG"; + private static final String CAHELPINDEX = + "configuration-ca-add-publisherrule-dbox-help"; + private static final String RAHELPINDEX = + "configuration-ra-add-publisherrule-dbox-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public PublisherPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + super(PREFIX, parent,conn, dest, pluginType); + mScope = ScopeDef.SC_PUBLISHER_IMPLS; + mInstanceScope = ScopeDef.SC_PUBLISHER_RULES; + mImageName = CMSAdminResources.IMAGE_RULE_PLUGIN; + if (dest.equals(DestDef.DEST_RA_PUBLISHER_ADMIN)) + mHelpToken = RAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + setDisplay(); + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PublisherRegisterDialog.java b/base/console/src/com/netscape/admin/certsrv/config/PublisherRegisterDialog.java new file mode 100644 index 000000000..23e1a5913 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PublisherRegisterDialog.java @@ -0,0 +1,40 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; + +/** + * Publisher Implementation Registration Editor + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class PublisherRegisterDialog extends RegisterDialog { + + private final static String PREFIX = "PUBLISHERREGISTERDIALOG"; + + public PublisherRegisterDialog(JFrame parent, AdminConnection conn) { + super(PREFIX, parent, conn); + setDisplay(); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/PublisherRuleDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/PublisherRuleDataModel.java new file mode 100644 index 000000000..03faeac21 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/PublisherRuleDataModel.java @@ -0,0 +1,62 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.Debug; + + +/** + * Publisher instance Data model - represents the instance + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class PublisherRuleDataModel extends CMSRuleDataModel +{ + + /*========================================================== + * constructors + *==========================================================*/ + public PublisherRuleDataModel() { + super(); + } + + protected String[] getColumns() { + Debug.println("PublisherRuleDataModel.getColumns()"); + String x[] = {PUBLISHER_RULE, PLUGIN}; + return x; + } + + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE), + JLabel.LEFT)); + v.addElement(obj.get(RULE_IMPL)); + addRow(v, data); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/RegisterDialog.java b/base/console/src/com/netscape/admin/certsrv/config/RegisterDialog.java new file mode 100644 index 000000000..fe48419c7 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/RegisterDialog.java @@ -0,0 +1,286 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Registration Editor + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class RegisterDialog extends JDialog + implements ActionListener, DocumentListener, MouseListener +{ + /*========================================================== + * variables + *==========================================================*/ + private JFrame mParentFrame; + private AdminConnection mConnection; + private ResourceBundle mResource; + + private JTextField mNameField, mClassField, mTypeField; + private JButton mOK, mCancel; + + protected String mDestination; //DEST_TAG to support RA/KRA/CA dest + protected String mScope; + protected String mPrefix; + private boolean mIsOK = false; + protected boolean mType = false; + + /*========================================================== + * constructors + *==========================================================*/ + public RegisterDialog(String prefix, JFrame parent, AdminConnection conn) { + super(parent,true); + mParentFrame = parent; + mPrefix = prefix; + mConnection = conn; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + setSize(360, 216); + setTitle(mResource.getString(mPrefix+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + //setDisplay(); SUBCLASS MUST call setDiaply() in its constructor + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * show the windows + */ + public void showDialog(String destination, String scope) { + //initialize and setup + mNameField.setText(""); + mClassField.setText(""); + if (mType) { + mTypeField.setText(""); + } + mDestination=destination; + mScope=scope; + this.show(); + } + + protected void setDestination(String destination) { + mDestination = destination; + } + + protected void setScope(String scope) { + mScope = scope; + } + + public boolean isOK() { + return mIsOK; + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent evt) { + + if (evt.getSource().equals(mCancel)) { + mIsOK = false; + this.hide(); + } + + if (evt.getSource().equals(mOK)) { + + /* REPLACED BY PROACTIVE ENFORCEMENT + if (mNameField.getText().trim().equals("")) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, mPrefix, + "NONAME", CMSAdminUtil.ERROR_MESSAGE); + return; + } + if (mClassField.getText().trim().equals("")) { + CMSAdminUtil.showMessageDialog(mParentFrame, mResource, mPrefix, + "NOCLASS", CMSAdminUtil.ERROR_MESSAGE); + return; + } + */ + + //save value + try { + addImpl(); + } catch (EAdminException e) { + //display error dialog + Debug.println(e.toString()); + CMSAdminUtil.showErrorDialog(mParentFrame, mResource, + e.toString(), CMSAdminUtil.ERROR_MESSAGE); + mIsOK = false; + return; + } + mIsOK = true; + this.hide(); + } + } + + //== DocumentListener == + public void insertUpdate(DocumentEvent e) { + setButtons(); + } + + public void removeUpdate(DocumentEvent e){ + setButtons(); + } + + public void changedUpdate(DocumentEvent e){ + setButtons(); + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) {} + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + + protected void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints(content, gbc); + center.add(content); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + /*========================================================== + * private methods + *==========================================================*/ + + //set arrow buttons + private void setButtons() { + if ( (mNameField.getText().trim().equals("")) || + (mClassField.getText().trim().equals("")) ) { + mOK.setEnabled(false); + } else { + mOK.setEnabled(true); + } + } + + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, mPrefix, "OK", null, this); + mOK.setEnabled(false); + mCancel = CMSAdminUtil.makeJButton(mResource, mPrefix, "CANCEL", null, this); + JButton[] buttons = { mOK, mCancel}; + return CMSAdminUtil.makeJButtonPanel( buttons ); + } + + private JPanel makeContentPane() { + JPanel content = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + content.setLayout(gb3); + //content.setBorder(CMSAdminUtil.makeEtchedBorder()); + + CMSAdminUtil.resetGBC(gbc); + JLabel label1 = CMSAdminUtil.makeJLabel(mResource, mPrefix, "NAME", null); + mNameField = new JTextField(); + mNameField.getDocument().addDocumentListener(this); + mNameField.addMouseListener(this); + CMSAdminUtil.addEntryField(content, label1, mNameField, gbc); + + CMSAdminUtil.resetGBC(gbc); + // gbc.gridheight = gbc.REMAINDER; + JLabel label2 = CMSAdminUtil.makeJLabel(mResource, mPrefix, "CLASS", null); + mClassField = new JTextField(); + mClassField.getDocument().addDocumentListener(this); + mClassField.addMouseListener(this); + CMSAdminUtil.addEntryField(content, label2, mClassField, gbc); + + if (mType) { + CMSAdminUtil.resetGBC(gbc); + gbc.gridheight = gbc.REMAINDER; + JLabel label3 = CMSAdminUtil.makeJLabel(mResource, mPrefix, "TYPE", null); + mTypeField = new JTextField(); + mTypeField.getDocument().addDocumentListener(this); + mTypeField.addMouseListener(this); + CMSAdminUtil.addEntryField(content, label3, mTypeField, gbc); + } + + return content; + } + + //================================================= + // CONNECT TO SERVER SIDE + //================================================= + + //add new group information + private void addImpl() throws EAdminException { + + //construct NVP + NameValuePairs config = new NameValuePairs(); + config.put(Constants.PR_POLICY_CLASS, mClassField.getText()); + + if (mType) { + mScope=mTypeField.getText(); + } + + //send request + mConnection.add(mDestination, + mScope, + mNameField.getText().trim(), + config); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/RuleConfigDialog.java b/base/console/src/com/netscape/admin/certsrv/config/RuleConfigDialog.java new file mode 100644 index 000000000..7f7cff092 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/RuleConfigDialog.java @@ -0,0 +1,64 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import javax.swing.table.*; +import javax.swing.text.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Rule Parameter Configuration Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class RuleConfigDialog extends CMSBaseConfigDialog + implements ActionListener +{ + /*========================================================== + * constructors + *==========================================================*/ + public RuleConfigDialog(NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest) { + + super(parent, dest); + PREFIX = "RULECONFIGDIALOG"; + RAHELPINDEX = + "configuration-ra-edit-rulerule-dbox-help"; + CAHELPINDEX = + "configuration-ca-edit-rulerule-dbox-help"; + + mImplName_token = Constants.PR_RULE_IMPL_NAME; + mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_PUBLISHRULE; + + init(nvp,parent,conn,dest); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/RuleImplDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/RuleImplDataModel.java new file mode 100644 index 000000000..86a4fa6d4 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/RuleImplDataModel.java @@ -0,0 +1,68 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; + +/** + * Rule Implementation Data model - represents the implementation + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class RuleImplDataModel extends CMSContentTableModel + implements IDataProcessor +{ + + /*========================================================== + * variables + *==========================================================*/ + public static final String IMPL_NAME = "NAME"; + public static final String IMPL_CLASS = "CLASS"; + public static final String IMPL_DESC = "DESC"; + + private static String[] mColumns = {RULE_IMPL, CLASSNAME}; + + /*========================================================== + * constructors + *==========================================================*/ + public RuleImplDataModel() { + super(); + init(mColumns); + } + + /*========================================================== + * public methods + *==========================================================*/ + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + v.addElement(new JLabel(obj.get(IMPL_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN), + JLabel.LEFT)); + v.addElement(obj.get(IMPL_CLASS)); + //v.addElement(obj.getValue(IMPL_DESC)); + addRow(v, data); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/RuleImplTab.java b/base/console/src/com/netscape/admin/certsrv/config/RuleImplTab.java new file mode 100644 index 000000000..098cbcbd1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/RuleImplTab.java @@ -0,0 +1,320 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Rule Instances Management Tab + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class RuleImplTab extends CMSBaseUGTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String IMPL_NAME = RuleImplDataModel.IMPL_NAME; + private static final String IMPL_CLASS = RuleImplDataModel.IMPL_CLASS; + private static final String IMPL_DESC = RuleImplDataModel.IMPL_DESC; + + private static final String PANEL_NAME = "RULEIMPL"; + private static final String DIALOG_PREFIX = "RULEREGISTERDIALOG"; + + private AdminConnection mConnection; + private String mDestination; + + protected JScrollPane mScrollPane; + protected JTable mTable; //table + protected RuleImplDataModel mDataModel; //table model + protected RuleRegisterDialog mEditor=null; //keep single copy + protected ViewDialog mViewer=null; //keep single copy + + protected JButton mRefresh, mAdd, mDelete, mView, mHelp; + private final static String RAHELPINDEX = "configuration-ra-ruleplugin-help"; + private final static String CAHELPINDEX = "configuration-ca-ruleplugin-help"; + private final static String KRAHELPINDEX = "configuration-kra-ruleplugin-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public RuleImplTab(CMSBaseResourceModel model, String destination) { + super(PANEL_NAME, model); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new RuleImplDataModel(); + mDestination = destination; + if (mDestination.equals(DestDef.DEST_RA_RULE_ADMIN)) + mHelpToken = RAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } + if (e.getSource().equals(mAdd)) { + if (mEditor==null) + mEditor = new RuleRegisterDialog(mModel.getFrame(), + mConnection); + mEditor.showDialog(mDestination, ScopeDef.SC_RULE_IMPLS); + refresh(); + } + if (e.getSource().equals(mDelete)) { + Debug.println("Delete"); + if(mTable.getSelectedRow()< 0) + return; + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + delete(); + Debug.println("Deleted"); + } + } + if (e.getSource().equals(mView)) { + Debug.println("View"); + if(mTable.getSelectedRow()< 0) + return; + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + if (mViewer==null) + mViewer = new ViewDialog(mModel.getFrame()); + mViewer.showDialog(obj.get(IMPL_NAME), + obj.get(IMPL_CLASS), + obj.get(IMPL_DESC)); + } + if (e.getSource().equals(mHelp)) { + helpCallback(); + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mouseReleased(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + public void refresh() { + + mDataModel.removeAllRows(); + update(); + + setButtons(); + mTable.invalidate(); + mTable.validate(); + mTable.repaint(1); + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + mView = makeJButton("VIEW"); + JButton[] buttons = {mAdd, mDelete, mView}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + refresh(); + + return mListPanel; + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer(new LabelCellRenderer(new JLabel())); + } + + + //set buttons + private void setButtons() { + + //enable and diable buttons accordingly + //Debug.println("setButtons() - "+mTable.getSelectedRow()); + //Debug.println("setButtons() - "+mTable.getSelectionModel().isSelectionEmpty()); + if (mTable.getSelectionModel().isSelectionEmpty()) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + if(mDataModel.getRowCount()<=0) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + mDelete.setEnabled(true); + mView.setEnabled(true); + + } + + //============================================= + // SEND REQUESTS TO THE SERVER SIDE + //============================================= + private void update() { + //send request and parse data + + mModel.progressStart(); + NameValuePairs response; + try { + response = mConnection.search(mDestination, + ScopeDef.SC_RULE_IMPLS, + new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + + Debug.println(response.toString()); + + //parse the data + int i=0; + String[] vals = new String[response.size()]; + Hashtable data = new Hashtable(); + for (String entry : response.keySet()) { + entry = entry.trim(); + String value = response.get(entry); + int x = value.indexOf(","); + NameValuePairs obj = new NameValuePairs(); + obj.put(IMPL_NAME, entry); + vals[i++]= entry ; + obj.put(IMPL_CLASS, value.substring(0, x)); + obj.put(IMPL_DESC, value.substring(x + 1)); + data.put(entry,obj); + } + + CMSAdminUtil.bubbleSort(vals); + + for (int y=0; y< vals.length ; y++) { + mDataModel.processData(data.get(vals[y])); + } + + data.clear(); + + if (mDataModel.getRowCount() >0) + mTable.setRowSelectionInterval(0,0); + + mModel.progressStop(); + } + + private void delete() { + //get entry name + mModel.progressStart(); + NameValuePairs obj = (NameValuePairs) + mDataModel.getObjectValueAt(mTable.getSelectedRow()); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, + ScopeDef.SC_RULE_IMPLS, + obj.get(IMPL_NAME)); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/RuleInstanceTab.java b/base/console/src/com/netscape/admin/certsrv/config/RuleInstanceTab.java new file mode 100644 index 000000000..04a649ed0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/RuleInstanceTab.java @@ -0,0 +1,97 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Publishing Rules - Instances Management Tab + * + * @author Steve Parkinson + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +/* A Rule Rule? Hmmm */ + +public class RuleInstanceTab extends CMSPluginInstanceTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "RULERULE"; + + private final static String RAHELPINDEX = "configuration-ra-ruleinstances-help"; + private final static String CAHELPINDEX = "configuration-ca-ruleinstances-help"; + + + /*========================================================== + * constructors + *==========================================================*/ + public RuleInstanceTab(CMSBaseResourceModel model, String dest) { + super(model,dest,PANEL_NAME); + Debug.println("RuleInstanceTab::RuleInstanceTab(,"+dest); + mConnection = model.getServerInfo().getAdmin(); + mDataModel = new RuleRuleDataModel(); + mScope = ScopeDef.SC_RULE_RULES; + RULE_NAME = RuleRuleDataModel.RULE_NAME; + RULE_STAT = RuleRuleDataModel.RULE_STAT; + + if (mDestination.equals(DestDef.DEST_RA_RULE_ADMIN)) + mHelpToken = RAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + } + + + public CMSBaseConfigDialog makeNewConfigDialog( + NameValuePairs nvp, + JFrame parent, + AdminConnection conn, + String dest + ) + { + + return new RuleConfigDialog(nvp, + parent, + conn, + dest); + } + + public PluginSelectionDialog getPluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType + ) + { + return new RulePluginSelectionDialog(parent,conn,dest,pluginType); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/RulePluginSelectionDialog.java b/base/console/src/com/netscape/admin/certsrv/config/RulePluginSelectionDialog.java new file mode 100644 index 000000000..f1021bc6c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/RulePluginSelectionDialog.java @@ -0,0 +1,74 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Publishing Rule Plugin Selection Dialog + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class RulePluginSelectionDialog extends PluginSelectionDialog +{ + /*========================================================== + * variables + *==========================================================*/ + private static final String PREFIX = "RULESELECTIONDIALOG"; + private static final String CAHELPINDEX = + "configuration-ca-add-rulerule-dbox-help"; + private static final String RAHELPINDEX = + "configuration-ra-add-rulerule-dbox-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public RulePluginSelectionDialog( + JFrame parent, + AdminConnection conn, + String dest, + CMSPluginInstanceTab pluginType) + { + super(PREFIX, parent,conn, dest, pluginType); + mScope = ScopeDef.SC_RULE_IMPLS; + mInstanceScope = ScopeDef.SC_RULE_RULES; + mImageName = CMSAdminResources.IMAGE_RULE_PLUGIN; + if (dest.equals(DestDef.DEST_RA_RULE_ADMIN)) + mHelpToken = RAHELPINDEX; + else + mHelpToken = CAHELPINDEX; + setDisplay(); + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/RuleRegisterDialog.java b/base/console/src/com/netscape/admin/certsrv/config/RuleRegisterDialog.java new file mode 100644 index 000000000..34d1757e6 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/RuleRegisterDialog.java @@ -0,0 +1,40 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; + +/** + * RUle Implementation Registration Editor + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ + +public class RuleRegisterDialog extends RegisterDialog { + + private final static String PREFIX = "RULEREGISTERDIALOG"; + + public RuleRegisterDialog(JFrame parent, AdminConnection conn) { + super(PREFIX, parent, conn); + setDisplay(); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/RuleRuleDataModel.java b/base/console/src/com/netscape/admin/certsrv/config/RuleRuleDataModel.java new file mode 100644 index 000000000..cee7727a1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/RuleRuleDataModel.java @@ -0,0 +1,70 @@ +// --- 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.config; + +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.Debug; + + +/** + * Rule instance Data model - represents the instance + * table information + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + */ +public class RuleRuleDataModel extends CMSRuleDataModel +{ + + /*========================================================== + * constructors + *==========================================================*/ + public RuleRuleDataModel() { + super(); + } + + protected String[] getColumns() { + Debug.println("PolicyRuleDataModel.getColumns()"); + String x[] = {RULE_RULE, STATUS}; + return x; + } + + public void processData(Object data) { + Vector v = new Vector(); + NameValuePairs obj = (NameValuePairs) data; + + if (obj.get(RULE_STAT).equalsIgnoreCase("enabled")) { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE), + JLabel.LEFT)); + v.addElement(mResource.getString("RULERULE_LABEL_ENABLED_LABEL")); + } else { + v.addElement(new JLabel(obj.get(RULE_NAME), + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE), + JLabel.LEFT)); + v.addElement(mResource.getString("RULERULE_LABEL_DISABLED_LABEL")); + } + addRow(v, data); + mRules.addElement(obj.get(RULE_NAME)); + } + + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/TKSKeysTab.java b/base/console/src/com/netscape/admin/certsrv/config/TKSKeysTab.java new file mode 100644 index 000000000..ac8b5e610 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/TKSKeysTab.java @@ -0,0 +1,366 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; +import org.mozilla.jss.CryptoManager; +/** + * User Certs Tab + * + * @author Khai Truong + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class TKSKeysTab extends CMSBaseUGTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "TKSKEYS"; + private CryptoManager mCryptoManager = null; + + private AdminConnection mConnection; + private String mDestination; + private CMSBaseResourceModel mModel; + private ConsoleInfo mConsoleInfo; + private JComboBox mToken; + protected JScrollPane mScrollPane; + protected JTable mTable; //table + protected ListKeysModel mDataModel; //table model + protected KeyCreateDialog mEditor=null; //keep single copy + + protected JButton mRefresh, mAdd, mHelp; + private final static String HELPINDEX = "configuration-log-plugin-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public TKSKeysTab(CMSBaseResourceModel model, String destination) { + super(PANEL_NAME, model); + mConnection = model.getServerInfo().getAdmin(); + mModel = model; + mConsoleInfo = mModel.getConsoleInfo(); + mDataModel = new ListKeysModel(); + mDestination = destination; + mHelpToken = HELPINDEX; + + } + + /*========================================================== + * public methods + *==========================================================*/ + + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } + if (e.getSource().equals(mHelp)) { + helpCallback(); + } + if (e.getSource().equals(mAdd)) { + if (mEditor==null) + mEditor = new KeyCreateDialog(mModel.getFrame(),mConnection); + mEditor.setToken((String)mToken.getSelectedItem()); + mEditor.showDialog(mDestination, ScopeDef.SC_LOG_IMPLS); + + //CertSetupWizardInfo info = new CertSetupWizardInfo(mConnection, mConsoleInfo); + + // if it is "0", then it means it is root cert mode. + // if it is "1", then it means it is user cert mode. + //info.setMode("1"); + //CertSetupWizard wizard = new CertSetupWizard( + // mModel, info); + refresh(); + return; + } + + int row = mTable.getSelectedRow(); + if(row < 0) + return; + + + + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mouseReleased(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + public void refresh() { + + mDataModel.removeAllRows(); + update(); + + setButtons(); + mTable.invalidate(); + mTable.validate(); + mTable.repaint(1); + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + + + mAdd = makeJButton("ADD"); + + JButton[] buttons = {mAdd}; + JButtonFactory.resize( buttons ); + JPanel rightPanel = CMSAdminUtil.makeJButtonVPanel( buttons ); + + return rightPanel; + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + mToken = new JComboBox(); + mToken.setPreferredSize(new java.awt.Dimension(54, 22)); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.weightx = 0.0; + gbc.weighty = 0.0; + gbc.gridheight = 1; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE*30); + gb.setConstraints(mToken, gbc); + mListPanel.add(mToken); + + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.gridheight = 10; + gbc.weighty = 1.0; + gbc.weightx = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + NameValuePairs response=null; + try { + response = mConnection.search(mDestination, + ScopeDef.SC_TOKEN, new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + } + if (response != null) { + mToken.removeAllItems(); + String[] vals = new String[response.size()]; + int i=0; + for (String entry : response.keySet()) { + vals[i++] = entry.trim(); + } + + int sindex = 0; + CMSAdminUtil.quickSort(vals, 0, response.size()-1); + for (i=0; i" + +mDataModel.getValueAt(row, 2); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, ScopeDef.SC_USERCERTSLIST, id); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/UserCertsTab.java b/base/console/src/com/netscape/admin/certsrv/config/UserCertsTab.java new file mode 100644 index 000000000..de0a075a1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/UserCertsTab.java @@ -0,0 +1,342 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.keycert.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.ug.*; +import javax.swing.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; + +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * User Certs Tab + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class UserCertsTab extends CMSBaseUGTab { + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANEL_NAME = "USERCERTS"; + + private AdminConnection mConnection; + private String mDestination; + private CMSBaseResourceModel mModel; + private ConsoleInfo mConsoleInfo; + + protected JScrollPane mScrollPane; + protected JTable mTable; //table + protected ListCertsModel mDataModel; //table model + protected CertViewDialog mEditor=null; //keep single copy + + protected JButton mRefresh, mAdd, mDelete, mView, mHelp; + private final static String HELPINDEX = "configuration-log-plugin-help"; + + /*========================================================== + * constructors + *==========================================================*/ + public UserCertsTab(CMSBaseResourceModel model, String destination) { + super(PANEL_NAME, model); + mConnection = model.getServerInfo().getAdmin(); + mModel = model; + mConsoleInfo = mModel.getConsoleInfo(); + mDataModel = new ListCertsModel(); + mDestination = destination; + mHelpToken = HELPINDEX; + } + + /*========================================================== + * public methods + *==========================================================*/ + + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mRefresh)) { + refresh(); + } + if (e.getSource().equals(mHelp)) { + helpCallback(); + } + if (e.getSource().equals(mAdd)) { + CertSetupWizardInfo info = new CertSetupWizardInfo(mConnection, mConsoleInfo); + + // if it is "0", then it means it is root cert mode. + // if it is "1", then it means it is user cert mode. + info.setMode("1"); + CertSetupWizard wizard = new CertSetupWizard( + mModel, info); + refresh(); + return; + } + + int row = mTable.getSelectedRow(); + if(row < 0) + return; + + if (e.getSource().equals(mDelete)) { + Debug.println("Delete"); + if(mTable.getSelectedRow()< 0) + return; + int i = showConfirmDialog("DELETE"); + if (i == JOptionPane.YES_OPTION) { + delete(); + Debug.println("Deleted"); + } + } + if (e.getSource().equals(mView)) { + Debug.println("View"); + String nickname = (String)(mTable.getValueAt(row, 3)) + ":" + + (String)(mTable.getValueAt(row, 0)); + String serialno = (String)(mTable.getValueAt(row, 1)); + String issuername = (String)(mTable.getValueAt(row, 2)); + + try { + NameValuePairs nvps = new NameValuePairs(); + nvps.put(Constants.PR_NICK_NAME, nickname); + nvps.put(Constants.PR_SERIAL_NUMBER, serialno); + nvps.put(Constants.PR_ISSUER_NAME, issuername); + NameValuePairs results = mConnection.read( + DestDef.DEST_SERVER_ADMIN, ScopeDef.SC_CERT_PRETTY_PRINT, + Constants.RS_ID_CONFIG, nvps); + if (nvps.size() <= 0) + return; + String name = results.keySet().iterator().next(); // first element + String print = results.get(name); + CertViewDialog certdialog = new CertViewDialog(mModel.getFrame()); + certdialog.showDialog(nickname, print); + } catch (EAdminException ex) { + CMSAdminUtil.showErrorDialog(mModel.getFrame(), mResource, ex.toString(), + CMSAdminUtil.ERROR_MESSAGE); + } + } + } + + //==== MOUSELISTENER ====================== + public void mouseClicked(MouseEvent e) { + setButtons(); + } + + public void mouseReleased(MouseEvent e) { + setButtons(); + } + + /*========================================================== + * protected methods + *==========================================================*/ + public void refresh() { + + mDataModel.removeAllRows(); + update(); + + setButtons(); + mTable.invalidate(); + mTable.validate(); + mTable.repaint(1); + } + + /** + * create the user action button panel + */ + protected JPanel createButtonPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mAdd = makeJButton("ADD"); + mDelete = makeJButton("DELETE"); + mView = makeJButton("VIEW"); + JButton[] buttons = {mAdd, mDelete, mView}; + JButtonFactory.resize( buttons ); + return CMSAdminUtil.makeJButtonVPanel( buttons ); + } + + protected JPanel createActionPanel() { + //edit, add, delete, help buttons required + //actionlister to this object + mRefresh = makeJButton("REFRESH"); + mHelp = makeJButton("HELP"); + //JButton[] buttons = { mRefresh, mHelp }; + JButton[] buttons = { mRefresh }; + return makeJButtonPanel(buttons, true); + } + + protected JPanel createListPanel() { + mListPanel = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + mListPanel.setLayout(gb); + + //center table + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + mTable.addMouseListener(this); + setLabelCellRenderer(mTable,0); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.fill = gbc.BOTH; + gbc.gridwidth = 1; + gbc.weightx = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(mScrollPane, gbc); + mListPanel.add(mScrollPane); + + JPanel buttonPanel = createButtonPanel(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + gbc.insets = EMPTY_INSETS; + gb.setConstraints(buttonPanel, gbc); + mListPanel.add(buttonPanel); + + refresh(); + + return mListPanel; + } + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer(new LabelCellRenderer(new JLabel())); + } + + + //set buttons + private void setButtons() { + + //enable and diable buttons accordingly + //Debug.println("setButtons() - "+mTable.getSelectedRow()); + //Debug.println("setButtons() - "+mTable.getSelectionModel().isSelectionEmpty()); + if (mTable.getSelectionModel().isSelectionEmpty()) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + if(mDataModel.getRowCount()<=0) { + mDelete.setEnabled(false); + mView.setEnabled(false); + return; + } + + mDelete.setEnabled(true); + mView.setEnabled(true); + + } + + //============================================= + // SEND REQUESTS TO THE SERVER SIDE + //============================================= + private void update() { + //send request and parse data + + mModel.progressStart(); + NameValuePairs response; + try { + response = mConnection.search(mDestination, + ScopeDef.SC_USERCERTSLIST, new NameValuePairs()); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + + Debug.println(response.toString()); + + //parse the data + mDataModel.removeAllRows(); + if (response != null) { + String[] vals = new String[response.size()]; + int i=0; + for (String entry : response.keySet()) { + vals[i++] = entry.trim(); + } + + int sindex = 0; + String snickname = ""; + CMSAdminUtil.quickSort(vals, 0, response.size()-1); + for (i=0; i" + +mDataModel.getValueAt(row, 2); + + //send comment to server for the removal of user + try { + mConnection.delete(mDestination, ScopeDef.SC_USERCERTSLIST, id); + } catch (EAdminException e) { + //display error dialog + showErrorDialog(e.getMessage()); + mModel.progressStop(); + return; + } + mModel.progressStop(); + //send comment to server and refetch the content + refresh(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ViewDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ViewDialog.java new file mode 100644 index 000000000..277b3d2be --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ViewDialog.java @@ -0,0 +1,189 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import javax.swing.table.*; +import com.netscape.certsrv.common.*; + +/** + * Policy Implementation Information viewer + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ViewDialog extends JDialog + implements ActionListener +{ + /*========================================================== + * variables + *==========================================================*/ + private String PREFIX = "VIEWDIALOG"; + + private JFrame mParentFrame; + private ResourceBundle mResource; + private JTextArea mTextArea; + private JLabel mNameField, mClassField; + + private JButton mOK; + + /*========================================================== + * constructors + *==========================================================*/ + public ViewDialog(JFrame parent) { + super(parent,true); + mParentFrame = parent; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + setSize(400, 200); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + setDisplay(); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * show the windows + */ + public void showDialog(String name, String classname, String desc) { + //initialize and setup + mNameField.setText(name); + mClassField.setText(classname); + mTextArea.setText(CMSAdminUtil.wrapText(desc,50)); + mTextArea.setCaretPosition(0); + this.show(); + } + + /*========================================================== + * EVNET HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed(ActionEvent evt) { + if (evt.getSource().equals(mOK)) { + this.hide(); + } + } + + /*========================================================== + * private methods + *==========================================================*/ + private void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gb.setConstraints(content, gbc); + center.add(content); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + center.add(action); + + getContentPane().add("Center",center); + } + + private JPanel makeActionPane() { + mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this); + Dimension d = mOK.getMinimumSize(); + if (d.width < CMSAdminUtil.DEFAULT_BUTTON_SIZE) { + d.width = CMSAdminUtil.DEFAULT_BUTTON_SIZE; + mOK.setMinimumSize(d); + } + JButton[] buttons = {mOK}; + return CMSAdminUtil.makeJButtonPanel( buttons ); + } + + private JPanel makeContentPane() { + JPanel content = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + content.setLayout(gb3); + //content.setBorder(CMSAdminUtil.makeEtchedBorder()); + + CMSAdminUtil.resetGBC(gbc); + JLabel label1 = CMSAdminUtil.makeJLabel(mResource, PREFIX, "NAME", null); + mNameField = new JLabel(); + CMSAdminUtil.addEntryField(content, label1, mNameField, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel label2 = CMSAdminUtil.makeJLabel(mResource, PREFIX, "CLASS", null); + mClassField = new JLabel(); + CMSAdminUtil.addEntryField(content, label2, mClassField, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel label3 = CMSAdminUtil.makeJLabel(mResource, PREFIX, "DESC", null); + label3.setHorizontalAlignment(JLabel.RIGHT); + gbc.anchor = gbc.NORTHEAST; + gbc. insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,0,0); + gb3.setConstraints(label3, gbc); + content.add(label3); + + CMSAdminUtil.resetGBC(gbc); + mTextArea = new JTextArea("",30,10); + mTextArea.setFont(mClassField.getFont()); + mTextArea.setEditable(false); + mTextArea.setBackground(getBackground()); + JScrollPane scrollPanel = new JScrollPane(mTextArea, + JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + scrollPanel.setAlignmentX(LEFT_ALIGNMENT); + scrollPanel.setAlignmentY(TOP_ALIGNMENT); + scrollPanel.setBackground(getBackground()); + scrollPanel.setBorder(BorderFactory.createEmptyBorder()); + scrollPanel.setPreferredSize(new Dimension(300, 500)); + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx=1.0; + gbc.weighty=1.0; + gb3.setConstraints(scrollPanel, gbc); + content.add(scrollPanel); + + return content; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ViewSelfTestsDialog.java b/base/console/src/com/netscape/admin/certsrv/config/ViewSelfTestsDialog.java new file mode 100644 index 000000000..09d7892ef --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ViewSelfTestsDialog.java @@ -0,0 +1,172 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import javax.swing.table.*; + +/** + * Self Tests Implementation Information viewer + * + * @author Matthew Harmsen + * @author Thomas Kwan + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ViewSelfTestsDialog extends JDialog + implements ActionListener +{ + /*========================================================== + * variables + *==========================================================*/ + private JFrame mParentFrame; + private JTextArea mTextArea; + private JButton mOK; + + /*========================================================== + * constructors + *==========================================================*/ + public ViewSelfTestsDialog( JFrame parent, String title ) + { + super( parent, true ); + mParentFrame = parent; + setSize( 550, 150 ); + setTitle( title ); + setLocationRelativeTo( parent ); + getRootPane().setDoubleBuffered( true ); + setDisplay(); + } + + /*========================================================== + * public methods + *==========================================================*/ + + /** + * show the description + */ + public void showDialog( String desc ) + { + //initialize and setup + mTextArea.setText( CMSAdminUtil.wrapText( desc, 80 ) ); + mTextArea.setCaretPosition( 0 ); + this.show(); + } + + /*========================================================== + * EVENT HANDLER METHODS + *==========================================================*/ + + //=== ACTIONLISTENER ===================== + public void actionPerformed( ActionEvent evt ) + { + if( evt.getSource().equals( mOK ) ) { + this.hide(); + } + } + + /*========================================================== + * private methods + *==========================================================*/ + private void setDisplay() + { + getContentPane().setLayout( new BorderLayout() ); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout( gb ); + + //content panel + JPanel content = makeContentPane(); + CMSAdminUtil.resetGBC( gbc ); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb.setConstraints( content, gbc ); + center.add( content ); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC( gbc ); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints( action, gbc ); + center.add( action ); + + getContentPane().add( "Center", center ); + } + + private JPanel makeActionPane() + { + // add OK button + mOK = new JButton(); + mOK.setText( "OK" ); + mOK.addActionListener( this ); + Dimension d = mOK.getMinimumSize(); + if( d.width < CMSAdminUtil.DEFAULT_BUTTON_SIZE ) { + d.width = CMSAdminUtil.DEFAULT_BUTTON_SIZE; + mOK.setMinimumSize( d ); + } + JButton[] buttons = { mOK }; + return CMSAdminUtil.makeJButtonPanel( buttons ); + } + + private JPanel makeContentPane() + { + JPanel content = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + content.setLayout( gb3 ); + + CMSAdminUtil.resetGBC( gbc ); + mTextArea = new JTextArea( "" ); + mTextArea.setEditable( false ); + mTextArea.setBackground( getBackground() ); + + JScrollPane + scrollPanel = new JScrollPane( mTextArea, + JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); + scrollPanel.setAlignmentX( LEFT_ALIGNMENT ); + scrollPanel.setAlignmentY( TOP_ALIGNMENT ); + scrollPanel.setBackground( getBackground() ); + scrollPanel.setBorder( BorderFactory.createLoweredBevelBorder() ); + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gb3.setConstraints( scrollPanel, gbc ); + content.add( scrollPanel ); + + return content; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/ViewTableModel.java b/base/console/src/com/netscape/admin/certsrv/config/ViewTableModel.java new file mode 100644 index 000000000..f634a182c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/ViewTableModel.java @@ -0,0 +1,40 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; + +/** + * Table Model for viewing configuration parameters + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +public class ViewTableModel extends CMSTableModel { + private static String[] mColumns = {CONFIG, VALUE}; + + public ViewTableModel() { + init(mColumns); + } + + public boolean isCellEditable(int row, int col) { + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java b/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java new file mode 100644 index 000000000..6c92ed61e --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java @@ -0,0 +1,445 @@ +// --- 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.config; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.install.InstallWizardInfo; + +/** + * Base class for the Certificate Extension wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WBaseCertExtensionPage extends WizardBasePanel { + protected JCheckBox mMIMECheckBox, mBasicCheckBox, mExtendedKeyCheckBox; + protected JCheckBox mAKICheckBox, mSKICheckBox; + protected JCheckBox mCACheckBox, mCertPathBox, mKeyUsageBox; + protected JTextField mCertPathText; + protected JTextArea mMIMEText; + protected JLabel mCMCLabel; + protected JButton mPaste; + protected byte[] mDerByte; + protected Color mActiveColor; + protected JCheckBox mSSLClient, mSSLServer, mSSLMail, mObjectSigning, mTimeStamping; + protected JCheckBox mOCSPSigning, mOCSPNoCheck, mAIACheckBox; + protected static final String DEFAULT_CERT_LEN = "100"; + protected String mPanelName; + protected boolean mModified=false; + + public WBaseCertExtensionPage(String panelName) { + super(panelName); + } + + public boolean validatePanel() { + if (mCertPathBox.isSelected()) { + String str = mCertPathText.getText().trim(); + if (str.equals("")) { + setErrorMessage("BLANKLEN"); + return false; + } + + int len = 0; + try { + len = Integer.parseInt(str); + } catch (NumberFormatException e) { + setErrorMessage("NONINTEGER"); + return false; + } + + if (len < 0) { + setErrorMessage("INVALID"); + return false; + } + + } + + if (mMIMECheckBox.isSelected()) { + String derString = mMIMEText.getText().trim(); + if (derString.equals("")) { + setErrorMessage("DERBLANKFIELD"); + return false; + } + } + + return true; + } + + public boolean initializePanel(WizardInfo info) { + if (!mModified) { + boolean basicConstraints = mBasicCheckBox.isSelected(); + boolean extendedKey = mExtendedKeyCheckBox.isSelected(); + boolean derExt = mMIMECheckBox.isSelected(); + + if (basicConstraints) + enableBasicConstraints(basicConstraints, mActiveColor); + else + enableBasicConstraints(basicConstraints, getBackground()); + + enableExtendedKey(extendedKey); + + if (derExt) + enableMIMEExt(derExt, mActiveColor); + else + enableMIMEExt(derExt, getBackground()); + } + + if (info instanceof InstallWizardInfo) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + // If signed by self, no request will be generated + // check if a signing cert installed, make cmc note invisible + String type = wizardInfo.getCertType(); + if ((type.equals(Constants.PR_KRA_TRANSPORT_CERT) && + wizardInfo.isKRACertLocalCA()) || + (type.equals(Constants.PR_SERVER_CERT) && + wizardInfo.isSSLCertLocalCA()) || + type.equals(Constants.PR_OCSP_SIGNING_CERT) || + (type.equals(Constants.PR_CA_SIGNING_CERT) && + wizardInfo.isCACertLocalCA()) || + (type.equals(Constants.PR_SERVER_CERT) || + type.equals(Constants.PR_KRA_TRANSPORT_CERT)) && ( + (wizardInfo.isCAInstalled() && + wizardInfo.isCACertInstalledDone()) || + (wizardInfo.isRAInstalled() && + wizardInfo.isRACertInstalledDone()) || + (wizardInfo.isKRAInstalled() && + wizardInfo.isKRACertInstalledDone()) || + (wizardInfo.isOCSPInstalled() && + wizardInfo.isOCSPCertInstalledDone()) ) ) { + mCMCLabel.setVisible(false); + CMSAdminUtil.repaintComp(mCMCLabel); + } + } else { + mCMCLabel.setVisible(false); + CMSAdminUtil.repaintComp(mCMCLabel); + } + + return true; + } + + protected void enableBasicConstraints(boolean enable, Color color) { + mCACheckBox.setEnabled(enable); + mCertPathBox.setEnabled(enable); + if (enable && !mCertPathBox.isSelected()) { + enableCertPath(!enable, getBackground()); + } else { + enableCertPath(enable, color); + } + CMSAdminUtil.repaintComp(mCACheckBox); + CMSAdminUtil.repaintComp(mCertPathText); + } + + protected void enableCertPath(boolean enable, Color color) { + mCertPathText.setEnabled(enable); + mCertPathText.setEditable(enable); + mCertPathText.setBackground(color); + CMSAdminUtil.repaintComp(mCertPathBox); + } + + protected void enableExtendedKey(boolean enable) { + mSSLClient.setEnabled(enable); + mSSLServer.setEnabled(enable); + mSSLMail.setEnabled(enable); + mObjectSigning.setEnabled(enable); + mTimeStamping.setEnabled(enable); + mOCSPSigning.setEnabled(enable); + + CMSAdminUtil.repaintComp(mSSLClient); + CMSAdminUtil.repaintComp(mSSLServer); + CMSAdminUtil.repaintComp(mSSLMail); + CMSAdminUtil.repaintComp(mObjectSigning); + CMSAdminUtil.repaintComp(mTimeStamping); + CMSAdminUtil.repaintComp(mOCSPSigning); + } + + protected void enableMIMEExt(boolean enable, Color color) { + mMIMEText.setEnabled(enable); + mMIMEText.setEditable(enable); + mMIMEText.setBackground(color); + mPaste.setEnabled(enable); + CMSAdminUtil.repaintComp(mMIMEText); + CMSAdminUtil.repaintComp(mPaste); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea(mResource.getString( + mPanelName+"_TEXT_HEADING_LABEL")); + //"CERTEXTENSIONWIZARD_TEXT_HEADING_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mBasicCheckBox = makeJCheckBox("BASIC"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mBasicCheckBox, gbc); + + mCACheckBox = makeJCheckBox("CA"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, 0,COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(mCACheckBox, gbc); + + JPanel panel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); + + mCertPathBox = makeJCheckBox("CERTPATHLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.insets = new Insets(0, 0, 0, COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridheight = gbc.REMAINDER; + panel.add(mCertPathBox, gbc); + + mCertPathText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.insets = new Insets(0,COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + panel.add(mCertPathText, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE); + add(panel, gbc); + +/* + JTextArea dummy = createTextArea(" ", 1, 5); + CMSAdminUtil.resetGBC(gbc); + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(dummy, gbc); +*/ + + mExtendedKeyCheckBox = makeJCheckBox("EXTENDEDKEY"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mExtendedKeyCheckBox, gbc); + + mSSLClient = makeJCheckBox("SSLCLIENT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, 0, COMPONENT_SPACE); + add(mSSLClient, gbc); + + mSSLServer = makeJCheckBox("SSLSERVER"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, 0, COMPONENT_SPACE); + add(mSSLServer, gbc); + + mSSLMail = makeJCheckBox("EMAIL"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0,COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + add(mSSLMail, gbc); + + mObjectSigning = makeJCheckBox("OBJECTSIGNING"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, 0, COMPONENT_SPACE); + add(mObjectSigning, gbc); + + mTimeStamping = makeJCheckBox("TIMESTAMPING"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mTimeStamping, gbc); + + mOCSPSigning = makeJCheckBox("OCSPSIGNING"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0,COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + add(mOCSPSigning, gbc); + + mAIACheckBox = makeJCheckBox("AIA"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mAIACheckBox, gbc); + + mAKICheckBox = makeJCheckBox("AKI"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mAKICheckBox, gbc); + + mSKICheckBox = makeJCheckBox("SKI"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSKICheckBox, gbc); + + mOCSPNoCheck = makeJCheckBox("OCSPNOCHECK"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mOCSPNoCheck, gbc); + + mCMCLabel = new JLabel(mResource.getString( + mPanelName + "_TEXT_CMC_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mCMCLabel, gbc); + + mKeyUsageBox = makeJCheckBox("KEYUSAGE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mKeyUsageBox, gbc); + mKeyUsageBox.setSelected(true); + + mMIMECheckBox = makeJCheckBox("MIME"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mMIMECheckBox, gbc); + + mMIMEText = new JTextArea("", 40, 70); + JScrollPane scrollPane = new JScrollPane(mMIMEText, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setPreferredSize(new Dimension(50, 30)); + //scrollPane.setAlignmentX(LEFT_ALIGNMENT); + //scrollPane.setAlignmentY(TOP_ALIGNMENT); + scrollPane.setBorder(BorderFactory.createLoweredBevelBorder()); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.BOTH; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + add(scrollPane, gbc); + mActiveColor = mMIMEText.getBackground(); + + mPaste = makeJButton("PASTE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(mPaste, gbc); + + super.init(); + } + + public void actionPerformed(ActionEvent e) { + Object source = e.getSource(); + if (source.equals(mPaste)) { + mMIMEText.paste(); + } else if (source.equals(mBasicCheckBox)) { + if (mBasicCheckBox.isSelected()) + enableBasicConstraints(true, mActiveColor); + else + enableBasicConstraints(false, getBackground()); + } else if (source.equals(mExtendedKeyCheckBox)) { + if (mExtendedKeyCheckBox.isSelected()) + enableExtendedKey(true); + else + enableExtendedKey(false); + } else if (source.equals(mMIMECheckBox)) { + if (mMIMECheckBox.isSelected()) + enableMIMEExt(true, mActiveColor); + else + enableMIMEExt(false, getBackground()); + } else if (source.equals(mCertPathBox)) { + if (mCertPathBox.isSelected()) + enableCertPath(true, mActiveColor); + else + enableCertPath(false, getBackground()); + } + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/WBaseCertRequestPage.java b/base/console/src/com/netscape/admin/certsrv/config/WBaseCertRequestPage.java new file mode 100644 index 000000000..6b9a1667b --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WBaseCertRequestPage.java @@ -0,0 +1,261 @@ +// --- 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.config; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.border.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Certificate wizard page + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WBaseCertRequestPage extends WizardBasePanel { + protected JButton mCopy; + protected JRadioButton mEmailBtn; + protected JRadioButton mURLBtn; + protected JRadioButton mManualBtn; + protected JTextArea mText; + protected JTextField mURLText; + protected JTextField mEmailText, mContactEmailTxt, mNameTxt, mContactPhoneTxt; + protected JLabel mContactPhoneLbl, mContactEmailLbl, mNameLbl; + protected JTextArea mContactText; + + public WBaseCertRequestPage(String panelName) { + super(panelName); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + +/* + JTextArea unixDesc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CERTREQUESTWIZARD_TEXT_UNIXDESC_LABEL"), 80), 3, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(unixDesc, gbc); + + JTextArea ntDesc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CERTREQUESTWIZARD_TEXT_NTDESC_LABEL"), 80), 3, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(ntDesc, gbc); +*/ + + JLabel desc = makeJLabel("DESC"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mManualBtn = makeJRadioButton("MANUAL", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mManualBtn, gbc); + + mText = new JTextArea(null, null, 0, 0); + //mText.setLineWrap(true); + //mText.setWrapStyleWord(true); + JScrollPane scrollPane = new JScrollPane(mText, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setPreferredSize(new Dimension(50, 20)); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.BOTH; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(scrollPane, gbc); + + mCopy = makeJButton("COPY"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(mCopy, gbc); + + mEmailBtn = makeJRadioButton("EMAIL", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mEmailBtn, gbc); + + mEmailText = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mEmailText, gbc); + + mURLBtn = makeJRadioButton("URL", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mURLBtn, gbc); + + mURLText = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mURLText, gbc); + + ButtonGroup methodGroup = new ButtonGroup(); + methodGroup.add(mEmailBtn); + methodGroup.add(mURLBtn); + methodGroup.add(mManualBtn); + + mContactText = new JTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "COPYCERTREQUESTWIZARD_TEXT_CONTACT_LABEL"), 80), 2, 80); + mContactText.setBackground(getBackground()); + mContactText.setEditable(false); + mContactText.setCaretColor(getBackground()); + CMSAdminUtil.resetGBC(gbc); + gbc.weightx = 1.0; + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mContactText, gbc); + + JPanel panel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); + //panel.setBorder(new EtchedBorder()); + + CMSAdminUtil.resetGBC(gbc); + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, 0); + add(panel, gbc); + + mNameLbl = makeJLabel("NAME"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel.add(mNameLbl, gbc); + + mNameTxt = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + panel.add(mNameTxt, gbc); + + mContactEmailLbl = makeJLabel("EMAILADDRESS"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel.add(mContactEmailLbl, gbc); + + mContactEmailTxt = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + panel.add(mContactEmailTxt, gbc); + + mContactPhoneLbl = makeJLabel("PHONE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel.add(mContactPhoneLbl, gbc); + + mContactPhoneTxt = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + panel.add(mContactPhoneTxt, gbc); + + JLabel dummy = new JLabel(" "); + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.anchor = gbc.NORTHWEST; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + panel.add(dummy, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void actionPerformed(ActionEvent event) { + if (event.getSource().equals(mCopy)) { + mText.copy(); + } + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java b/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java new file mode 100644 index 000000000..97774727b --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java @@ -0,0 +1,493 @@ +// --- 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.config; + +import java.util.*; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * CA signing cert for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WBaseDNPage extends WizardBasePanel implements IWizardPanel { + protected JTextField mCNText, mOUText, mOText, mLText, mSTText, mCText; + protected JTextArea mSubjectDNText; + public static final String CN = "CN="; + public static final String OU = "OU="; + public static final String O = "O="; + public static final String L = "L="; + public static final String ST = "ST="; + public static final String C = "C="; + public static final String cn = "cn="; + public static final String ou = "ou="; + public static final String o = "o="; + public static final String l = "l="; + public static final String st = "st="; + public static final String c = "c="; + protected JRadioButton mDNComponents; + protected JRadioButton mDNString; + protected JTextField mSubjectStringText; + protected JLabel cnLabel; + protected JLabel ouLabel; + protected JLabel oLabel; + protected JLabel lLabel; + protected JLabel stLabel; + protected JLabel cLabel; + protected JLabel subjectDNLabel; + protected Color mActiveColor; + //protected JTextArea dnDesc; + protected boolean displayWarning=false; + protected String mPanelName; + + + public WBaseDNPage(String panelName) { + super(panelName); + mPanelName = panelName; + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean validatePanel() { + String str = ""; + if (mDNComponents.isSelected()) { + str = mOText.getText().trim(); + } else { + String dnString = mSubjectStringText.getText().trim(); + StringTokenizer tokenizer = new StringTokenizer(dnString, ","); + while (tokenizer.hasMoreTokens()) { + String element = ((String)tokenizer.nextToken()).trim(); + if (element.startsWith(O) || element.startsWith(o)) { + int index = element.indexOf("="); + if (index > -1) { + str = element.substring(index+1); + break; + } + } + } + } + + if (str.equals("") && !displayWarning) { + String errorMsg = + mResource.getString(mPanelName+"_DIALOG_MISSINGO_MESSAGE"); + JOptionPane.showMessageDialog(new JFrame(), errorMsg, "Warning", + JOptionPane.WARNING_MESSAGE, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_WARN_ICON)); +/* + WarningDialog dialog = new WarningDialog(new JFrame(), + "_TEXT_MISSINGO_LABEL"); +*/ + displayWarning = true; + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + } + + public void getUpdateInfo(WizardInfo info) { + } + + protected void populateDN(String str) { + StringTokenizer tokenizer = new StringTokenizer(str, ","); + boolean isDNString = false; + while (tokenizer.hasMoreTokens()) { + String element = (String)tokenizer.nextToken(); + element = element.trim(); + int index = element.indexOf('='); + String val = element.substring(index+1); + if (element.startsWith(CN) || element.startsWith(cn)) { + mCNText.setText(val); + } else if (element.startsWith(OU) || element.startsWith(ou)) { + mOUText.setText(val); + } else if (element.startsWith(O) || element.startsWith(o)) { + mOText.setText(val); + } else if (element.startsWith(L) || element.startsWith(l)) { + mLText.setText(val); + } else if (element.startsWith(ST) || element.startsWith(st)) { + mSTText.setText(val); + } else if (element.startsWith(C) || element.startsWith(c)) { + mCText.setText(val); + } else { + isDNString = true; + } + } + + mSubjectStringText.setText(str); + + if (isDNString) { + mDNString.setSelected(true); + enableFields(false, getBackground()); + } else { + mDNComponents.setSelected(true); + enableFields(true, mActiveColor); + } + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + +/* + JLabel currentDN = makeJLabel("SUBJECTNAME"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(currentDN, gbc); + + dnDesc = createTextArea(" ", 2, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(dnDesc, gbc); +*/ + +/* + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT2WIZARD_TEXT_DN_LABEL"), 80), 1, 80); +*/ + + JTextArea desc = createTextArea(mResource.getString( + mPanelName+"_LABEL_DN_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mDNComponents = makeJRadioButton("DNCOMP", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mDNComponents, gbc); + + cnLabel = makeJLabel("CN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(cnLabel, gbc); + + mCNText = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mCNText, gbc); + +/* + JTextArea dummy = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, cnLabel, mCNText, dummy, gbc); +*/ + //CMSAdminUtil.addComponents(this, cnLabel, mCNText, gbc); + + ouLabel = makeJLabel("OU"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(ouLabel, gbc); + + mOUText = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mOUText, gbc); + +/* + JTextArea dummy1 = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, ouLabel, mOUText, dummy1, gbc); +*/ +// CMSAdminUtil.addComponents(this, ouLabel, mOUText, gbc); + + oLabel = makeJLabel("O"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(oLabel, gbc); + + mOText = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mOText, gbc); + +/* + JTextArea dummy2 = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, oLabel, mOText, dummy2, gbc); +*/ + //CMSAdminUtil.addComponents(this, oLabel, mOText, gbc); + + lLabel = makeJLabel("LOCALITY"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(lLabel, gbc); + + mLText = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mLText, gbc); +/* + JTextArea dummy3 = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, lLabel, mLText, dummy3, gbc); +*/ + //CMSAdminUtil.addComponents(this, lLabel, mLText, gbc); + + stLabel = makeJLabel("STATE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(stLabel, gbc); + + mSTText = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSTText, gbc); +/* + JTextArea dummy4 = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, stLabel, mSTText, dummy4, gbc); +*/ + //CMSAdminUtil.addComponents(this, stLabel, mSTText, gbc); + + cLabel = makeJLabel("COUNTRY"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(cLabel, gbc); + + mCText = new JTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mCText, gbc); +/* + JTextArea dummy5 = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, cLabel, mCText, dummy5, gbc); +*/ + //CMSAdminUtil.addComponents(this, cLabel, mCText, gbc); + + subjectDNLabel = makeJLabel("SELECTEDDN"); + mSubjectDNText = new SubjectDNTextArea(3, 30); + mSubjectDNText.setLineWrap(true); + mSubjectDNText.setBackground(getBackground()); + mSubjectDNText.setEditable(false); + mSubjectDNText.setCaretColor(getBackground()); + CMSAdminUtil.resetGBC(gbc); + //gbc.weighty = 1.0; + CMSAdminUtil.addComponents(this, subjectDNLabel, mSubjectDNText, gbc); + + mDNString = makeJRadioButton("DNSTRING", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mDNString, gbc); + + ButtonGroup group = new ButtonGroup(); + group.add(mDNString); + group.add(mDNComponents); + + mSubjectStringText = new JTextField(256); +/* + mSubjectStringText = new JTextArea(null, null, 0, 0); + mSubjectStringText.setBorder(BorderFactory.createLineBorder(Color.black)); + JScrollPane scrollPane = new JScrollPane(mSubjectStringText, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setPreferredSize(new Dimension(50, 20)); +*/ + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + //gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + add(mSubjectStringText, gbc); + //mSubjectStringText.setLineWrap(true); + mActiveColor = mCNText.getBackground(); + + CMSAdminUtil.resetGBC(gbc); + JLabel d1 = new JLabel(); + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridheight = gbc.REMAINDER; + gbc.gridwidth = gbc.REMAINDER; + add(d1, gbc); + + + mCNText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + mOUText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + mOText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + mLText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + mSTText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + mCText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + + super.init(); + } + + protected void enableFields(boolean enable, Color color) { + CMSAdminUtil.enableJTextField(mCNText, enable, color); + CMSAdminUtil.enableJTextField(mOUText, enable, color); + CMSAdminUtil.enableJTextField(mOText, enable, color); + CMSAdminUtil.enableJTextField(mLText, enable, color); + CMSAdminUtil.enableJTextField(mSTText, enable, color); + CMSAdminUtil.enableJTextField(mCText, enable, color); + cnLabel.setEnabled(enable); + ouLabel.setEnabled(enable); + oLabel.setEnabled(enable); + lLabel.setEnabled(enable); + stLabel.setEnabled(enable); + cLabel.setEnabled(enable); + subjectDNLabel.setEnabled(enable); + CMSAdminUtil.repaintComp(cnLabel); + CMSAdminUtil.repaintComp(ouLabel); + CMSAdminUtil.repaintComp(oLabel); + CMSAdminUtil.repaintComp(lLabel); + CMSAdminUtil.repaintComp(stLabel); + CMSAdminUtil.repaintComp(cLabel); + CMSAdminUtil.repaintComp(subjectDNLabel); + if (enable) + CMSAdminUtil.enableJTextField(mSubjectStringText, !enable, + getBackground()); + else + CMSAdminUtil.enableJTextField(mSubjectStringText, !enable, + mActiveColor); + } + + public void actionPerformed(ActionEvent e) { + if (mDNComponents.isSelected()) { + enableFields(true, mActiveColor); + } else { + enableFields(false, getBackground()); + } + } + + public class SubjectDNTextArea extends JTextArea implements + DocumentListener { + + public SubjectDNTextArea(int rows, int columns) { + super(rows, columns); + } + + public void insertUpdate(DocumentEvent e) { + super.setText(updateStr()); + } + + public void removeUpdate(DocumentEvent e) { + super.setText(updateStr()); + } + + public void changedUpdate(DocumentEvent e) { + super.setText(updateStr()); + } + + private String updateStr() { + String cnStr = mCNText.getText().trim(); + String ouStr = mOUText.getText().trim(); + String oStr = mOText.getText().trim(); + String lStr = mLText.getText().trim(); + String stStr = mSTText.getText().trim(); + String cStr = mCText.getText().trim(); + + String result = ""; + result = result+appendStr(result, CN, cnStr); + result = result+appendStr(result, OU, ouStr); + result = result+appendStr(result, O, oStr); + result = result+appendStr(result, L, lStr); + result = result+appendStr(result, ST, stStr); + result = result+appendStr(result, C, cStr); + + return result; + } + + private String appendStr(String origStr, String prefix, String suffix) { + String result = ""; + if (suffix.equals("")) + return result; + + result = prefix + suffix; + if (!origStr.equals("")) { + result = ", "+result; + } + return result; + } + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/WBaseDNValidityPage.java b/base/console/src/com/netscape/admin/certsrv/config/WBaseDNValidityPage.java new file mode 100644 index 000000000..3a5837624 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WBaseDNValidityPage.java @@ -0,0 +1,207 @@ +// --- 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.config; + +import java.awt.*; +import javax.swing.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * CA signing cert for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WBaseDNValidityPage extends WizardBasePanel { + public JTextField mCNText, mOUText, mOText, mLText, mSTText, mCText; + public JTextField mValidityText; + public JComboBox mUnitBox; + public JLabel validityLbl; + public JTextArea mSubjectDNText, desc1; + public static final String CN = "CN="; + public static final String OU = "OU="; + public static final String O = "O="; + public static final String L = "L="; + public static final String ST = "ST="; + public static final String C = "C="; + + public WBaseDNValidityPage(String panelName) { + super(panelName); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT2WIZARD_TEXT_DN_LABEL"), 80), 1, 80); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + JLabel cnLabel = makeJLabel("CN"); + mCNText = new JTextField(30); +/* + JTextArea dummy = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, cnLabel, mCNText, dummy, gbc); +*/ + CMSAdminUtil.addComponents(this, cnLabel, mCNText, gbc); + + JLabel ouLabel = makeJLabel("OU"); + mOUText = new JTextField(30); +/* + JTextArea dummy1 = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, ouLabel, mOUText, dummy1, gbc); +*/ + CMSAdminUtil.addComponents(this, ouLabel, mOUText, gbc); + + JLabel oLabel = makeJLabel("O"); + mOText = new JTextField(30); +/* + JTextArea dummy2 = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, oLabel, mOText, dummy2, gbc); +*/ + CMSAdminUtil.addComponents(this, oLabel, mOText, gbc); + + JLabel lLabel = makeJLabel("LOCALITY"); + mLText = new JTextField(30); +/* + JTextArea dummy3 = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, lLabel, mLText, dummy3, gbc); +*/ + CMSAdminUtil.addComponents(this, lLabel, mLText, gbc); + + JLabel stLabel = makeJLabel("STATE"); + mSTText = new JTextField(30); +/* + JTextArea dummy4 = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, stLabel, mSTText, dummy4, gbc); +*/ + CMSAdminUtil.addComponents(this, stLabel, mSTText, gbc); + + JLabel cLabel = makeJLabel("COUNTRY"); + mCText = new JTextField(30); +/* + JTextArea dummy5 = createTextArea(" ", 1, 1); + CMSAdminUtil.addComponents(this, cLabel, mCText, dummy5, gbc); +*/ + CMSAdminUtil.addComponents(this, cLabel, mCText, gbc); + + JLabel subjectDNLabel = makeJLabel("SELECTEDDN"); + mSubjectDNText = new SubjectDNTextArea(3, 30); + mSubjectDNText.setLineWrap(true); + mSubjectDNText.setBackground(getBackground()); + mSubjectDNText.setEditable(false); + mSubjectDNText.setCaretColor(getBackground()); + CMSAdminUtil.resetGBC(gbc); + //gbc.weighty = 1.0; + CMSAdminUtil.addComponents(this, subjectDNLabel, mSubjectDNText, gbc); + + desc1 = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT2WIZARD_TEXT_VALIDITY_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc1, gbc); + + validityLbl = makeJLabel("VALIDITY"); + mValidityText = new JTextField(5); + mUnitBox = makeJComboBox("VALIDITY"); + gbc.weighty = 1.0; + CMSAdminUtil.addComponents(this, validityLbl, mValidityText, mUnitBox, + gbc); + + mCNText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + mOUText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + mOText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + mLText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + mSTText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + mCText.getDocument().addDocumentListener((DocumentListener)mSubjectDNText); + + super.init(); + } + + public class SubjectDNTextArea extends JTextArea implements + DocumentListener { + + public SubjectDNTextArea(int rows, int columns) { + super(rows, columns); + } + + public void insertUpdate(DocumentEvent e) { + super.setText(updateStr()); + } + + public void removeUpdate(DocumentEvent e) { + super.setText(updateStr()); + } + + public void changedUpdate(DocumentEvent e) { + super.setText(updateStr()); + } + + private String updateStr() { + String cnStr = mCNText.getText().trim(); + String ouStr = mOUText.getText().trim(); + String oStr = mOText.getText().trim(); + String lStr = mLText.getText().trim(); + String stStr = mSTText.getText().trim(); + String cStr = mCText.getText().trim(); + + String result = ""; + result = result+appendStr(result, CN, cnStr); + result = result+appendStr(result, OU, ouStr); + result = result+appendStr(result, O, oStr); + result = result+appendStr(result, L, lStr); + result = result+appendStr(result, ST, stStr); + result = result+appendStr(result, C, cStr); + + return result; + } + + private String appendStr(String origStr, String prefix, String suffix) { + String result = ""; + if (suffix.equals("")) + return result; + + result = prefix + suffix; + if (!origStr.equals("")) { + result = ", "+result; + } + return result; + } + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/WBaseKeyPage.java b/base/console/src/com/netscape/admin/certsrv/config/WBaseKeyPage.java new file mode 100644 index 000000000..1266099b1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WBaseKeyPage.java @@ -0,0 +1,248 @@ +// --- 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.config; + +import java.awt.*; +import javax.swing.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Setup CA signing cert for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WBaseKeyPage extends WizardBasePanel { + protected JComboBox mKeyTypeBox; + protected JComboBox mKeyLengthBox; + //protected JComboBox mTokenBox; + //protected JPasswordField mPasswordText; + protected JTextField mKeyLengthText; + + public WBaseKeyPage(String panelName) { + super(panelName); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT1CUSTOMWIZARD_TEXT_HEADING_LABEL"), 80), 2, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + +/* + JTextArea desc1 = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT1CUSTOMWIZARD_TEXT_TOKENHEADING_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc1, gbc); + + JLabel tokenLbl = makeJLabel("TOKEN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(tokenLbl, gbc); + + mTokenBox = new JComboBox(); + mTokenBox.addItem("internal"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,0, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mTokenBox, gbc); + + JTextArea dummy = createTextArea(" ", 1, 5); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,0, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(dummy, gbc); +*/ + +/* + JTextArea desc2 = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT1CUSTOMWIZARD_TEXT_HARDWARE_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(2*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc2, gbc); + + JLabel pwdLbl = makeJLabel("PWD"); + mPasswordText = makeJPasswordField(20); + //JTextArea dummy1 = createTextArea(" ", 1, 10); + //CMSAdminUtil.addComponents(this, pwdLbl, mPasswordText, dummy1, gbc); + CMSAdminUtil.addComponents(this, pwdLbl, mPasswordText, gbc); +*/ + + JTextArea desc3 = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT1CUSTOMWIZARD_TEXT_KEY_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(2*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc3, gbc); + +/* + JLabel keyTypeLbl = makeJLabel("KEYTYPE"); + mKeyTypeBox = makeJComboBox("KEYTYPE"); + //JTextArea dummy2 = createTextArea(" ", 1, 10); + //CMSAdminUtil.addComponents(this, keyTypeLbl, mKeyTypeBox, dummy2, gbc); + CMSAdminUtil.addComponents(this, keyTypeLbl, mKeyTypeBox, gbc); +*/ + + JPanel panel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); + + JLabel keyTypeLbl = makeJLabel("KEYTYPE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(keyTypeLbl, gbc); + + mKeyTypeBox = makeJComboBox("KEYTYPE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + panel.add(mKeyTypeBox, gbc); + + JLabel keyLengthLbl = makeJLabel("KEYLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + //gbc.weighty = 1.0; + gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE,0,COMPONENT_SPACE); + panel.add(keyLengthLbl, gbc); + + mKeyLengthBox = makeJComboBox("KEYLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + //gbc.weighty = 1.0; + gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE,0,COMPONENT_SPACE); + panel.add(mKeyLengthBox, gbc); + + JLabel unitLbl = makeJLabel("UNITS"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + //gbc.weighty = 1.0; + gbc.insets = new Insets(0, 0,0,COMPONENT_SPACE); + panel.add(unitLbl, gbc); + + JPanel panel1 = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + panel1.setLayout(gb2); + + JLabel keyLengthCustomLbl = makeJLabel("KEYLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE,0,COMPONENT_SPACE); + panel1.add(keyLengthCustomLbl, gbc); + + mKeyLengthText = makeJTextField(7); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, 0); + panel1.add(mKeyLengthText, gbc); + + JLabel unit1Lbl = makeJLabel("UNITS"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, COMPONENT_SPACE); + panel1.add(unit1Lbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(panel, gbc); + + JTextArea keyLengthCustomText = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT1CUSTOMWIZARD_TEXT_CUSTOMKEY_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(keyLengthCustomText, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, 0, + COMPONENT_SPACE, COMPONENT_SPACE); + add(panel1, gbc); + + super.init(); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java b/base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java new file mode 100644 index 000000000..195979f9c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java @@ -0,0 +1,508 @@ +// --- 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.config; + +import java.util.*; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.border.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.install.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Certificate wizard page + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WBaseManualCertRequestPage extends WizardBasePanel { + + public static final String SERVER_CERT = "server"; + public static final String CLIENT_CERT = "client"; + public static final String CA_CERT = "ca"; + public static final String RA_CERT = "ra"; + public static final String OCSP_CERT = "ocsp"; + public static final String OBJECT_SIGNING_CERT = "objSignClient"; + public static final String OTHER_CERT = "other"; + public static final String ROUTER_CERT = "router"; // deprecated + public static final String CEP_CERT = "CEP-Request"; + + public static final String CERT_TYPE = "certType"; + public static final String PKCS10_REQUEST = "pkcs10Request"; + public static final String CMC_REQUEST = "cmcRequest"; + + protected JButton mCopy; + protected JTextArea mText; + protected String mPanelName, mDir; + protected JTextArea mFileName; + protected JTextArea mDesc; + + protected JTextField mHostText, mPortText; + protected JLabel mHostLbl, mPortLbl; + protected JLabel mSSLText; + protected JCheckBox mSSL; // ssl or not + protected String mHost, mPort; + protected JLabel mSendNowText; + protected JCheckBox mSendNowBox; + protected Color mActiveColor; + public static final int MAX_PORT = 65535; + public static final int MIN_PORT = 1; + protected String mReq = null; + protected String mReqType = null; + protected String mReqFormat = null; + + public WBaseManualCertRequestPage(String panelName) { + super(panelName); + mPanelName = panelName; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + mReqType = wizardInfo.getCertType(); + mReqFormat = wizardInfo.getReqFormat(mReqType); + + if (mReqType.equals(Constants.PR_CA_SIGNING_CERT)){ + mReq = (String)wizardInfo.get(ConfigConstants.CA_CERT_REQUEST); + }else if (mReqType.equals(Constants.PR_SERVER_CERT) ){ + mReq = (String)wizardInfo.get(ConfigConstants.SSL_CERT_REQUEST); + }else if (mReqType.equals(Constants.PR_KRA_TRANSPORT_CERT)){ + mReq = (String)wizardInfo.get(ConfigConstants.KRA_CERT_REQUEST); + }else if (mReqType.equals(Constants.PR_OCSP_SIGNING_CERT)){ + mReq = (String)wizardInfo.get(ConfigConstants.OCSP_CERT_REQUEST); + }else if (mReqType.equals(Constants.PR_RA_SIGNING_CERT)){ + mReq = (String)wizardInfo.get(ConfigConstants.RA_CERT_REQUEST); + Debug.println("no request got from ra stage"); + }else { + setErrorMessage("Wrong cert request type!"); + return false; + } + + if (mReq == null || mReq.equals("")){ + mReq = wizardInfo.getCertRequest(); + } + if (mReqFormat.equals(ConfigConstants.PR_REQUEST_PKCS10)){ + + // Break the long single line:header,64 byte lines,trailer + // Assuming this is the only format we generate. + String CERT_NEW_REQUEST_HEADER = "-----BEGIN NEW CERTIFICATE REQUEST-----"; + String CERT_NEW_REQUEST_TRAILER = "-----END NEW CERTIFICATE REQUEST-----"; + int head = mReq.indexOf(CERT_NEW_REQUEST_HEADER); + int trail = mReq.indexOf(CERT_NEW_REQUEST_TRAILER); + String unwrapped = + mReq.substring(head+CERT_NEW_REQUEST_HEADER.length(),trail); + String str = CERT_NEW_REQUEST_HEADER + "\n"; + int len = unwrapped.length(); + for (int i = 0; i < len; i=i+64){ + if (i+64 < len) + str = str + unwrapped.substring(i,i+64) +"\n"; + else + str = str + unwrapped.substring(i,len) +"\n"; + } + str = str + CERT_NEW_REQUEST_TRAILER; + mReq = str; + } else if (mReqFormat.equals(ConfigConstants.PR_REQUEST_CMC)){ + String str = ""; + int len = mReq.length(); + for (int i = 0; i < len; i=i+64){ + if (i+64 < len) + str = str + mReq.substring(i,i+64) +"\n"; + else + str = str + mReq.substring(i,len) +"\n"; + } + mReq = str; + } + + if (mReq == null) + return false; + mText.setText(mReq); + + mText.selectAll(); + setBorder(makeTitledBorder(mPanelName)); + + mDir = wizardInfo.getCertRequestDir(); + String str = mResource.getString(mPanelName+"_TEXT_FILELOC_LABEL")+mDir+"."; + mFileName.setText(str); + + if (mSendNowBox.isSelected()) + enableFields(true, mActiveColor); + else + enableFields(false, getBackground()); + + String host = wizardInfo.getCMHost(); + if (host != null && !host.equals("")) + mHostText.setText(host); + String port = wizardInfo.getCMEEPort(); + if (port != null && !port.equals("")) + mPortText.setText(port); + + String portType = wizardInfo.getCMEEType(); + if (portType != null && portType.equals("http")) + mSSL.setSelected(false); + + String desc = ""; + if (!wizardInfo.isNewRequest()) { + desc = mResource.getString(mPanelName+"_TEXT_IGNOR_LABEL")+ + "\n"; + } + String certType = wizardInfo.getCertType(); + if (mReqFormat.equals(ConfigConstants.PR_REQUEST_PKCS10)) { + desc = desc + mResource.getString( mPanelName+"_TEXT_DESC_LABEL"); + } else if (mReqFormat.equals(ConfigConstants.PR_REQUEST_CMC)) { + desc = desc + mResource.getString( + mPanelName+"_TEXT_CMCDESC_LABEL"); + } + mDesc.setText(desc); + + return true; + } + + public boolean validatePanel() { + if (!mSendNowBox.isSelected()) { + mHost = ""; + mPort = ""; + return true; + } + + mHost = mHostText.getText().trim(); + mPort = mPortText.getText().trim(); + if (mHost.equals("")) { + setErrorMessage("BLANKHOST"); + return false; + } + if (mPort.equals("")) { + setErrorMessage("BLANKPORT"); + return false; + } + + try { + int portnumber = Integer.parseInt(mPort); + if (portnumber < MIN_PORT || portnumber > MAX_PORT) { + setErrorMessage("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("INVALIDPORT"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + if (!mSendNowBox.isSelected()) + return true; + + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mHost != null && !mHost.equals("")) + wizardInfo.setCMHost(mHost); + if (mPort != null && !mPort.equals("")) + wizardInfo.setCMEEPort(mPort); + if (mSSL.isSelected()) + wizardInfo.setCMEEType("https"); + else + wizardInfo.setCMEEType("http"); + + CMSRequestCert requestCertCgi = new CMSRequestCert(); + requestCertCgi.initialize(wizardInfo); + Hashtable data = new Hashtable(); + + String certType = null; + if (mReqType.equals(Constants.PR_CA_SIGNING_CERT)){ + data.put("profileId", "caCACert"); + }else if (mReqType.equals(Constants.PR_SERVER_CERT) || + mReqType.equals(Constants.PR_KRA_TRANSPORT_CERT)){ + data.put("profileId", "caServerCert"); + }else if (mReqType.equals(Constants.PR_OCSP_SIGNING_CERT)){ + data.put("profileId", "caOCSPCert"); + }else if (mReqType.equals(Constants.PR_RA_SIGNING_CERT)){ + data.put("profileId", "caRACert"); + }else { + setErrorMessage("Wrong cert request type!"); + return false; + } + + if (mReqFormat.equals(ConfigConstants.PR_REQUEST_PKCS10)){ + data.put("cert_request_type", "pkcs10"); + data.put("cert_request", mReq); + } else { + data.put("cert_request_type", "cmc"); + data.put("cert_request", mReq); + // test full response, but we don't really need it + // data.put("fullResponse", "true"); + } + + startProgressStatus(); + boolean ready = requestCertCgi.requestCert(data); + endProgressStatus(); + + if (!ready) { + String str = requestCertCgi.getErrorMessage(); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + return ready; + } + wizardInfo.setRequestSent(ready); + + //save the stage + String reqID = wizardInfo.getRequestID(); + String reqStatus = wizardInfo.getRequestStatus(); + String reqError = wizardInfo.getRequestError(); + + wizardInfo.setX509RequestID(reqID); + wizardInfo.setX509RequestStatus(reqStatus); + if (reqError != null) + wizardInfo.setX509RequestError(reqError); + + // rejected request should not be saved as requestSuccStage!! + if ( (reqID != null) && !reqID.equals("") && + (wizardInfo.getRequestError() == null) && + (reqStatus.equals(Constants.PR_REQUEST_SUCCESS) + || reqStatus.equals(Constants.PR_REQUEST_PENDING) + || reqStatus.equals(Constants.PR_REQUEST_SVC_PENDING)) ) { + data = new Hashtable(); + + ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo(); + data.put(ConfigConstants.TASKID, TaskId.TASK_REQUEST_SUCCESS); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + data.put(ConfigConstants.PR_SERVER_ROOT, + consoleInfo.get(ConfigConstants.PR_SERVER_ROOT)); + data.put(ConfigConstants.PR_CERT_INSTANCE_NAME, + consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME)); + data.put(Constants.PR_CERTIFICATE_TYPE, mReqType); + data.put(mReqType+ConfigConstants.PR_REQUEST_ID, reqID); + + data.put(ConfigConstants.CA_EEPORT, mPortText.getText()); + data.put(ConfigConstants.CA_EETYPE, wizardInfo.getCMEEType()); + data.put(ConfigConstants.CA_HOST, mHostText.getText()); + startProgressStatus(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(wizardInfo); + ready = configCertCgi.configCert(data); + endProgressStatus(); + + if (!ready) { + String str = configCertCgi.getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + return ready; + } + } + return ready; + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + mDesc = createTextArea(mResource.getString( + mPanelName+"_TEXT_DESC_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mDesc, gbc); + + mActiveColor = mDesc.getBackground(); + + mText = new JTextArea(null, null, 10, 10); + //mText.setLineWrap(true); + //mText.setWrapStyleWord(true); + mText.setEditable(false); + JScrollPane scrollPane = new JScrollPane(mText, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setPreferredSize(new Dimension(50, 50)); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.BOTH; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.weighty = 0.5; + gbc.gridwidth = gbc.REMAINDER; + add(scrollPane, gbc); + + mCopy = makeJButton("COPY"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(mCopy, gbc); + + mFileName = createTextArea(""); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(mFileName, gbc); + + JLabel dummy = new JLabel(" "); + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.anchor = gbc.NORTHWEST; + gbc.weighty = 0.5; + gbc.fill = gbc.BOTH; + add(dummy, gbc); + + mSendNowBox = makeJCheckBox("SENDNOW", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSendNowBox, gbc); + + mSendNowText = new JLabel(mResource.getString( + mPanelName + "_TEXT_SENDNOW_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSendNowText, gbc); + + mHostLbl = makeJLabel("HOST"); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mHostLbl, gbc); + + mHostText = makeJTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mHostText, gbc); + mActiveColor = mHostText.getBackground(); + + mPortLbl = makeJLabel("PORT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mPortLbl, gbc); + + mPortText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mPortText, gbc); + + mSSLText = new JLabel(mResource.getString( + mPanelName+"_TEXT_SSL_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSSLText, gbc); + + mSSL = makeJCheckBox("SSL", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSSL, gbc); + + JLabel label = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(label, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void actionPerformed(ActionEvent event) { + if (event.getSource().equals(mCopy)) { + mText.copy(); + } + if (mSendNowBox.isSelected()) { + enableFields(true, mActiveColor); + } else { + enableFields(false, getBackground()); + } + } + + protected void enableFields(boolean enabled, Color color) { + mSendNowText.setEnabled(enabled); + //mSendNowText.setEditable(enabled); + CMSAdminUtil.repaintComp(mSendNowText); + mHostLbl.setEnabled(enabled); + mPortLbl.setEnabled(enabled); + mHostText.setEnabled(enabled); + mHostText.setEditable(enabled); + mHostText.setBackground(color); + mPortText.setEnabled(enabled); + mPortText.setEditable(enabled); + mPortText.setBackground(color); + CMSAdminUtil.repaintComp(mHostLbl); + CMSAdminUtil.repaintComp(mHostText); + CMSAdminUtil.repaintComp(mPortLbl); + CMSAdminUtil.repaintComp(mPortText); + mSSLText.setEnabled(enabled); + //mSSLText.setEditable(enabled); + CMSAdminUtil.repaintComp(mSSLText); + mSSL.setEnabled(enabled); + //mSSL.setEditable(enabled); + //mSSL.setBackground(color); + CMSAdminUtil.repaintComp(mSSL); + + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/WBaseValidityPage.java b/base/console/src/com/netscape/admin/certsrv/config/WBaseValidityPage.java new file mode 100644 index 000000000..61d9506e6 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WBaseValidityPage.java @@ -0,0 +1,258 @@ +// --- 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.config; + +import java.awt.*; +import java.text.*; +import java.util.*; +import javax.swing.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * CA signing cert for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WBaseValidityPage extends WizardBasePanel { + protected String mPanelName = ""; + protected JTextField mBYear, mBMonth, mBDay, mBHour, mBMin, mBSec; + protected JTextField mEYear, mEMonth, mEDay, mEHour, mEMin, mESec; + protected final static String DATE_PATTERN = "dd/MM/yyyy:HH:mm:ss"; + protected Date mBeforeDate, mAfterDate; + protected boolean mWarningDisplayed = false; + + public WBaseValidityPage(String panelName) { + super(panelName); + mPanelName = panelName; + } + + public boolean validatePanel() { + String beginYear = mBYear.getText().trim(); + String afterYear = mEYear.getText().trim(); + String beginMonth = mBMonth.getText().trim(); + String afterMonth = mEMonth.getText().trim(); + String beginDay = mBDay.getText().trim(); + String afterDay = mEDay.getText().trim(); + String beginHour = mBHour.getText().trim(); + String afterHour = mEHour.getText().trim(); + String beginMin = mBMin.getText().trim(); + String afterMin = mEMin.getText().trim(); + String beginSec = mBSec.getText().trim(); + String afterSec = mESec.getText().trim(); + + int bYear = Integer.parseInt(beginYear); + int aYear = Integer.parseInt(afterYear); + +/* +POSIX timestamps used in most UNIX systems are 32-bit signed integers, +which gives you 2^31 seconds or about 68 years of useful time. The +epoch is 1970-01-01 00:00:00, so the counter will overflow sometime in +January 2038. +*/ + // if (bYear > 2032 || aYear > 2032) { + if (bYear > 2037 || aYear > 2037) { + String errorMsg = mResource.getString(mPanelName+ + "_LABEL_MAXYEAR_LABEL"); + JOptionPane.showMessageDialog(mParent, errorMsg, "Warning", + JOptionPane.WARNING_MESSAGE, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_WARN_ICON)); + return false; + } + + String beginDateStr = beginDay+"/"+beginMonth+"/"+beginYear+":" + +beginHour+":"+beginMin+":"+beginSec; + String endDateStr = afterDay+"/"+afterMonth+"/"+afterYear+":" + +afterHour+":"+afterMin+":"+afterSec; + + SimpleDateFormat format = new SimpleDateFormat(DATE_PATTERN); + format.setLenient(false); + mBeforeDate = null; + mAfterDate = null; + + try { + mBeforeDate = format.parse(beginDateStr); + } catch (ParseException e) { + setErrorMessage("INVALIDBEGINDATE"); + return false; + } + + try { + mAfterDate = format.parse(endDateStr); + } catch (ParseException e) { + setErrorMessage("INVALIDENDDATE"); + return false; + } + + if (mAfterDate.before(mBeforeDate)) { + setErrorMessage("SMALLAFTERDATE"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea heading = createTextArea(mResource.getString( + mPanelName+"_LABEL_VALIDITY_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(heading, gbc); + + JLabel blank = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(blank, gbc); + + JLabel yearLbl = makeJLabel("YEAR"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(yearLbl, gbc); + + JLabel monthLbl = makeJLabel("MONTH"); + add(monthLbl, gbc); + + JLabel dayLbl = makeJLabel("DAY"); + add(dayLbl, gbc); + + JLabel hourLbl = makeJLabel("HOUR"); + add(hourLbl, gbc); + + JLabel minLbl = makeJLabel("MIN"); + add(minLbl, gbc); + + JLabel secLbl = makeJLabel("SEC"); + gbc.gridwidth = gbc.REMAINDER; + add(secLbl, gbc); + + JLabel beginLbl = makeJLabel("BEGIN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(beginLbl, gbc); + + //DateFormat dateFormat = DataFormat.getDateTimeInstance( + // DateFormat.FULL,DateFormat.MEDIUM); + + Calendar nowDate = Calendar.getInstance(); + + Calendar afterDate = (Calendar)nowDate.clone(); + afterDate.add(Calendar.YEAR, 5); + + mBYear = new JTextField(""+nowDate.get(Calendar.YEAR)); + mBYear.setColumns(4); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mBYear, gbc); + + mBMonth = new JTextField(""+(nowDate.get(Calendar.MONTH)+1)); + mBMonth.setColumns(3); + add(mBMonth, gbc); + + mBDay = new JTextField(""+nowDate.get(Calendar.DAY_OF_MONTH)); + mBDay.setColumns(3); + add(mBDay, gbc); + + mBHour = new JTextField("00"); + mBHour.setColumns(3); + add(mBHour, gbc); + + mBMin = new JTextField("00"); + mBMin.setColumns(3); + add(mBMin, gbc); + + mBSec = new JTextField("00"); + mBSec.setColumns(3); + gbc.gridwidth = gbc.REMAINDER; + add(mBSec, gbc); + + JLabel expireLbl = makeJLabel("EXPIRE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(expireLbl, gbc); + + mEYear = new JTextField(""+afterDate.get(Calendar.YEAR)); + mEYear.setColumns(4); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mEYear, gbc); + + mEMonth = new JTextField(""+(afterDate.get(Calendar.MONTH)+1)); + mEMonth.setColumns(3); + add(mEMonth, gbc); + + mEDay = new JTextField(""+afterDate.get(Calendar.DAY_OF_MONTH)); + mEDay.setColumns(3); + add(mEDay, gbc); + + mEHour = new JTextField("00"); + mEHour.setColumns(3); + add(mEHour, gbc); + + mEMin = new JTextField("00"); + mEMin.setColumns(3); + add(mEMin, gbc); + + mESec = new JTextField("00"); + mESec.setColumns(3); + gbc.gridwidth = gbc.REMAINDER; + add(mESec, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weighty = 1.0; + gbc.gridheight = gbc.REMAINDER; + gbc.gridwidth = gbc.REMAINDER; + add(dummy, gbc); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/WMNNewAgent.java b/base/console/src/com/netscape/admin/certsrv/config/WMNNewAgent.java new file mode 100644 index 000000000..425eddaaa --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WMNNewAgent.java @@ -0,0 +1,293 @@ +// --- 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.config; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.table.*; +import javax.swing.text.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * New Agent names/passwords for reconfiguring the Recovery MN Scheme + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +class WMNNewAgent extends WizardBasePanel + implements IWizardPanel +{ + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANELNAME = "WMNNEWAGENT"; + + private int mNoAgent = 0; + private MNSchemeWizardInfo mInfo; + private NewAgentModel mDataModel; + private JTable mTable; + protected JScrollPane mScrollPane; + private static final String HELPINDEX = + "configuration-kra-wizard-newagentpwd-keyscheme-help"; + + /*========================================================== + * constructors + *==========================================================*/ + WMNNewAgent() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + /*========================================================== + * public methods + *==========================================================*/ + public boolean initializePanel(WizardInfo info) { + //let's set the values + mInfo = (MNSchemeWizardInfo)info; + Debug.println(mInfo.toString()); + try { + mNoAgent = Integer.parseInt(mInfo.getNewN()); + } catch (Exception e) { + return false; + } + + //add rows into tables + //zap passwords + mDataModel.removeAllRows(); + + Vector[] data = new Vector[mNoAgent]; + for (int i=0; i-1)&&(row>-1)) { + String str = ((JTextComponent)component).getText(); + mTable.setValueAt(str, row, col); + } + } + + if(!checkBlank()) { + setErrorMessage("CANNOTBEBLANK"); + return false; + } + + if(!checkConfirm()) { + setErrorMessage("PASSWORDERROR"); + return false; + } + + if (!checkDuplicate()) { + setErrorMessage("DUPLICATEERROR"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + Debug.println("WMNNewAgent -- concludePanel() - START"); + String val = getUIDPassword(); + mInfo.add(Constants.PR_RECOVERY_AGENT,val); + try { + mInfo.changeScheme(); + } catch (EAdminException e) { + mErrorString = e.toString(); + return false; + } + return true; + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + //base class take care of these + //public String getTitle(); + //public String getErrorMessage(); + + /*========================================================== + * protected methods + *==========================================================*/ + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new DefaultTableCellRenderer()); + } + + //Set the first column's cellrender as label cell + protected void setLabelCellEditor(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new PasswordCellRenderer()); + table.getColumnModel().getColumn(index).setCellEditor( + new DefaultCellEditor(new JPasswordField())); + } + + /*========================================================== + * private methods + *==========================================================*/ + + //initialize the panel + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JLabel label3 = makeJLabel("DESC"); + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(label3,gbc); + + //table + mDataModel = new NewAgentModel(); + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); + //mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + setLabelCellRenderer(mTable, 1); + setLabelCellEditor(mTable, 2); + setLabelCellEditor(mTable, 3); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE,COMPONENT_SPACE,COMPONENT_SPACE); + gb.setConstraints(mScrollPane, gbc); + add(mScrollPane); + + super.init(); + } + + private boolean checkDuplicate() { + Hashtable table = new Hashtable(); + for (int i=0; i= 1) + return true; + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/WMNOldAgent.java b/base/console/src/com/netscape/admin/certsrv/config/WMNOldAgent.java new file mode 100644 index 000000000..07973f6c9 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WMNOldAgent.java @@ -0,0 +1,214 @@ +// --- 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.config; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.table.*; +import javax.swing.text.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.management.client.util.*; +import com.netscape.certsrv.common.*; + +/** + * Old Agent name/password for reconfiguring the Recovery MN Scheme + * + * @author Jack Pan-Chen + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config + */ +class WMNOldAgent extends WizardBasePanel + implements IWizardPanel +{ + + /*========================================================== + * variables + *==========================================================*/ + private static final String PANELNAME = "WMNOLDAGENT"; + + private int mNoAgent = 0; + private MNSchemeWizardInfo mInfo; + private AutoRecoveryModel mDataModel; + private JTable mTable; + protected JScrollPane mScrollPane; + private static final String HELPINDEX = + "configuration-kra-wizard-agentpwd-keyscheme-help"; + + /*========================================================== + * constructors + *==========================================================*/ + WMNOldAgent() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + /*========================================================== + * public methods + *==========================================================*/ + + public boolean initializePanel(WizardInfo info) { + //let's set the values + mInfo = (MNSchemeWizardInfo)info; + Debug.println(mInfo.toString()); + try { + mNoAgent = Integer.parseInt(mInfo.getM()); + } catch (Exception e) { + return false; + } + + //add rows into tables + //zap passwords + mDataModel.removeAllRows(); + + Vector[] data = new Vector[mNoAgent]; + for (int i=0; i-1)&&(row>-1)) { + String str = ((JTextComponent)component).getText(); + mTable.setValueAt(str, row, col); + } + } + + String val = getUIDPassword(); + if(val.equals("")) { + setErrorMessage("CANNOTBEBLANK"); + return false; + } + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void getUpdateInfo(WizardInfo info) { + String val = getUIDPassword(); + mInfo.add(Constants.PR_OLD_RECOVERY_AGENT,val); + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + //base class take care of these + //public String getTitle(); + //public String getErrorMessage(); + + /*========================================================== + * protected methods + *==========================================================*/ + + //Set the first column's cellrender as label cell + protected void setLabelCellRenderer(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new DefaultTableCellRenderer()); + } + + //Set the first column's cellrender as label cell + protected void setLabelCellEditor(JTable table, int index) { + table.getColumnModel().getColumn(index).setCellRenderer( + new PasswordCellRenderer()); + table.getColumnModel().getColumn(index).setCellEditor( + new DefaultCellEditor(new JPasswordField())); + } + + /*========================================================== + * private methods + *==========================================================*/ + + //initialize the panel + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JLabel label3 = makeJLabel("DESC"); + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(label3,gbc); + + //table + mDataModel = new AutoRecoveryModel(); + mTable = new JTable(mDataModel); + mScrollPane = JTable.createScrollPaneForTable(mTable); + //mScrollPane.setBorder(CMSAdminUtil.makeTitledBorder(mResource,PANEL_NAME,"USERS")); + mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + mTable.setAutoscrolls(true); + mTable.sizeColumnsToFit(true); + mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); + //mTable.getSelectionModel().addListSelectionListener(this); + mScrollPane.setBackground(Color.white); + setLabelCellRenderer(mTable, 1); + setLabelCellEditor(mTable, 2); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE,COMPONENT_SPACE,COMPONENT_SPACE); + gb.setConstraints(mScrollPane, gbc); + add(mScrollPane); + + super.init(); + } + + private String getUIDPassword() { + String result = ""; + for (int i=0; i mAvail) { + setErrorMessage("LARGER"); + return false; + } + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void getUpdateInfo(WizardInfo info) { + mInfo.add(Constants.PR_RECOVERY_M, mMField.getText().trim()); + mInfo.add(Constants.PR_RECOVERY_N, mNField.getText().trim()); + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + //base class take care of these + //public String getTitle(); + //public String getErrorMessage(); + + /*========================================================== + * private methods + *==========================================================*/ + + //initialize the panel + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + //show icon + JLabel iconLabel = new JLabel(CMSAdminUtil.getImage(CMSAdminResources.IMAGE_CERTICON_LARGE)); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gb.setConstraints(iconLabel,gbc); + add(iconLabel); + + //show wizard description + JTextArea desc = new JTextArea( + CMSAdminUtil.wrapText( + mResource.getString("WMNSELECTION_TEXT_DESC_LABEL"),60),2,60); + desc.setBackground(getBackground()); + desc.setEditable(false); + desc.setCaretColor(getBackground()); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.weighty = 0.1; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + //current setting + JPanel oldPanel = new JPanel(); + oldPanel.setBorder(makeTitledBorder("OLDSCHEME")); + GridBagLayout gb1 = new GridBagLayout(); + oldPanel.setLayout(gb1); + + //m + JLabel label1 = makeJLabel("M"); + mMLabel = new JLabel(""); + CMSAdminUtil.resetGBC(gbc); + CMSAdminUtil.addEntryField(oldPanel, label1, mMLabel, gbc); + + //n + JLabel label3 = makeJLabel("N"); + mNLabel = new JLabel(""); + CMSAdminUtil.resetGBC(gbc); + gbc.gridheight = gbc.REMAINDER; + CMSAdminUtil.addEntryField(oldPanel, label3, mNLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gb.setConstraints(oldPanel,gbc); + add(oldPanel); + + //new setting + JPanel newPanel = new JPanel(); + newPanel.setBorder(makeTitledBorder("NEWSCHEME")); + GridBagLayout gb2 = new GridBagLayout(); + newPanel.setLayout(gb2); + + //m + JLabel label5 = makeJLabel("M"); + mMField = new JTextField(""); + CMSAdminUtil.resetGBC(gbc); + CMSAdminUtil.addEntryField(newPanel, label5, mMField, gbc); + + //n + JLabel label6 = makeJLabel("N"); + mNField = new JTextField(""); + CMSAdminUtil.resetGBC(gbc); + gbc.gridheight = gbc.REMAINDER; + CMSAdminUtil.addEntryField(newPanel, label6, mNField, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.9; + gb.setConstraints(newPanel,gbc); + add(newPanel); + + super.init(); + } + +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java b/base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java new file mode 100644 index 000000000..ce0ced102 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java @@ -0,0 +1,240 @@ +// --- 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.config; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Setup the message digest information for the installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WMessageDigestPage extends WizardBasePanel implements IWizardPanel { + protected JComboBox mRSAHashTypeBox, mDSAHashTypeBox, mECCHashTypeBox; + protected JComboBox mRSASignedByTypeBox, mDSASignedByTypeBox, mECCSignedByTypeBox; + protected String mHelpIndex; + protected String mCAKeyType; + protected JTextArea mSignedByTypeLbl; + private static final String HELPINDEX = "install-cert-mda-wizard-help"; + + public WMessageDigestPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + setBorder(makeTitledBorder(mPanelName)); + + if (mCAKeyType.equals("RSA")) { + mECCHashTypeBox.setVisible(false); + mDSAHashTypeBox.setVisible(false); + mRSAHashTypeBox.setVisible(true); + String sha1 = mResource.getString(mPanelName+"_COMBOBOX_RSAHASHTYPE_VALUE_2"); + mRSAHashTypeBox.setSelectedItem(sha1); + } else if (mCAKeyType.equals("ECC")) { + mECCHashTypeBox.setVisible(true); + mDSAHashTypeBox.setVisible(false); + mRSAHashTypeBox.setVisible(false); + } else { + mECCHashTypeBox.setVisible(false); + mDSAHashTypeBox.setVisible(true); + mRSAHashTypeBox.setVisible(false); + } + + mHelpIndex = HELPINDEX; + return true; + } + + public boolean validatePanel() { + return true; + } + + public void enableSignedByFields(boolean enable) { + if (!enable) { + mRSASignedByTypeBox.setVisible(false); + mDSASignedByTypeBox.setVisible(false); + mECCSignedByTypeBox.setVisible(false); + mSignedByTypeLbl.setVisible(false); + return; + } + + if (mCAKeyType.equals("RSA")) { + mRSASignedByTypeBox.setVisible(true); + mDSASignedByTypeBox.setVisible(false); + mECCSignedByTypeBox.setVisible(false); + } else if (mCAKeyType.equals("ECC")) { + mRSASignedByTypeBox.setVisible(false); + mDSASignedByTypeBox.setVisible(false); + mECCSignedByTypeBox.setVisible(true); + } else { + mECCSignedByTypeBox.setVisible(false); + mDSASignedByTypeBox.setVisible(true); + mRSASignedByTypeBox.setVisible(false); + } + + mSignedByTypeLbl.setVisible(true); + } + + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea hashTypeLbl = createTextArea(mResource.getString( + mPanelName+"_TEXT_HASHTYPE_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(hashTypeLbl, gbc); + + mRSAHashTypeBox = makeJComboBox("RSAHASHTYPE"); + mRSAHashTypeBox.setVisible(true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mRSAHashTypeBox, gbc); + + mDSAHashTypeBox = makeJComboBox("DSAHASHTYPE"); + mDSAHashTypeBox.setVisible(false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mDSAHashTypeBox, gbc); + + mECCHashTypeBox = makeJComboBox("ECCHASHTYPE"); + mECCHashTypeBox.setVisible(false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mECCHashTypeBox, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, 0,COMPONENT_SPACE, COMPONENT_SPACE); + add(dummy, gbc); + + JLabel dummy2 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, 0,COMPONENT_SPACE, COMPONENT_SPACE); + add(dummy2, gbc); + + mSignedByTypeLbl = createTextArea(mResource.getString( + mPanelName+"_TEXT_SIGNEDBYTYPE_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSignedByTypeLbl, gbc); + + mRSASignedByTypeBox = makeJComboBox("RSASIGNEDBYTYPE"); + mRSASignedByTypeBox.setVisible(true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mRSASignedByTypeBox, gbc); + + mDSASignedByTypeBox = makeJComboBox("DSASIGNEDBYTYPE"); + mDSASignedByTypeBox.setVisible(false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mDSASignedByTypeBox, gbc); + + mECCSignedByTypeBox = makeJComboBox("ECCSIGNEDBYTYPE"); + mECCSignedByTypeBox.setVisible(false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mECCSignedByTypeBox, gbc); + + JLabel dummy1 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.CENTER; + gbc.gridheight = gbc.REMAINDER; + gbc.gridwidth = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(0, 0,COMPONENT_SPACE, COMPONENT_SPACE); + add(dummy1, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/WarningDialog.java b/base/console/src/com/netscape/admin/certsrv/config/WarningDialog.java new file mode 100644 index 000000000..bedf0b67f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/WarningDialog.java @@ -0,0 +1,171 @@ +// --- 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.config; + +import com.netscape.admin.certsrv.*; +import javax.swing.*; +import javax.swing.event.*; +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import com.netscape.management.client.*; +import com.netscape.management.client.util.*; +import javax.swing.table.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.certsrv.common.*; + +/** + * Certificate Information dialog + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.managecert + */ +public class WarningDialog extends JDialog + implements ActionListener { + private String PREFIX = "WARNINGDIALOG"; + + private JFrame mParent; + private ResourceBundle mResource; + private JTextArea mTextArea; + private JLabel mCertNameField; + private JButton mClose, mHelp, mTrust; + private AdminConnection mConn; + private String mCertName; + private String mCertDate; + private String mKey; + + public WarningDialog(JFrame parent, String key) { + super(parent,true); + mParent = parent; + mKey = key; + mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName()); + setSize(500, 300); + setResizable(false); + setTitle(mResource.getString(PREFIX+"_TITLE")); + setLocationRelativeTo(parent); + getRootPane().setDoubleBuffered(true); + setDisplay(); + } + + public void actionPerformed(ActionEvent evt) { + if (evt.getSource().equals(mClose)) { + this.hide(); + this.dispose(); + } + } + + private void setDisplay() { + getContentPane().setLayout(new BorderLayout()); + JPanel center = new JPanel(); + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + center.setLayout(gb); + + //content panel + JPanel content = makeContentPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill=gbc.BOTH; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + gb.setConstraints(content, gbc); + center.add(content); + + //action panel + JPanel action = makeActionPane(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + gb.setConstraints(action, gbc); + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + center.add(action); + + getContentPane().add("Center",center); + + this.show(); + } + + private JPanel makeActionPane() { + mClose = CMSAdminUtil.makeJButton(mResource, PREFIX, "CLOSE", + null, this); + + Dimension d = mClose.getMinimumSize(); + if (d.width < CMSAdminUtil.DEFAULT_BUTTON_SIZE) { + d.width = CMSAdminUtil.DEFAULT_BUTTON_SIZE; + mClose.setMinimumSize(d); + } + JButton[] buttons = {mClose}; + return CMSAdminUtil.makeJButtonPanel( buttons ); + } + + private JPanel makeContentPane() { + JPanel content = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + content.setLayout(gb3); +/* + content.setBorder(CMSAdminUtil.makeTitledBorder(mResource, + "CERTINFODIALOG", "CERT")); +*/ + + CMSAdminUtil.resetGBC(gbc); + Icon icon = CMSAdminUtil.getImage(CMSAdminResources.IMAGE_WARN_ICON); + JLabel label = new JLabel(icon); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE,CMSAdminUtil.COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + content.add(label, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc = new JTextArea( + CMSAdminUtil.wrapText(mResource.getString(PREFIX+mKey),65),10,65); + desc.setBackground(getBackground()); + desc.setEditable(false); + desc.setCaretColor(getBackground()); + JScrollPane scrollPane = new JScrollPane(desc, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.fill= gbc.BOTH; + gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, + CMSAdminUtil.COMPONENT_SPACE, CMSAdminUtil.COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + content.add(scrollPane, gbc); + + return content; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/ComponentCellRenderer.java b/base/console/src/com/netscape/admin/certsrv/config/install/ComponentCellRenderer.java new file mode 100644 index 000000000..f6dcff392 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/ComponentCellRenderer.java @@ -0,0 +1,32 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import javax.swing.table.*; + +class ComponentCellRenderer implements TableCellRenderer { + public Component getTableCellRendererComponent(JTable table, + Object value, boolean isSelected, boolean hasFocus, int row, + int column) { + return (JComponent)value; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizard.java b/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizard.java new file mode 100644 index 000000000..557dc2739 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizard.java @@ -0,0 +1,202 @@ +// --- 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.config.install; + +import java.util.*; +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; + +/** + * Wizard for Installation wizard + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ + +public class InstallWizard extends WizardWidget implements Runnable { + + public InstallWizard(JFrame parent, InstallWizardInfo info, + IWizardDone wizDone) { + super(parent, wizDone); + setWizardInfo(info); + //addPage(new WIInstallCACertStatusPage()); + addPage(new WIIntroPage(this, parent)); + addPage(new WIMasterOrClone(this, parent)); + addPage(new WIClonePage(this, parent)); + addPage(new WILogonAllTokensPage(this, parent)); + addPage(new WIInternalTokenLogonPage(this, parent)); + addPage(new WIRecreateDBPage(this, parent)); + addPage(new WIInternalDBPage(this, parent)); + addPage(new WIExistingDBPage(this, parent)); + addPage(new WICreateInternalDBPage(this, parent)); + addPage(new WIInternalDBInfoPage(this, parent)); + addPage(new WIReplAgreementPage(this, parent)); + addPage(new WIAdminPage(this, parent)); + addPage(new WIServicesPage(this, parent)); + addPage(new WIInternalDBInfoPage(this, parent)); +/* + addPage(new WIRemoteCASubsystem(this, parent)); + addPage(new WIRemoteKRASubsystem(this, parent)); +*/ + + // CA starting serial number + addPage(new WICASerialNumberPage(this,parent)); + addPage(new WICAOCSPServicePage(this,parent)); +/* + addPage(new WINetworkPage(this, parent)); +*/ + + // CA signing certificate + addPage(new WIInternalDBInfoPage(this, parent)); + addPage(new WICloneCAKeyCertPage(this, parent)); + + addPage(new WICACertSubmitPage(this, parent)); + addPage(new WICAKeyPage(this, parent)); + addPage(new WICAMessageDigestPage(this, parent)); + addPage(new WICACertDNPage(this, parent)); + addPage(new WICACertValidityPage(this, parent)); + addPage(new WICACertExtensionPage(this, parent)); + addPage(new WIGenCAKeyCertPage(this, parent)); + addPage(new WIGenCAKeyCertReqPage(this, parent)); + addPage(new WIManualCACertRequestPage(this, parent)); + addPage(new WICARequestResultPage(this,parent)); + addPage(new WIInstallCAIntroPage(this, parent)); + addPage(new WICATokenLogonPage(this, parent)); + addPage(new WIPasteCACertPage(this, parent)); + addPage(new WIDisplayCACertPage(this, parent)); + addPage(new WIInstallCACertStatusPage(this, parent)); + + // OCSP signing certificate + addPage(new WIInternalDBInfoPage(this, parent)); + addPage(new WICloneOCSPKeyCertPage(this, parent)); + addPage(new WIOCSPCertSubmitPage(this, parent)); + addPage(new WIOCSPKeyPage(this, parent)); + addPage(new WIOCSPMessageDigestPage(this, parent)); + addPage(new WIOCSPCertDNPage(this, parent)); + addPage(new WIGenOCSPKeyCertReqPage(this, parent)); + addPage(new WIManualOCSPCertRequestPage(this, parent)); + addPage(new WIOCSPRequestResultPage(this,parent)); + addPage(new WIInstallOCSPIntroPage(this, parent)); + addPage(new WIOCSPTokenLogonPage(this, parent)); + addPage(new WIPasteOCSPCertPage(this, parent)); + addPage(new WIDisplayOCSPCertPage(this, parent)); + addPage(new WIInstallOCSPCertStatusPage(this, parent)); + + // RA signing certificate + addPage(new WIInternalDBInfoPage(this, parent)); + addPage(new WICloneRAKeyCertPage(this, parent)); + addPage(new WIRACertSubmitPage(this, parent)); + addPage(new WIRAKeyPage(this, parent)); + addPage(new WIRAMessageDigestPage(this, parent)); + addPage(new WIRACertDNPage(this, parent)); + addPage(new WIRACertValidityPage(this, parent)); + addPage(new WIRACertExtensionPage(this, parent)); + addPage(new WIGenRAKeyCertPage(this, parent)); + addPage(new WIGenRAKeyCertReqPage(this, parent)); + addPage(new WIManualRACertRequestPage(this, parent)); + addPage(new WIRARequestResultPage(this,parent)); + addPage(new WIInstallRAIntroPage(this, parent)); + addPage(new WIRATokenLogonPage(this, parent)); + addPage(new WIPasteRACertPage(this, parent)); + addPage(new WIDisplayRACertPage(this, parent)); + addPage(new WIInstallRACertStatusPage(this, parent)); + + // KRA transport certificate + addPage(new WIInternalDBInfoPage(this, parent)); + addPage(new WIKRANumberPage(this, parent)); + addPage(new WICloneKRAKeyCertPage(this, parent)); + addPage(new WIKRACertSubmitPage(this, parent)); + addPage(new WIKRAKeyPage(this, parent)); + addPage(new WIKRAMessageDigestPage(this, parent)); + addPage(new WIKRACertDNPage(this, parent)); + addPage(new WIKRACertValidityPage(this, parent)); + addPage(new WIKRACertExtensionPage(this, parent)); + addPage(new WIGenKRAKeyCertPage(this, parent)); + addPage(new WIGenKRAKeyCertReqPage(this, parent)); + addPage(new WIManualKRACertRequestPage(this, parent)); + addPage(new WIKRARequestResultPage(this,parent)); + addPage(new WIInstallKRAIntroPage(this, parent)); + addPage(new WIKRATokenLogonPage(this, parent)); + addPage(new WIInternalTokenLogonPage(this, parent)); + addPage(new WIPasteKRACertPage(this, parent)); + addPage(new WIDisplayKRACertPage(this, parent)); + addPage(new WIInstallKRACertStatusPage(this, parent)); + addPage(new WIKRAStorageKeyPage(this, parent)); + + addPage(new WIKRAScheme1Page(this, parent)); + addPage(new WIKRAScheme2Page(this, parent)); + + // SSL server certificate + addPage(new WIInternalDBInfoPage(this, parent)); + addPage(new WICloneTKSKeyCertPage(this, parent)); + addPage(new WIKRACertSubmitPage(this, parent)); + addPage(new WIServerCertSubmitPage(this, parent)); + addPage(new WIServerKeyPage(this, parent)); + addPage(new WISSLMessageDigestPage(this, parent)); + addPage(new WIServerCertDNPage(this, parent)); + addPage(new WIServerCertValidityPage(this, parent)); + addPage(new WIServerCertExtensionPage(this, parent)); + addPage(new WIGenServerKeyCertPage(this, parent)); + addPage(new WIGenSSLKeyCertReqPage(this, parent)); + addPage(new WIManualSSLCertRequestPage(this, parent)); + addPage(new WISSLRequestResultPage(this,parent)); + addPage(new WIInstallSSLIntroPage(this, parent)); + addPage(new WISSLTokenLogonPage(this, parent)); + addPage(new WIPasteSSLCertPage(this, parent)); + addPage(new WIDisplaySSLCertPage(this, parent)); + addPage(new WIInstallSSLCertStatusPage(this, parent)); + + addPage(new WIAllCertsInstalledPage(this, parent)); + addPage(new WISingleSignonPage(this, parent)); + addPage(new WICertSetupStatusPage(this, parent)); + + show(); + } + + protected void callHelp() { + if (mCurrent instanceof IWizardPanel) { + ((IWizardPanel)mCurrent).callHelp(); + } + } + + protected void back_cb(WizardInfo info) { + if (mCurrent instanceof WIManualCertRequestPage) { + ((WIManualCertRequestPage)mCurrent).back_cb(info); + } + } + + public void run() { + show(); + } + + public static void main(String[] args) { + JFrame.setDefaultLookAndFeelDecorated(true); + JFrame frame = new JFrame(); + Cursor cursor = new Cursor(Cursor.HAND_CURSOR); + frame.setCursor(cursor); + frame.invalidate(); + frame.validate(); + frame.repaint(1); + InstallWizardInfo wizardInfo = new InstallWizardInfo(); + InstallWizard wizard = new InstallWizard(frame, wizardInfo, null); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java b/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java new file mode 100644 index 000000000..a88101cc4 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java @@ -0,0 +1,1724 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.console.*; + +/** + * WizardInfo for certificate setup wizard + * Once complete, we need to zap this object. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class InstallWizardInfo extends WizardInfo { + private static final int DB_PORT = 38900; + private static final String BINDDN = "cn=Directory Manager"; + public static final String ALL_CERT_INFO = "allInfo"; + private static final String CA_KEY_TYPE = "caKeyType"; + private static final String CA_KEY_LEN = "caKeyLen"; + private static final String OCSP_TOKEN_NAME = "ocspTokenName"; + private static final String OCSP_TOKEN_PASSWD = "ocspTokenPwd"; + private static final String CA_TOKEN_NAME = "caTokenName"; + private static final String CA_TOKEN_PASSWD = "caTokenPwd"; + private static final String RA_TOKEN_NAME = "raTokenName"; + private static final String RA_TOKEN_PASSWD = "raTokenPwd"; + private static final String KRA_TOKEN_NAME = "kraTokenName"; + private static final String KRA_TOKEN_PASSWD = "kraTokenPwd"; + private static final String SSL_TOKEN_NAME = "sslTokenName"; + private static final String SSL_TOKEN_PASSWD = "sslTokenPwd"; + private static final String MIGRATE_CA_TOKEN_NAME = "migrateCATokenName"; + private static final String MIGRATE_SSL_TOKEN_NAME = "migrateSSLTokenName"; + private static final String INSTALLCERT_NOW = "installCertNow"; + private static final String CLONING = "cloning"; + private static final String CACLONING = "cacloning"; + private static final String RACLONING = "racloning"; + private static final String KRACLONING = "kracloning"; + private static final String SSLCLONING = "sslcloning"; + + private static final String CA_CLONING_CERT = "caSigningCert"; + private static final String RA_CLONING_CERT = "raSigningCert"; + private static final String KRA_CLONING_CERT = "kraTransportCert"; + private static final String OCSP_CLONING_CERT = "ocspSigningCert"; + + private String mPassword = null; + + private ConsoleInfo mConsoleInfo; + + public InstallWizardInfo() { + super(); + } + + public InstallWizardInfo(ConsoleInfo consoleInfo) { + super(); + mConsoleInfo = consoleInfo; + } + + public JFrame getAdminFrame() { + return (JFrame)get("adminFrame"); + } + + public boolean doKeySplitting() { + String str = (String)get("kra.keySplitting"); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + else + return false; + + } + + public void setAdminFrame(JFrame frame) { + put("adminFrame", frame); + } + + public ConsoleInfo getAdminConsoleInfo() { + return mConsoleInfo; + } + + public String getStages() { + return (String)get(ConfigConstants.STAGES); + } + + public String getCloneCertsList() { + String s = (String)get(ConfigConstants.PR_CLONE_CERTIFICATES); + if (s == null || s.equals("")) + return " "; + return s; + } + + public String getCloneSubsystem() { + + String s = (String)get("selected_sub"); + + if(s == null || s.equals("")) + return null; + + return s; + + } + + public boolean isCACloningDone() { + String str = (String)get(ConfigConstants.STAGE_CACLONING); + + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + else + return false; + } + + public void setCACloningDone(String str) { + put(ConfigConstants.STAGE_CACLONING, str); + } + + public boolean isOCSPCloningDone() { + String str = (String)get(ConfigConstants.STAGE_OCSPCLONING); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + + return false; + } + + public void setOCSPCloningDone(String str) { + put(ConfigConstants.STAGE_OCSPCLONING, str); + } + + public boolean isRACloningDone() { + String str = (String)get(ConfigConstants.STAGE_RACLONING); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + + return false; + } + + public void setRACloningDone(String str) { + put(ConfigConstants.STAGE_RACLONING, str); + } + + public boolean isKRACloningDone() { + String str = (String)get(ConfigConstants.STAGE_KRACLONING); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + + return false; + } + + public boolean isTKSCloningDone() { + String str = (String)get(ConfigConstants.STAGE_TKSCLONING); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + + return false; + } + + public void setUpdateDBInfoDone(String str) { + put(ConfigConstants.STAGE_UPDATE_DB_INFO, str); + } + + public boolean isUpdateDBInfoDone() { + String str = (String)get(ConfigConstants.STAGE_UPDATE_DB_INFO); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public void setKRACloningDone(String str) { + put(ConfigConstants.STAGE_KRACLONING, str); + } + + public boolean isSSLCloningDone() { + String str = (String)get(ConfigConstants.STAGE_SSLCLONING); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public void setSSLCloningDone(String str) { + put(ConfigConstants.STAGE_SSLCLONING, str); + } + + public boolean isCloneCASubsystem() { + String str = (String)get(ConfigConstants.PR_CLONE_SUBSYSTEM); + if (str != null && str.equals(ConfigConstants.PR_CA)) + return true; + return false; + } + + public boolean isCloneRASubsystem() { + String str = (String)get(ConfigConstants.PR_CLONE_SUBSYSTEM); + if (str != null && str.equals(ConfigConstants.PR_RA)) + return true; + return false; + } + public boolean isCloneKRASubsystem() { + String str = (String)get(ConfigConstants.PR_CLONE_SUBSYSTEM); + if (str != null && str.equals(ConfigConstants.PR_KRA)) + return true; + return false; + } + public boolean isCloneOCSPSubsystem() { + String str = (String)get(ConfigConstants.PR_CLONE_SUBSYSTEM); + if (str != null && str.equals(ConfigConstants.PR_OCSP)) + return true; + return false; + } + public boolean isCloneTKSSubsystem() { + String str = (String)get(ConfigConstants.PR_CLONE_SUBSYSTEM); + if (str != null && str.equals(ConfigConstants.PR_TKS)) + return true; + return false; + } + public boolean isCloneMasterDone() { + String str = (String)get(ConfigConstants.STAGE_CLONEMASTER); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public void setCloneMasterDone(String str) { + put(ConfigConstants.STAGE_CLONEMASTER, str); + } + + public boolean isNetworkDone() { + String str = (String)get(ConfigConstants.STAGE_SETUP_PORTS); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isAdministratorDone() { + String str = (String)get(ConfigConstants.STAGE_SETUP_ADMINISTRATOR); + if (str == null || str.equals("") || str.equals(ConfigConstants.FALSE)) + return false; + + return true; + } + + public boolean isServicesDone() { + String str = (String)get(ConfigConstants.STAGE_SETUP_SUBSYSTEMS); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isMigrationDone() { + String str = (String)get(ConfigConstants.STAGE_DATA_MIGRATION); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isKRANMSchemeDone() { + String str = (String)get(ConfigConstants.STAGE_KRA_NM_SCHEME); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isCACertRequestBack() { + String str = (String)get(ConfigConstants.CA_CERT_REQUEST_BACK); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isRACertRequestBack() { + String str = (String)get(ConfigConstants.RA_CERT_REQUEST_BACK); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isOCSPCertRequestBack() { + String str = (String)get(ConfigConstants.OCSP_CERT_REQUEST_BACK); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isKRACertRequestBack() { + String str = (String)get(ConfigConstants.KRA_CERT_REQUEST_BACK); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isSSLCertRequestBack() { + String str = (String)get(ConfigConstants.SSL_CERT_REQUEST_BACK); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isSelfSignedCACertDone() { + String str = (String)get(ConfigConstants.STAGE_CA_SELFSIGNED_CERT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isCACertRequestDone() { + String str = (String)get(ConfigConstants.STAGE_CA_CERT_REQUEST); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isCACertInstalledDone() { + String str = (String)get(ConfigConstants.STAGE_CA_CERT_INSTALL); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isCACertChainImportDone() { + String str = (String)get(ConfigConstants.STAGE_CA_CERTCHAIN_IMPORT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + public boolean isNumberPageDone(){ + String str = (String)get(ConfigConstants.PR_SERIAL_REQUEST_NUMBER); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + public void setNumberPageDone(String str) { + put(ConfigConstants.PR_SERIAL_REQUEST_NUMBER, str); + } + public boolean isClonePageDone(){ + String str = (String)get(ConfigConstants.PR_CLONE_SETTING_DONE); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + public void setClonePageDone(String str) { + put(ConfigConstants.PR_CLONE_SETTING_DONE, str); + } + public boolean isOCSPCertChainImportDone() { + String str = (String)get(ConfigConstants.STAGE_OCSP_CERTCHAIN_IMPORT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isRALocalCertDone() { + String str = (String)get(ConfigConstants.STAGE_RA_LOCAL_CERT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isRACertRequestDone() { + String str = (String)get(ConfigConstants.STAGE_RA_CERT_REQUEST); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isOCSPLocalCertDone() { + String str = (String)get(ConfigConstants.STAGE_OCSP_LOCAL_CERT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isOCSPCertRequestDone() { + String str = (String)get(ConfigConstants.STAGE_OCSP_CERT_REQUEST); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isOCSPCertInstalledDone() { + String str = (String)get(ConfigConstants.STAGE_OCSP_CERT_INSTALL); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isRACertInstalledDone() { + String str = (String)get(ConfigConstants.STAGE_RA_CERT_INSTALL); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isRACertChainImportDone() { + String str = (String)get(ConfigConstants.STAGE_RA_CERTCHAIN_IMPORT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isKRALocalCertDone() { + String str = (String)get(ConfigConstants.STAGE_KRA_LOCAL_CERT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isKRACertRequestDone() { + String str = (String)get(ConfigConstants.STAGE_KRA_CERT_REQUEST); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isKRACertInstalledDone() { + String str = (String)get(ConfigConstants.STAGE_KRA_CERT_INSTALL); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isKRACertChainImportDone() { + String str = (String)get(ConfigConstants.STAGE_KRA_CERTCHAIN_IMPORT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + public boolean isSSLLocalCertDone() { + String str = (String)get(ConfigConstants.STAGE_SSL_LOCAL_CERT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isSSLCertRequestDone() { + String str = (String)get(ConfigConstants.STAGE_SSL_CERT_REQUEST); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isSSLCertInstalledDone() { + String str = (String)get(ConfigConstants.STAGE_SSL_CERT_INSTALL); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isSSLCertChainImportDone() { + String str = (String)get(ConfigConstants.STAGE_SSL_CERTCHAIN_IMPORT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + public String getNextAvailPort() { + return (String)get(ConfigConstants.PR_NEXT_AVAIL_PORT); + } + + public void setSubsystems(String str) { + put(ConfigConstants.PR_SUBSYSTEMS, str); + } + + public String getSubsystems() { + return (String)get(ConfigConstants.PR_SUBSYSTEMS); + } + + public void setReplicationEnabled(String str) { + put(ConfigConstants.PR_ENABLE_REPLICATION, str); + } + + public boolean isReplicationEnabled() { + String str = (String)get(ConfigConstants.PR_ENABLE_REPLICATION); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public void setAgreementDone(String str) { + put(ConfigConstants.STAGE_REPLICATION_AGREEMENT, str); + } + + public boolean isAgreementDone() { + String str = (String)get(ConfigConstants.STAGE_REPLICATION_AGREEMENT); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + else + return false; + } + + public void setDBCreated(String str) { + put(ConfigConstants.PR_IS_DBCREATED, str); + } + + public void setCloneDBCreated(String str) { + put(ConfigConstants.PR_IS_CLONEDDB_CREATED, str); + } + + public boolean isDBCreated() { + String str = (String)get(ConfigConstants.PR_IS_DBCREATED); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isCloneDBCreated() { + String str = (String)get(ConfigConstants.PR_IS_CLONEDDB_CREATED); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public void setDBCreateNow(String str) { + put("dbCreateNow", str); + } + + public boolean isDBCreateNow() { + String str = (String)get("dbCreateNow"); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public String getSingleSignOnPassword() { + return mPassword; + } + + public void setSingleSignOnPassword(String password) { + mPassword = password; + } + + public void setCertAdminUid(String uid) { + put(ConfigConstants.PR_CERT_ADMINUID, uid); + } + + public String getCertAdminUid() { + return (String)get(ConfigConstants.PR_CERT_ADMINUID); + } + + public void setCertAdminName(String name) { + put(ConfigConstants.PR_CERT_ADMINNAME, name); + } + + public String getCertAdminName() { + return (String)get(ConfigConstants.PR_CERT_ADMINNAME); + } + + public void setDBPort(String val) { + put(ConfigConstants.PR_DB_PORT, val); + } + + public int getDBPort() { + String val = (String)get(ConfigConstants.PR_DB_PORT); + if (val != null) + return Integer.parseInt(val); + return 38900; + } + + public void setDBName(String name) { + put(ConfigConstants.PR_DB_NAME, name); + } + + public String getDBName() { + String dbName = (String)get(ConfigConstants.PR_DB_NAME); + if (dbName == null) + dbName = ""; + return dbName; + } + + public void setCloneDBName(String name) { + put(ConfigConstants.PR_CLONEDDB_NAME, name); + } + + public String getCloneDBName() { + String dbName = (String)get(ConfigConstants.PR_CLONEDDB_NAME); + if (dbName == null) + dbName = ""; + return dbName; + } + + public void setDBBindDN(String val) { + put(ConfigConstants.PR_DB_BINDDN, val); + } + + public String getDBBindDN() { + String dn = (String)get(ConfigConstants.PR_DB_BINDDN); + if (dn == null) + dn = BINDDN; + return dn; + } + + public String getAdminPort() { + String val = (String)get(ConfigConstants.PR_RADM_PORT); + if (val == null) + val = "8200"; + return val; + } + + public void setAdminPort(String val) { + put(ConfigConstants.PR_RADM_PORT, val); + } + + public String getEEPort() { + String val = (String)get(ConfigConstants.PR_EE_PORT); + if (val == null || val.equals("")) + val = "81"; + return val; + } + + public void setEEPort(String port) { + put(ConfigConstants.PR_EE_PORT, port); + } + + public String getEESecurePort() { + String val = (String)get(ConfigConstants.PR_EE_SECURE_PORT); + if (val == null) + val = "8001"; + return val; + } + + public void setEESecurePort(String port) { + put(ConfigConstants.PR_EE_SECURE_PORT, port); + } + + public String getAgentPort() { + String val = (String)get(ConfigConstants.PR_AGENT_PORT); + if (val == null) + val = "8100"; + return val; + } + + public void setAgentPort(String val) { + put(ConfigConstants.PR_AGENT_PORT, val); + } + + public boolean isEEEnabled() { + String val = (String)get(ConfigConstants.PR_EE_PORT_ENABLE); + if (val != null && val.equals(Constants.TRUE)) + return true; + return false; + } + + public void setEEEnable(String enable) { + put(ConfigConstants.PR_EE_PORT_ENABLE, enable); + } + + public String getCertType() { + return (String)get(Constants.PR_CERTIFICATE_TYPE); + } + + public void setCertType(String str) { + put(Constants.PR_CERTIFICATE_TYPE, str); + } + + public String getReqFormat(String certType) { + return (String)get(certType+ConfigConstants.PR_REQUEST_FORMAT); + } + + public void setReqFormat(String certType, String str) { + put(certType+ConfigConstants.PR_REQUEST_FORMAT , str); + } + + public boolean isNewRequest() { + String val = (String)get(getCertType()+"new"); + if (val != null && val.equals(Constants.TRUE)) + return true; + return false; + } + + public void setNewRequest() { + put(getCertType()+"new", Constants.TRUE); + } + + public boolean isCAReqResultDisplayed() { + String val = (String)get(ConfigConstants.CA_REQUEST_DISPLAYED); + if (val != null && val.equals(Constants.TRUE)) + return true; + return false; + } + + public void setCAReqResultDisplayed(String val) { + put(ConfigConstants.CA_REQUEST_DISPLAYED, val); + } + + public boolean isRAReqResultDisplayed() { + String val = (String)get(ConfigConstants.RA_REQUEST_DISPLAYED); + if (val != null && val.equals(Constants.TRUE)) + return true; + return false; + } + + public void setRAReqResultDisplayed(String val) { + put(ConfigConstants.RA_REQUEST_DISPLAYED, val); + } + + public boolean isOCSPReqResultDisplayed() { + String val = (String)get(ConfigConstants.OCSP_REQUEST_DISPLAYED); + if (val != null && val.equals(Constants.TRUE)) + return true; + return false; + } + + public void setOCSPReqResultDisplayed(String val) { + put(ConfigConstants.OCSP_REQUEST_DISPLAYED, val); + } + + public boolean isKRAReqResultDisplayed() { + String val = (String)get(ConfigConstants.KRA_REQUEST_DISPLAYED); + if (val != null && val.equals(Constants.TRUE)) + return true; + return false; + } + + public void setKRAReqResultDisplayed(String val) { + put(ConfigConstants.KRA_REQUEST_DISPLAYED, val); + } + + public boolean isSSLReqResultDisplayed() { + String val = (String)get(ConfigConstants.SSL_REQUEST_DISPLAYED); + if (val != null && val.equals(Constants.TRUE)) + return true; + return false; + } + + public void setSSLReqResultDisplayed(String val) { + put(ConfigConstants.SSL_REQUEST_DISPLAYED, val); + } + + public String getCertRequest() { + return (String)get(Constants.PR_CERT_REQUEST); + } + + public void setCertRequest(String certReq) { + put(Constants.PR_CERT_REQUEST, certReq); + } + + public String getCAKeyLength() { + return (String)get(CA_KEY_LEN); + } + + public String getCATokenName() { + return (String)get(CA_TOKEN_NAME); + } + + public void setCATokenName(String tokenname) { + put(CA_TOKEN_NAME, tokenname); + } + + public String getOCSPTokenName() { + return (String)get(OCSP_TOKEN_NAME); + } + + public void setOCSPTokenName(String tokenname) { + put(OCSP_TOKEN_NAME, tokenname); + } + + public String getRATokenName() { + return (String)get(RA_TOKEN_NAME); + } + + public void setRATokenName(String tokenname) { + put(RA_TOKEN_NAME, tokenname); + } + + public String getKRATokenName() { + return (String)get(KRA_TOKEN_NAME); + } + + public void setKRATokenName(String tokenname) { + put(KRA_TOKEN_NAME, tokenname); + } + + public String getSSLTokenName() { + return (String)get(SSL_TOKEN_NAME); + } + + public void setSSLTokenName(String tokenname) { + put(SSL_TOKEN_NAME, tokenname); + } + + public String getMigrateCACertTokenName() { + return (String)get(MIGRATE_CA_TOKEN_NAME); + } + + public void setMigrateCACertTokenName(String tokenname) { + put(MIGRATE_CA_TOKEN_NAME, tokenname); + } + + public String getMigrateSSLCertTokenName() { + return (String)get(MIGRATE_SSL_TOKEN_NAME); + } + + public void setMigrateSSLCertTokenName(String tokenname) { + put(MIGRATE_SSL_TOKEN_NAME, tokenname); + } + + public String getTokenName() { + return (String)get(ConfigConstants.PR_TOKEN_NAME); + } + + public String getTokensList() { + return (String)get(ConfigConstants.PR_TOKEN_NAMES); + } + + public String getTokensInit() { + return (String)get(ConfigConstants.PR_TOKEN_INITIALIZED); + } + + public String getTokensLogin() { + return (String)get(ConfigConstants.PR_TOKEN_LOGGED_IN); + } + + public void setKeyLength(String val) { + put(ConfigConstants.PR_KEY_LEN, val); + } + + public String getKeyLength() { + String val = (String)get(ConfigConstants.PR_KEY_LEN); + if (val == null) + val = "512"; + return val; + } + + public String getKeyCurveName() { + String val = (String)get(ConfigConstants.PR_KEY_CURVENAME); + if (val ==null) + val = "nistp521"; + return val; + } + + public void setKeyCurveName(String val) { + put(ConfigConstants.PR_KEY_CURVENAME, val); + } + + public String getKeyType() { + String type = (String)get(ConfigConstants.PR_KEY_TYPE); + // work around the historical mistake, + // not touching files around the places. + if ( type == null || type.equals("")) { + String certType = getCertType(); + if (certType.equals(Constants.PR_CA_SIGNING_CERT)) { + type = (String)get("ca_keyType"); + } else if (certType.equals(Constants.PR_RA_SIGNING_CERT)) { + type = (String)get("ra_keyType"); + } else if (certType.equals(Constants.PR_OCSP_SIGNING_CERT)) { + type = (String)get("ocsp_keyType"); + } else if (certType.equals(Constants.PR_KRA_TRANSPORT_CERT)) { + type = (String)get("kra_keyType"); + } else if (certType.equals(Constants.PR_SERVER_CERT)) { + type = (String)get("ssl_keyType"); + } + } + return type; + } + + public String getSubjectName() { + return (String)get(ConfigConstants.PR_SUBJECT_NAME); + } + + public void setSubjectName(String str) { + put(ConfigConstants.PR_SUBJECT_NAME, str); + } + + public String getCASubjectName() { + return (String)get(ConfigConstants.PR_CA_SUBJECT_NAME); + } + + public void setCASubjectName(String str) { + put(ConfigConstants.PR_CA_SUBJECT_NAME, str); + } + + public String getRASubjectName() { + return (String)get(ConfigConstants.PR_RA_SUBJECT_NAME); + } + + public void setRASubjectName(String str) { + put(ConfigConstants.PR_RA_SUBJECT_NAME, str); + } + + public String getOCSPSubjectName() { + return (String)get(ConfigConstants.PR_OCSP_SUBJECT_NAME); + } + + public void setOCSPSubjectName(String str) { + put(ConfigConstants.PR_OCSP_SUBJECT_NAME, str); + } + + public String getKRASubjectName() { + return (String)get(ConfigConstants.PR_KRA_SUBJECT_NAME); + } + + public void setKRASubjectName(String str) { + put(ConfigConstants.PR_KRA_SUBJECT_NAME, str); + } + + public String getSSLSubjectName() { + return (String)get(ConfigConstants.PR_SSL_SUBJECT_NAME); + } + + public void setSSLSubjectName(String str) { + put(ConfigConstants.PR_SSL_SUBJECT_NAME, str); + } + + public NameValuePairs getAllCertInfo() { + return (NameValuePairs)get(ALL_CERT_INFO); + } + + public String getBeginYear() { + return (String)get(Constants.PR_BEGIN_YEAR); + } + + public String getBeginMonth() { + return (String)get(Constants.PR_BEGIN_MONTH); + } + + public String getBeginDate() { + return (String)get(Constants.PR_BEGIN_DATE); + } + + public String getBeginHour() { + return (String)get(Constants.PR_BEGIN_HOUR); + } + + public String getBeginMin() { + return (String)get(Constants.PR_BEGIN_MIN); + } + + public String getBeginSec() { + return (String)get(Constants.PR_BEGIN_SEC); + } + + public String getAfterYear() { + return (String)get(Constants.PR_AFTER_YEAR); + } + + public String getAfterMonth() { + return (String)get(Constants.PR_AFTER_MONTH); + } + + public String getAfterDate() { + return (String)get(Constants.PR_AFTER_DATE); + } + + public String getAfterHour() { + return (String)get(Constants.PR_AFTER_HOUR); + } + + public String getAfterMin() { + return (String)get(Constants.PR_AFTER_MIN); + } + + public String getAfterSec() { + return (String)get(Constants.PR_AFTER_SEC); + } + + public boolean isSingleSignon() { + String val = (String)get(ConfigConstants.PR_SINGLE_SIGNON); + if (val != null && val.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isCACertLocalCA() { + String val = (String)get(ConfigConstants.PR_CACERT_LOCALCA); + if (val == null) { + return true; + } + else if (val.equals(Constants.TRUE)) { + return true; + } + return false; + } + + // set true or false + public void setCACertLocalCA(String val) { + put(ConfigConstants.PR_CACERT_LOCALCA, val); + } + + public boolean isRACertLocalCA() { + String val = (String)get(ConfigConstants.PR_RACERT_LOCALCA); + if (val == null) + return true; + else if (val.equals(Constants.TRUE)) + return true; + return false; + } + + // set true or false + public void setRACertLocalCA(String val) { + put(ConfigConstants.PR_RACERT_LOCALCA, val); + } + + public boolean isOCSPCertLocalCA() { + String val = (String)get(ConfigConstants.PR_OCSPCERT_LOCALCA); + if (val == null) + return true; + else if (val.equals(Constants.TRUE)) + return true; + return false; + } + + // set true or false + public void setOCSPCertLocalCA(String val) { + put(ConfigConstants.PR_OCSPCERT_LOCALCA, val); + } + + public boolean isKRACertLocalCA() { + String val = (String)get(ConfigConstants.PR_KRACERT_LOCALCA); + if (val == null) + return true; + else if (val.equals(Constants.TRUE)) + return true; + return false; + } + + // set true or false + public void setKRACertLocalCA(String val) { + put(ConfigConstants.PR_KRACERT_LOCALCA, val); + } + + public boolean isSSLCertLocalCA() { + String val = (String)get(ConfigConstants.PR_SSLCERT_LOCALCA); + if (val == null || val.equals("")) + return true; + else if (val.equals(Constants.TRUE)) + return true; + return false; + } + + // set true or false + public void setSSLCertLocalCA(String val) { + put(ConfigConstants.PR_SSLCERT_LOCALCA, val); + } + + public void setInstallCertNow(String val) { + put(INSTALLCERT_NOW, val); + } + + public boolean isInstallCertNow() { + String val = (String)get(INSTALLCERT_NOW); + if (val == null) + return false; + else if (val.equals(Constants.TRUE)) + return true; + return false; + } + + public String getCertContent() { + return (String)get(Constants.PR_CERT_CONTENT); + } + + public String getNickname() { + return (String)get(Constants.PR_NICKNAME); + } + + public String getCertOrder() { + return (String)get(ConfigConstants.PR_CERT_CONTENT_ORDER); + } + + public String getPKCS10() { + String val = (String)get(Constants.PR_PKCS10); + if (val != null && !val.equals("")) + return val; + return null; + } + + public void setPKCS10(String b64E) { + put(Constants.PR_PKCS10, b64E); + } + + public String getCertFilePath() { + String val = (String)get(Constants.PR_CERT_FILEPATH); + if (val != null && !val.equals("")) + return val; + return null; + } + + public void setCertFilePath(String path) { + put(Constants.PR_CERT_FILEPATH, path); + } + + public String getMachineName() { + return (String)get(ConfigConstants.PR_MACHINE_NAME); + } + + public void setEnableMigration(String val) { + put(ConfigConstants.PR_ENABLE_MIGRATION, val); + } + + public boolean isMigrationEnable() { + String val = (String)get(ConfigConstants.PR_ENABLE_MIGRATION); + if (val != null && val.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public void setMigrationOutputPath(String path) { + put(ConfigConstants.PR_OUTPUT_PATH, path); + } + + public String getMigrationOutputPath() { + return (String)get(ConfigConstants.PR_OUTPUT_PATH); + } + + public void setInternalDBPasswd(String passwd) { + put(ConfigConstants.PR_DB_PWD, passwd); + } + + public String getInternalDBPasswd() { + return (String)get(ConfigConstants.PR_DB_PWD); + } + + public void setMigrationPasswd(String val) { + put(ConfigConstants.PR_MIGRATION_PASSWORD, val); + } + + public String getMigrationPasswd() { + return (String)get(ConfigConstants.PR_MIGRATION_PASSWORD); + } + + public void setSigningKeyMigrationToken(String tokenname) { + put(ConfigConstants.PR_SIGNING_KEY_MIGRATION_TOKEN, tokenname); + } + + public String getSigningKeyMigrationToken() { + return (String)get(ConfigConstants.PR_SIGNING_KEY_MIGRATION_TOKEN); + } + + public void setSSLKeyMigrationToken(String tokenname) { + put(ConfigConstants.PR_SSL_KEY_MIGRATION_TOKEN, tokenname); + } + + public String getSSLKeyMigrationToken() { + return (String)get(ConfigConstants.PR_SSL_KEY_MIGRATION_TOKEN); + } + + public void setSigningKeyMigrationPasswd(String val) { + put(ConfigConstants.PR_SIGNING_KEY_MIGRATION_TOKEN_PASSWD, val); + } + + public String getSigningKeyMigrationPasswd() { + return (String)get(ConfigConstants.PR_SIGNING_KEY_MIGRATION_TOKEN_PASSWD); + } + + public void setSigningKeyMigrationSOPPasswd(String val) { + put(ConfigConstants.PR_SIGNING_KEY_MIGRATION_TOKEN_SOPPASSWD, val); + } + + public String getSigningKeyMigrationSOPPasswd() { + return (String)get(ConfigConstants.PR_SIGNING_KEY_MIGRATION_TOKEN_SOPPASSWD); + } + + public void setSSLKeyMigrationPasswd(String val) { + put(ConfigConstants.PR_SSL_KEY_MIGRATION_TOKEN_PASSWD, val); + } + + public String getSSLKeyMigrationPasswd() { + return (String)get(ConfigConstants.PR_SSL_KEY_MIGRATION_TOKEN_PASSWD); + } + + public void setSSLKeyMigrationSOPPasswd(String val) { + put(ConfigConstants.PR_SSL_KEY_MIGRATION_TOKEN_SOPPASSWD, val); + } + + public String getSSLKeyMigrationSOPPasswd() { + return (String)get(ConfigConstants.PR_SSL_KEY_MIGRATION_TOKEN_SOPPASSWD); + } + + public void setInstalledOCSP(String val) { + put(ConfigConstants.PR_OCSP, val); + } + + public void setInstalledCA(String val) { + put(ConfigConstants.PR_CA, val); + } + + public boolean isOCSPInstalled() { + String str = (String)get(ConfigConstants.PR_OCSP); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public boolean isCAInstalled() { + String str = (String)get(ConfigConstants.PR_CA); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public void setInstalledRA(String val) { + put(ConfigConstants.PR_RA, val); + } + + public boolean isRAInstalled() { + String str = (String)get(ConfigConstants.PR_RA); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public void setInstalledKRA(String val) { + put(ConfigConstants.PR_KRA, val); + } + + public void setInstalledTKS(String val) { + put(ConfigConstants.PR_TKS, val); + } + + public boolean isKRAInstalled() { + String str = (String)get(ConfigConstants.PR_KRA); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + public boolean isTKSInstalled() { + String str = (String)get(ConfigConstants.PR_TKS); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + public boolean isOCSPServiceAdded() { + String str = (String)get(ConfigConstants.PR_CA_OCSP_SERVICE); + if (str == null || str.equals(ConfigConstants.FALSE)) + return false; + return true; + } + + public void setOCSPService(String val) { + put(ConfigConstants.PR_CA_OCSP_SERVICE, val); + } + + public void setCMHost(String host) { + put(ConfigConstants.CA_HOST, host); + } + + public String getCMHost() { + return (String)get(ConfigConstants.CA_HOST); + } + + public void setCMPort(String port) { + put(ConfigConstants.CA_PORT, port); + } + + public String getCMPort() { + return (String)get(ConfigConstants.CA_PORT); + } + + public void setCMTimeout(String timeout) { + put(ConfigConstants.CA_TIMEOUT, timeout); + } + + public String getCMTimeout() { + return (String)get(ConfigConstants.CA_TIMEOUT); + } + + public void setCMEEPort(String port) { + put(ConfigConstants.CA_EEPORT, port); + } + + public String getCMEEPort() { + return (String)get(ConfigConstants.CA_EEPORT); + } + + public void setCMEEType(String type) { + put(ConfigConstants.CA_EETYPE, type); + } + + public String getCMEEType() { + return (String)get(ConfigConstants.CA_EETYPE); + } + + public void setRequestStatus(String requestStatus) { + put(getCertType()+ConfigConstants.PR_CERT_REQUEST+"Status", requestStatus); + } + + public String getRequestStatus() { + return (String)get(getCertType()+ConfigConstants.PR_CERT_REQUEST+"Status"); + } + + public void setRequestID(String requestID) { + put(getCertType()+ConfigConstants.PR_REQUEST_ID, requestID); + } + + public String getRequestID() { + return (String)get(getCertType()+ConfigConstants.PR_REQUEST_ID); + } + + public void setX509RequestStatus(String requestStatus) { + put("x509"+ConfigConstants.PR_CERT_REQUEST+"Status", requestStatus); + } + + public String getX509RequestStatus() { + return (String)get("x509"+ConfigConstants.PR_CERT_REQUEST+"Status"); + } + + public void setX509RequestID(String requestID) { + put("x509"+getCertRequest()+ConfigConstants.PR_CERT_REQUEST, requestID); + } + + public String getX509RequestID() { + return (String)get("x509"+getCertRequest()+ConfigConstants.PR_CERT_REQUEST); + } + + public void setRequestSent(boolean sent) { + if (sent) + put(getCertRequest()+"Sent", ConfigConstants.TRUE); + else + put(getCertRequest()+"Sent", ConfigConstants.FALSE); + } + + public boolean requestSent() { + String str = (String)get(getCertRequest()+"Sent"); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + return false; + } + + public void setRequestError(String error) { + put(getCertRequest()+"Error", error); + } + + public String getRequestError() { + return (String)get(getCertRequest()+"Error"); + } + + public void setImportError(String error) { + put(getCertType()+"Error", error); + } + + public String getImportError() { + return (String)get(getCertType()+"Error"); + } + + public void setX509RequestError(String error) { + put("x509"+getCertRequest()+"Error", error); + } + + public String getX509RequestError() { + return (String)get("x509"+getCertRequest()+"Error"); + } + + public void setDRMHost(String host) { + put(ConfigConstants.KRA_HOST, host); + } + + public String getDRMHost() { + return (String)get(ConfigConstants.KRA_HOST); + } + + public void setDRMPort(String port) { + put(ConfigConstants.KRA_PORT, port); + } + + public String getDRMPort() { + return (String)get(ConfigConstants.KRA_PORT); + } + + public void setDRMTimeout(String timeout) { + put(ConfigConstants.KRA_TIMEOUT, timeout); + } + + public String getDRMTimeout() { + return (String)get(ConfigConstants.KRA_TIMEOUT); + } + + public void enableRemoteDRM(String enable) { + put(ConfigConstants.REMOTE_KRA_ENABLED, enable); + } + + public boolean isRemoteDRM() { + String value = (String)get(ConfigConstants.REMOTE_KRA_ENABLED); + if (value == null || value.equals("") || value.equals(ConfigConstants.FALSE) || + !value.equals(ConfigConstants.TRUE)) + return false; + return true; + } + + public String getSingleSignon() { + return (String)get(ConfigConstants.PR_SINGLE_SIGNON); + } + + public void setRequiredAgents(String val) { + put(ConfigConstants.PR_AGENT_M, val); + } + + public String getRequiredAgents() { + return (String)get(ConfigConstants.PR_AGENT_M); + } + + public void setTotalAgents(String val) { + put(ConfigConstants.PR_AGENT_N, val); + } + + public String getTotalAgents() { + return (String)get(ConfigConstants.PR_AGENT_N); + } + + public String getHashType() { + return (String)get(ConfigConstants.PR_HASH_TYPE); + } + + public void setHashType(String type) { + put(ConfigConstants.PR_HASH_TYPE, type); + } + + public String getSignedByType() { + return (String)get(ConfigConstants.PR_SIGNEDBY_TYPE); + } + + public void setSignedByType(String type) { + put(ConfigConstants.PR_SIGNEDBY_TYPE, type); + } + + public String getCAKeyType() { + return (String)get(ConfigConstants.PR_CA_KEYTYPE); + } + + public boolean hasEntireCAChain() { + String str = (String)get(Constants.PR_CA_SIGNING_CERT+ + "hasEntireChain"); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + else + return false; + } + + public boolean hasEntireSSLChain() { + String str = (String)get(Constants.PR_SERVER_CERT+ + "hasEntireChain"); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + else + return false; + } + + public boolean hasEntireKRAChain() { + String str = (String)get(Constants.PR_KRA_TRANSPORT_CERT+ + "hasEntireChain"); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + else + return false; + } + + public boolean hasEntireOCSPChain() { + String str = (String)get(Constants.PR_OCSP_SIGNING_CERT+ + "hasEntireChain"); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + else + return false; + } + + public boolean hasEntireRAChain() { + String str = (String)get(Constants.PR_RA_SIGNING_CERT+ + "hasEntireChain"); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + else + return false; + } + + public String getOComponent() { + return (String)get(ConfigConstants.PR_O_COMPONENT); + } + + public void setOComponent(String str) { + put(ConfigConstants.PR_O_COMPONENT, str); + } + + public String getOUComponent() { + return (String)get(ConfigConstants.PR_OU_COMPONENT); + } + + public void setOUComponent(String str) { + put(ConfigConstants.PR_OU_COMPONENT, str); + } + + public String getLComponent() { + return (String)get(ConfigConstants.PR_L_COMPONENT); + } + + public void setLComponent(String str) { + put(ConfigConstants.PR_L_COMPONENT, str); + } + + public String getSTComponent() { + return (String)get(ConfigConstants.PR_ST_COMPONENT); + } + + public void setSTComponent(String str) { + put(ConfigConstants.PR_ST_COMPONENT, str); + } + + public String getCComponent() { + return (String)get(ConfigConstants.PR_C_COMPONENT); + } + + public void setCComponent(String str) { + put(ConfigConstants.PR_C_COMPONENT, str); + } + + public String getCAOComp() { + String str = (String)get(ConfigConstants.PR_CA_O_COMPONENT); + return str; + } + + public void setCAOComp(String str) { + put(ConfigConstants.PR_CA_O_COMPONENT, str); + } + + public String getCACComp() { + String str = (String)get(ConfigConstants.PR_CA_C_COMPONENT); + return str; + } + + public void setCACComp(String str) { + put(ConfigConstants.PR_CA_C_COMPONENT, str); + } + + public String getOCSPOComp() { + String str = (String)get(ConfigConstants.PR_OCSP_O_COMPONENT); + return str; + } + + public void setOCSPOComp(String str) { + put(ConfigConstants.PR_OCSP_O_COMPONENT, str); + } + + public String getRAOComp() { + String str = (String)get(ConfigConstants.PR_RA_O_COMPONENT); + return str; + } + + public void setRAOComp(String str) { + put(ConfigConstants.PR_RA_O_COMPONENT, str); + } + + public String getOCSPCComp() { + String str = (String)get(ConfigConstants.PR_OCSP_C_COMPONENT); + return str; + } + + public void setOCSPCComp(String str) { + put(ConfigConstants.PR_OCSP_C_COMPONENT, str); + } + + public String getRACComp() { + String str = (String)get(ConfigConstants.PR_RA_C_COMPONENT); + return str; + } + + public void setRACComp(String str) { + put(ConfigConstants.PR_RA_C_COMPONENT, str); + } + + public String getCertRequestDir() { + return (String)get(Constants.PR_CERT_REQUEST_DIR); + } + + public void setCASerialNumber(String str) { + put(ConfigConstants.PR_CA_SERIAL_NUMBER, str); + } + public void setRequestNumber(String str) { + put(ConfigConstants.PR_REQUEST_NUMBER, str); + } + + public String getCASerialNumber() { + return (String)get(ConfigConstants.PR_CA_SERIAL_NUMBER); + } + public String getRequestNumber() { + return (String)get(ConfigConstants.PR_REQUEST_NUMBER); + } + + public void clearRequestNumber() { + remove(ConfigConstants.PR_REQUEST_NUMBER); + } + + public void setCAEndSerialNumber(String str) { + put(ConfigConstants.PR_CA_ENDSERIAL_NUMBER, str); + } + + public String getCAEndSerialNumber() { + return (String)get(ConfigConstants.PR_CA_ENDSERIAL_NUMBER); + } + + public void clearCAEndSerialNumber() { + remove(ConfigConstants.PR_CA_ENDSERIAL_NUMBER); + } + public String getEndRequestNumber() { + return (String)get(ConfigConstants.PR_ENDREQUEST_NUMBER); + } + + public boolean isCloning() { + String str = (String)get("cloning"); + if (str != null && str.equals(ConfigConstants.TRUE)) + return true; + else + return false; + } + public void setCloning(String str) { + put("cloning", str); + } + public void setCLAHost(String host) { + put(ConfigConstants.CLA_HOST, host); + } + + public String getCLAHost() { + return (String)get(ConfigConstants.CLA_HOST); + } + + public void setCLAPort(String port) { + put(ConfigConstants.CLA_PORT, port); + } + + public String getCLAPort() { + return (String)get(ConfigConstants.CLA_PORT); + } + + public void setCLAPortEE(String port) { + put(ConfigConstants.CLA_PORT_EE, port); + } + + public String getCLAPortEE() { + return (String)get(ConfigConstants.CLA_PORT_EE); + } + + public void setCLATimeout(String timeout) { + put(ConfigConstants.CLA_TIMEOUT, timeout); + } + + public String getCLATimeout() { + return (String)get(ConfigConstants.CLA_TIMEOUT); + } + + public boolean isConnectDBDone() { + String val = (String)get(ConfigConstants.STAGE_CONNECT_DB); + if (val == null || val.equals("") || val.equals(ConfigConstants.FALSE)) + return false; + return true; + } + + public void setConnectDBDone(String s) { + put(ConfigConstants.STAGE_CONNECT_DB, s); + } + + public boolean isCreateDBDone() { + String val = (String)get(ConfigConstants.STAGE_INTERNAL_DB); + if (val == null || val.equals("") || val.equals(ConfigConstants.FALSE)) + return false; + return true; + } + + public void setCreateDBDone(String s) { + put(ConfigConstants.STAGE_INTERNAL_DB, s); + } + + public boolean isWebServerDone() { + String val = (String)get(ConfigConstants.STAGE_CONFIG_WEBSERVER); + if (val == null || val.equals("") || val.equals(ConfigConstants.FALSE)) + return false; + return true; + } + + public void setWebServerDone(String str) { + put(ConfigConstants.STAGE_CONFIG_WEBSERVER, str); + } + + public boolean isOCSPServiceDone() { + String val = (String)get(ConfigConstants.STAGE_OCSP_SERVICE_ADDED); + if (val == null || val.equals("") || val.equals(ConfigConstants.FALSE)) + return false; + return true; + } + + public boolean isCACertRequestSucc() { + String str = (String)get(ConfigConstants.STAGE_CA_REQ_SUCCESS); + if (str == null || str.equals("") || str.equals(ConfigConstants.FALSE)) + return false; + return true; + } + + public boolean isRACertRequestSucc() { + String str = (String)get(ConfigConstants.STAGE_RA_REQ_SUCCESS); + if (str == null || str.equals("") || str.equals(ConfigConstants.FALSE)) + return false; + return true; + } + + public boolean isKRACertRequestSucc() { + String str = (String)get(ConfigConstants.STAGE_KRA_REQ_SUCCESS); + if (str == null || str.equals("") || str.equals(ConfigConstants.FALSE)) + return false; + return true; + } + + public boolean isSSLCertRequestSucc() { + String str = (String)get(ConfigConstants.STAGE_SSL_REQ_SUCCESS); + if (str == null || str.equals("") || str.equals(ConfigConstants.FALSE)) + return false; + return true; + } + + public boolean isOCSPCertRequestSucc() { + String str = (String)get(ConfigConstants.STAGE_OCSP_REQ_SUCCESS); + if (str == null || str.equals("") || str.equals(ConfigConstants.FALSE)) + return false; + return true; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIAdminPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIAdminPage.java new file mode 100644 index 000000000..467632102 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIAdminPage.java @@ -0,0 +1,266 @@ +// --- 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.config.install; + +import java.util.*; +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.console.*; + +/** + * Admin page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIAdminPage extends WizardBasePanel implements IWizardPanel { + private JCheckBox mEnable; + private JTextField mIDText, mFullNameText, mPasswordText, + mPasswordAgainText; + private static final String PANELNAME = "ADMININSTALLWIZARD"; + private static final String HELPINDEX = + "install-administrator-configuration-wizard-help"; + + WIAdminPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIAdminPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isAgreementDone() && + wizardInfo.isReplicationEnabled()) + return false; + if (wizardInfo.isCloning() && !wizardInfo.isAgreementDone()) + return false; + if (wizardInfo.isAdministratorDone()) + return false; + mIDText.setText(wizardInfo.getCertAdminUid()); + mFullNameText.setText(wizardInfo.getCertAdminName()); + + setBorder(makeTitledBorder(PANELNAME)); + + return true; + } + + public boolean validatePanel() { + String password = mPasswordText.getText().trim(); + String passwordAgain = mPasswordAgainText.getText().trim(); + if (password.equals("") || passwordAgain.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + + if (!password.equals(passwordAgain)) { + setErrorMessage("NOTSAMEPASSWD"); + return false; + } + + if (mIDText.getText().trim().equals("")) { + setErrorMessage("BLANKADMINID"); + return false; + } + + if (mFullNameText.getText().trim().equals("")) { + setErrorMessage("BLANKADMINNAME"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_SETUP_ADMINISTRATOR; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_CERT_ADMINUID+"="+mIDText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_CERT_ADMINNAME+"="+mFullNameText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_CERT_ADMINPASSWD+"="+mPasswordAgainText.getText(); + if (mEnable.isSelected()) { + rawData = rawData+"&"+ConfigConstants.PR_ENABLE+"=true"; + } else { + rawData = rawData+"&"+ConfigConstants.PR_ENABLE+"=false"; + } + if (wizardInfo.getInternalDBPasswd() != null) + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+wizardInfo.getInternalDBPasswd(); + wizardInfo.setCertAdminUid(mIDText.getText().trim()); + wizardInfo.setCertAdminName(mFullNameText.getText().trim()); + + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc = createTextArea(mResource.getString( + "ADMININSTALLWIZARD_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel idLbl = makeJLabel("ADMINID"); + gbc.anchor = gbc.NORTHEAST; + gbc.insets = new Insets(COMPONENT_SPACE,0, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(idLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mIDText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mIDText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel nameLbl = makeJLabel("FULLNAME"); + gbc.insets = new Insets(0, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.NORTHEAST; + add(nameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mFullNameText = makeJTextField(30); + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + add(mFullNameText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel passwdLbl = makeJLabel("PASSWORD"); + gbc.insets = new Insets(0, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + add(passwdLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPasswordText = makeJPasswordField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mPasswordText, gbc); + +/* + CMSAdminUtil.resetGBC(gbc); + JTextArea dummy2 = createTextArea(" ", 1, 5); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(dummy2, gbc); +*/ + + CMSAdminUtil.resetGBC(gbc); + JLabel passwdAgainLbl = makeJLabel("PASSWORDAGAIN"); + gbc.insets = new Insets(0, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + add(passwdAgainLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPasswordAgainText = makeJPasswordField(30); + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + add(mPasswordAgainText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel passwdAgainLbl1 = makeJLabel("DUMMY"); + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.weighty = 1.0; + add(passwdAgainLbl1, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEnable = makeJCheckBox("ENABLE"); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weighty = 1.0; + gbc.gridheight = gbc.REMAINDER; + gbc.gridwidth = gbc.REMAINDER; + add(mEnable, gbc); + mEnable.setSelected(true); +/* + CMSAdminUtil.resetGBC(gbc); + JTextArea dummy3 = createTextArea(" ", 1, 5); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy3, gbc); +*/ + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIAllCertsInstalledPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIAllCertsInstalledPage.java new file mode 100644 index 000000000..b84460814 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIAllCertsInstalledPage.java @@ -0,0 +1,269 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIAllCertsInstalledPage extends WizardBasePanel implements IWizardPanel { + private JTextArea mLabel; + private static final String PANELNAME = "ALLCERTSINSTALLEDWIZARD"; + private static final String HELPINDEX = + "install-allcerts-getinstalled-wizard-help"; + + WIAllCertsInstalledPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIAllCertsInstalledPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return true; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (wizardInfo.isCloning()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) { + if (caCertInstalled(wizardInfo) && kraCertInstalled(wizardInfo)) + return false; + if (wizardInfo.isCloning()) { + if (wizardInfo.isCACloningDone() && wizardInfo.isKRACloningDone()) { + if (wizardInfo.isSSLCloningDone()) + return false; + else if (!wizardInfo.isSSLCloningDone()) { + if (wizardInfo.isSSLLocalCertDone() || wizardInfo.isSSLCertInstalledDone()) + return false; + } + } + } + } + + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) { + if (raCertInstalled(wizardInfo) && kraCertInstalled(wizardInfo)) + return false; + if (wizardInfo.isCloning()) { + if (wizardInfo.isRACloningDone() && wizardInfo.isKRACloningDone()) { + if (wizardInfo.isSSLCloningDone()) + return false; + else if (!wizardInfo.isSSLCloningDone()) { + if (wizardInfo.isSSLLocalCertDone() || wizardInfo.isSSLCertInstalledDone()) + return false; + } + } + } + } + + else if (wizardInfo.isCAInstalled()) { + if (caCertInstalled(wizardInfo)) + return false; + if (wizardInfo.isCloning()) { + if (wizardInfo.isCACloningDone()) { + if (wizardInfo.isSSLCloningDone()) + return false; + else if (!wizardInfo.isSSLCloningDone()) { + if (wizardInfo.isSSLLocalCertDone() || wizardInfo.isSSLCertInstalledDone()) + return false; + } + } + } + } + else if (wizardInfo.isOCSPInstalled()) { + if (ocspCertInstalled(wizardInfo)) + return false; + } + + else if (wizardInfo.isRAInstalled()) { + if (raCertInstalled(wizardInfo)) + return false; + if (wizardInfo.isCloning()) { + if (wizardInfo.isRACloningDone()) { + if (wizardInfo.isSSLCloningDone()) + return false; + else if (!wizardInfo.isSSLCloningDone()) { + if (wizardInfo.isSSLLocalCertDone() || wizardInfo.isSSLCertInstalledDone()) + return false; + } + } + } + } + + else if (wizardInfo.isKRAInstalled()) { + if (kraCertInstalled(wizardInfo)) + return false; + if (wizardInfo.isCloning()) { + if (wizardInfo.isKRACloningDone()) { + if (wizardInfo.isSSLCloningDone()) + return false; + else if (!wizardInfo.isSSLCloningDone()) { + if (wizardInfo.isSSLLocalCertDone() || wizardInfo.isSSLCertInstalledDone()) + return false; + } + } + } + } + else if (wizardInfo.isTKSInstalled()) { + if (tksCertInstalled(wizardInfo)) + return false; + } + setBorder(makeTitledBorder(PANELNAME)); + mLabel.setVisible(false); + + return true; + } + + private boolean caCertInstalled(InstallWizardInfo wizardInfo) { + if (wizardInfo.isMigrationEnable() || + ((wizardInfo.isSelfSignedCACertDone() || + wizardInfo.isCACertInstalledDone()) && + (wizardInfo.isSSLLocalCertDone() || wizardInfo.isSSLCertInstalledDone()))) + return true; + return false; + } + + private boolean ocspCertInstalled(InstallWizardInfo wizardInfo) { + if (wizardInfo.isOCSPCertInstalledDone() && + wizardInfo.isSSLCertInstalledDone()) + return true; + return false; + } + + private boolean raCertInstalled(InstallWizardInfo wizardInfo) { + if ((wizardInfo.isRALocalCertDone() || + wizardInfo.isRACertInstalledDone()) && + (wizardInfo.isMigrationEnable() || wizardInfo.isSSLLocalCertDone() || + wizardInfo.isSSLCertInstalledDone())) + return true; + return false; + } + + private boolean kraCertInstalled(InstallWizardInfo wizardInfo) { + if ((wizardInfo.isKRALocalCertDone() || + wizardInfo.isKRACertInstalledDone()) && + (wizardInfo.isMigrationEnable() || wizardInfo.isSSLLocalCertDone() || + wizardInfo.isSSLCertInstalledDone())) + return true; + return false; + } + private boolean tksCertInstalled(InstallWizardInfo wizardInfo) { + if(wizardInfo.isSSLCertInstalledDone()) + return true; + return false; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_GET_DEFAULT_INFO; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_READ; + // #344791 - help server to make up the hostname +/* + data.put(ConfigConstants.PR_HOST, + consoleInfo.get(ConfigConstants.PR_HOST)); +*/ + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_DESC_LABEL")); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mLabel = createTextArea(mResource.getString( + "INTROINSTALLWIZARD_TEXT_HEADING_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + //gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mLabel, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1CustomPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1CustomPage.java new file mode 100644 index 000000000..6f8c26032 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1CustomPage.java @@ -0,0 +1,72 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Setup CA signing cert for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICACert1CustomPage extends WBaseKeyPage implements IWizardPanel { + private static final String PANELNAME = "CACERT1CUSTOMWIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + + WICACert1CustomPage() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1Page.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1Page.java new file mode 100644 index 000000000..c3ca75420 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1Page.java @@ -0,0 +1,218 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Setup CA signing cert for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICACert1Page extends WizardBasePanel implements IWizardPanel { + private JComboBox mKeyTypeBox; + private JComboBox mKeyLengthBox; + //private JComboBox mTokenBox; + //private JPasswordField mPasswordText; + + private static final String PANELNAME = "CACERT1WIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + + WICACert1Page() { + super(PANELNAME); + init(); + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean isLastPage() { + return false; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT1WIZARD_TEXT_HEADING_LABEL"), 80), 2, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + +/* + JTextArea desc1 = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT1WIZARD_TEXT_TOKENHEADING_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc1, gbc); + + JLabel tokenLbl = makeJLabel("TOKEN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(tokenLbl, gbc); + + mTokenBox = new JComboBox(); + mTokenBox.addItem("internal"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,0, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mTokenBox, gbc); + + JTextArea dummy = createTextArea(" ", 1, 5); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,0, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(dummy, gbc); + + JTextArea desc2 = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT1WIZARD_TEXT_HARDWARE_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(2*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc2, gbc); + + JLabel pwdLbl = makeJLabel("PWD"); + mPasswordText = makeJPasswordField(20); + //JTextArea dummy1 = createTextArea(" ", 1, 10); + //CMSAdminUtil.addComponents(this, pwdLbl, mPasswordText, dummy1, gbc); + CMSAdminUtil.addComponents(this, pwdLbl, mPasswordText, gbc); +*/ + + JTextArea desc3 = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERT1WIZARD_TEXT_KEY_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(2*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc3, gbc); + + JPanel panel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); + + JLabel keyTypeLbl = makeJLabel("KEYTYPE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(keyTypeLbl, gbc); + + mKeyTypeBox = makeJComboBox("KEYTYPE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + panel.add(mKeyTypeBox, gbc); + + JLabel keyLengthLbl = makeJLabel("KEYLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + //gbc.weighty = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE,0,COMPONENT_SPACE); + gbc.gridheight = gbc.REMAINDER; + panel.add(keyLengthLbl, gbc); + + mKeyLengthBox = makeJComboBox("KEYLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + //gbc.weighty = 1.0; + gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE,0,COMPONENT_SPACE); + panel.add(mKeyLengthBox, gbc); + + JLabel unitLbl = makeJLabel("UNITS"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + //gbc.weighty = 1.0; + gbc.insets = new Insets(0, 0,0,COMPONENT_SPACE); + panel.add(unitLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(panel, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICACert2Page.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICACert2Page.java new file mode 100644 index 000000000..79fc00b02 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICACert2Page.java @@ -0,0 +1,72 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * CA signing cert for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICACert2Page extends WBaseDNPage implements IWizardPanel { + private static final String PANELNAME = "CACERT2WIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + + WICACert2Page() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICACertDNPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICACertDNPage.java new file mode 100644 index 000000000..531de6be5 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICACertDNPage.java @@ -0,0 +1,97 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; + +/** + * Subject DN page for CA signing certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICACertDNPage extends WICertDNPage { + private static final String PANELNAME = "INSTALLCACERTDNWIZARD"; + private static final String CALOCALHELPINDEX = "install-cacertlocal-subjectdn-wizard-help"; + private static final String CAREMOTEHELPINDEX = "install-cacertsub-subjectdn-wizard-help"; + private static final String CAKRALOCALHELPINDEX = "install-cakracertlocal-subjectdn-wizard-help"; + private static final String CAKRAREMOTEHELPINDEX = "install-cakracertsub-subjectdn-wizard-help"; + + WICACertDNPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WICACertDNPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + + if (!wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() || + wizardInfo.isSelfSignedCACertDone() || wizardInfo.isCACertRequestDone() || + wizardInfo.isCACertInstalledDone()) + return false; + //dnDesc.setText(CA_DN); + String str = wizardInfo.getCASubjectName(); + if (str == null || str.equals("")) + str = CA_CN+", "+CA_C; + wizardInfo.setCASubjectName(str); + populateDN(str); + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + if (wizardInfo.isCACertLocalCA()) + mHelpIndex = CAKRALOCALHELPINDEX; + else + mHelpIndex = CAKRAREMOTEHELPINDEX; + else if (wizardInfo.isCACertLocalCA()) + mHelpIndex = CALOCALHELPINDEX; + else + mHelpIndex = CAREMOTEHELPINDEX; + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (super.concludePanel(info)) { + wizardInfo.setCASubjectName(mStr); + return true; + } + + return false; + } + + public void getUpdateInfo(WizardInfo info) { +/* + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String str = mOText.getText().trim(); + wizardInfo.setCAOComp(str); + str = mCText.getText().trim(); + wizardInfo.setCACComp(str); +*/ + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICACertExtensionPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICACertExtensionPage.java new file mode 100644 index 000000000..1a1a1a8b9 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICACertExtensionPage.java @@ -0,0 +1,80 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.border.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Certificate Extension page for CA signing Certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICACertExtensionPage extends WICertExtensionPage { + private static final String PANELNAME = "INSTALLCACERTEXTENSION1WIZARD"; + private static final String CAHELPINDEX = "install-cacert-extension-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakracert-extension-wizard-help"; + + WICACertExtensionPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WICACertExtensionPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + + if (!wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() || + wizardInfo.isSelfSignedCACertDone() || + wizardInfo.isCACertRequestDone() || wizardInfo.isCACertInstalledDone()) + return false; + + if (!mModified) { + mBasicCheckBox.setSelected(true); + mAKICheckBox.setSelected(true); + mCACheckBox.setSelected(true); + mSKICheckBox.setSelected(true); + mCertPathBox.setSelected(false); + mExtendedKeyCheckBox.setSelected(false); + mKeyUsageBox.setSelected(true); + } + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else + mHelpIndex = CAHELPINDEX; + + return super.initializePanel(info); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICACertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICACertPage.java new file mode 100644 index 000000000..b962c6ca1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICACertPage.java @@ -0,0 +1,172 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * This page allows the user to generate a CA certificate request. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICACertPage extends WizardBasePanel implements IWizardPanel { + private JRadioButton mSelfBtn, mSubordinateBtn, mEmailBtn; + private JRadioButton mUrlBtn, mManualBtn; + private JTextField mEmailText; + private JTextField mUrlText; + private static final String PANELNAME = "CACERTWIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + + WICACertPage() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERTWIZARD_TEXT_HEADING_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mSelfBtn = makeJRadioButton("SELF", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSelfBtn, gbc); + + mSubordinateBtn = makeJRadioButton("SUBORDINATE", false); + CMSAdminUtil.resetGBC(gbc); + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSubordinateBtn, gbc); + + JTextArea desc1 = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "CACERTWIZARD_TEXT_HEADING1_LABEL"), 80), 2, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc1, gbc); + + mEmailBtn = makeJRadioButton("EMAIL", true); + CMSAdminUtil.resetGBC(gbc); + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mEmailBtn, gbc); + + mEmailText = makeJTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mEmailText, gbc); + + mUrlBtn = makeJRadioButton("URL", false); + CMSAdminUtil.resetGBC(gbc); + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mUrlBtn, gbc); + + mUrlText = makeJTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mUrlText, gbc); + + mManualBtn = makeJRadioButton("MANUAL", false); + CMSAdminUtil.resetGBC(gbc); + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mManualBtn, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.gridwidth = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + + ButtonGroup CAButtonGrp = new ButtonGroup(); + CAButtonGrp.add(mSelfBtn); + CAButtonGrp.add(mSubordinateBtn); + + ButtonGroup MethodButtonGrp = new ButtonGroup(); + MethodButtonGrp.add(mEmailBtn); + MethodButtonGrp.add(mUrlBtn); + MethodButtonGrp.add(mManualBtn); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICACertSubmitPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICACertSubmitPage.java new file mode 100644 index 000000000..efa2d8b0c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICACertSubmitPage.java @@ -0,0 +1,79 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * CA Certificate Submission. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICACertSubmitPage extends WICertSubmitPage implements IWizardPanel { + private static final String PANELNAME = "INSTALLCACERTWIZARD"; + private static final String CAHELPINDEX = "install-catype-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakratype-wizard-help"; + + WICACertSubmitPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WICACertSubmitPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_CA_SIGNING_CERT); + if (!wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() || + wizardInfo.isSelfSignedCACertDone() || wizardInfo.isCACertRequestDone() || + wizardInfo.isCACertInstalledDone()) + return false; + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else + mHelpIndex = CAHELPINDEX; + return super.initializePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mSelfButton.isSelected()) + wizardInfo.setCACertLocalCA(Constants.TRUE); + else + wizardInfo.setCACertLocalCA(Constants.FALSE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICACertValidityPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICACertValidityPage.java new file mode 100644 index 000000000..cb8fa550d --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICACertValidityPage.java @@ -0,0 +1,75 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Validity page for CA signing certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICACertValidityPage extends WICertValidityPage { + private static final String PANELNAME = "INSTALLCACERTVALIDWIZARD"; + private static final String CAHELPINDEX = "install-cacert-validity-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakracert-validity-wizard-help"; + + WICACertValidityPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WICACertValidityPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + if (!wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() || + wizardInfo.isSelfSignedCACertDone() || wizardInfo.isCACertRequestDone() || + wizardInfo.isCACertInstalledDone()) + return false; + if (super.initializePanel(info)) { + if (!wizardInfo.isCACertLocalCA()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else + mHelpIndex = CAHELPINDEX; + + return true; + } + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICAKeyPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICAKeyPage.java new file mode 100644 index 000000000..accc866b2 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICAKeyPage.java @@ -0,0 +1,115 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Setup key information for CA signing certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICAKeyPage extends WIKeyPage implements IWizardPanel { + private static final String PANELNAME = "INSTALLCAKEYWIZARD"; + private static final String CALOCALHELPINDEX = + "install-cakeylocal-configuration-wizard-help"; + private static final String CAREMOTEHELPINDEX = + "install-cakeysub-configuration-wizard-help"; + private static final String CAKRALOCALHELPINDEX = + "install-cakrakeylocal-configuration-wizard-help"; + private static final String CAKRAREMOTEHELPINDEX = + "install-cakrakeysub-configuration-wizard-help"; + + WICAKeyPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WICAKeyPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + mWizardInfo = (InstallWizardInfo)info; + if (mWizardInfo.isCloning() && mWizardInfo.isCACloningDone()) + return false; + + if (!mWizardInfo.isCAInstalled() || mWizardInfo.isMigrationEnable() || + mWizardInfo.isSelfSignedCACertDone() || mWizardInfo.isCACertRequestDone() || + mWizardInfo.isCACertInstalledDone()) + return false; + + if (super.initializePanel(info)) { + String caTokenName = mWizardInfo.getCATokenName(); + if (caTokenName == null || caTokenName.equals("")) { + mTokenBox.setSelectedIndex(0); + } else { + if (caTokenName.equals(Constants.PR_INTERNAL_TOKEN_NAME)) + mTokenBox.setSelectedIndex(0); + else + mTokenBox.setSelectedItem(caTokenName); + } + } + + int counts = mKeyTypeBox.getItemCount(); + if (counts == 1) + mKeyTypeBox.addItem("DSA"); + + if (mWizardInfo.isCAInstalled() && mWizardInfo.isKRAInstalled()) { + if (mWizardInfo.isCACertLocalCA()) + mHelpIndex = CAKRALOCALHELPINDEX; + else + mHelpIndex = CAKRAREMOTEHELPINDEX; + } else if (mWizardInfo.isCACertLocalCA()) + mHelpIndex = CALOCALHELPINDEX; + else + mHelpIndex = CAREMOTEHELPINDEX; + + enableFields(); + mIsCAKey = true; + return true; + } + + public void getUpdateInfo(WizardInfo info) { + super.getUpdateInfo(info); + mWizardInfo.setCATokenName(mWizardInfo.getTokenName()); + + if (mPassword.isEditable()) { + String tokenname = mWizardInfo.getCATokenName(); + + // this is used for single signon. The key is the token name with + // the prefix "TOKEN:" and the value is the token password. + mWizardInfo.put("TOKEN:"+tokenname, mPassword.getText().trim()); + } + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICAMessageDigestPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICAMessageDigestPage.java new file mode 100644 index 000000000..e19fc6586 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICAMessageDigestPage.java @@ -0,0 +1,80 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Setup the message digest information for the installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICAMessageDigestPage extends WMessageDigestPage { + + private static final String PANELNAME = "INSTALLCAMESSAGEDIGESTWIZARD"; + + WICAMessageDigestPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WICAMessageDigestPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + + if (!wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() || + !wizardInfo.isCACertLocalCA() || wizardInfo.isSelfSignedCACertDone() || + wizardInfo.isCACertRequestDone() || wizardInfo.isCACertInstalledDone()) + return false; + + mCAKeyType = wizardInfo.getCAKeyType(); + + return super.initializePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mDSAHashTypeBox.isVisible()) + wizardInfo.setHashType((String)mDSAHashTypeBox.getSelectedItem()); + else + wizardInfo.setHashType((String)mRSAHashTypeBox.getSelectedItem()); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICAOCSPServicePage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICAOCSPServicePage.java new file mode 100644 index 000000000..9245b14bf --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICAOCSPServicePage.java @@ -0,0 +1,172 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import java.math.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the starting serial number that the CA issues + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICAOCSPServicePage extends WizardBasePanel implements IWizardPanel { + private JTextArea mDesc; + + private boolean mEnable; + private JCheckBox mOCSPServiceCB; + private JLabel mOCSPServiceLabel; + + private static final String PANELNAME = "CAOCSPSERVICEWIZARD"; + private static final String HELPINDEX = + "install-ca-ocspservice-wizard-help"; + + WICAOCSPServicePage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WICAOCSPServicePage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + String serial; + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + setBorder(makeTitledBorder(PANELNAME)); + // If ca's signing cert is not generated, + // we allow "back" to modify the panel + if (!wizardInfo.isCAInstalled()) + return false; + if (wizardInfo.isOCSPServiceDone()) + return false; + if (wizardInfo.isOCSPInstalled()) + return false; + + mDesc.setText(mResource.getString(PANELNAME+"_TEXT_HEADING_LABEL")); + + return true; + } + + public boolean validatePanel() + { + mEnable = mOCSPServiceCB.isSelected(); + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_ADD_OCSP_SERVICE; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + if (mEnable) + rawData = rawData+"&"+ConfigConstants.PR_CA_OCSP_SERVICE+"="+ + "true"; + else + rawData = rawData+"&"+ConfigConstants.PR_CA_OCSP_SERVICE+"="+ + "false"; + + startProgressStatus(); + + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + mDesc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mDesc, gbc); + + CMSAdminUtil.resetGBC(gbc); + mOCSPServiceLabel = makeJLabel("OCSPSERVICE"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mOCSPServiceLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mOCSPServiceCB = makeJCheckBox("OCSPSERVICE"); + mOCSPServiceCB.setSelected(true); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mOCSPServiceCB, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mEnable) + wizardInfo.setOCSPService(ConfigConstants.TRUE); + else + wizardInfo.setOCSPService(ConfigConstants.FALSE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICARequestResultPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICARequestResultPage.java new file mode 100644 index 000000000..f40898821 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICARequestResultPage.java @@ -0,0 +1,59 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Display the CA signing certificate request result + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICARequestResultPage extends WIRequestResultPage { + WICARequestResultPage(JDialog parent) { + super(parent); + } + + WICARequestResultPage(JDialog parent, JFrame adminFrame) { + super( parent, adminFrame); + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + + if (wizardInfo.isCACertLocalCA() || !wizardInfo.isCAInstalled() || + wizardInfo.isMigrationEnable() || + wizardInfo.isCACertInstalledDone() || + (wizardInfo.isCACertRequestSucc() && wizardInfo.isCAReqResultDisplayed()) || + wizardInfo.isSelfSignedCACertDone()) + return false; + + wizardInfo.setCAReqResultDisplayed(Constants.TRUE); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICASerialNumberPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICASerialNumberPage.java new file mode 100644 index 000000000..3b1653d7f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICASerialNumberPage.java @@ -0,0 +1,381 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import java.math.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the starting serial number that the CA issues + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICASerialNumberPage extends WizardBasePanel implements IWizardPanel { + private JTextArea mDesc; + + private String mSerialNumber; + private JTextField mSerialNumberText; + private JLabel mSerialNumberLabel; + + private String mEndSerialNumber = null; + private JTextField mEndSerialNumberText; + private JLabel mEndSerialNumberLabel; + + private String mbeginRequestNumber; + private JTextField mbeginRequestNumberText; + private JLabel mbeginRequestNumberLabel; + + private String mEndRequestNumber = null; + private JTextField mEndRequestNumberText; + private JLabel mEndRequestNumberLabel; + + private static final String DEFAULT_SERIAL_NUMBER = "1"; + private static final String PANELNAME = "CASERIALNUMBERWIZARD"; + private static final String HELPINDEX = + "install-ca-serialnumber-wizard-help"; + + WICASerialNumberPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WICASerialNumberPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + String serial; + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + setBorder(makeTitledBorder(PANELNAME)); + // If ca's signing cert is not generated, + // we allow "back" to modify the panel + + if (!wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() || + wizardInfo.isSelfSignedCACertDone() || wizardInfo.isCACertRequestDone() + ||wizardInfo.isNumberPageDone()) + return false; + + if (wizardInfo.isCloning()) + mDesc.setText(mResource.getString(PANELNAME+"_TEXT_HEADING_LABEL") + + mResource.getString(PANELNAME+"_TEXT_MORE_LABEL")); + else + mDesc.setText(mResource.getString(PANELNAME+"_TEXT_HEADING_LABEL")); + + + if ((serial = wizardInfo.getCASerialNumber()) != null) + mSerialNumberText.setText(serial); + else + mSerialNumberText.setText(DEFAULT_SERIAL_NUMBER); + + if ((serial = wizardInfo.getRequestNumber()) != null) + mbeginRequestNumberText.setText(serial); + else + mbeginRequestNumberText.setText(DEFAULT_SERIAL_NUMBER); + + if ((serial = wizardInfo.getCAEndSerialNumber()) != null) + mEndSerialNumberText.setText(serial); + + if ((serial = wizardInfo.getEndRequestNumber()) != null) + mEndRequestNumberText.setText(serial); + + return true; + } + + private String hexToDecimal(String hex, boolean isHex) + { + //String newHex = hex.substring(2); + BigInteger bi; + if(isHex) + bi = new BigInteger(hex, 16); + else + bi = new BigInteger(hex, 10); + return bi.toString(); + } + + private String DecToHex(String dec) + { + BigInteger bi; + bi = new BigInteger(dec, 10); + return bi.toString(16); + } + + private boolean validateNumber(JTextField beginNumberField, JTextField endNumberField,String beginText, String endText,boolean isSerialNumber) + { + BigInteger num = null; + BigInteger endNum = null; + String serial = null; + beginText = beginNumberField.getText().trim(); + if (beginText != null && !beginText.equals("")) { + try { + if (beginText.startsWith("0x")) { + serial = hexToDecimal(beginText.substring(2),true); + } else { + serial = beginText; + } + num = new BigInteger(serial); + if (num.compareTo(new BigInteger("0")) < 0) { + setErrorMessage("You must specify a positive value."); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("You must specify a numeric value."); + return false; + } + if(isSerialNumber) + mSerialNumber = DecToHex(serial); // Hex to the server + else + mbeginRequestNumber = serial; + } else { + if(isSerialNumber) + mSerialNumber = ""; + else + mbeginRequestNumber = ""; + } + endText = endNumberField.getText().trim(); + if (endText != null && !endText.equals("")) { + try { + if (endText.startsWith("0x")) { + serial = hexToDecimal(endText.substring(2),true); + } else { + serial = endText; + } + endNum = new BigInteger(serial); + if (endNum.compareTo(new BigInteger("0")) < 0) { + setErrorMessage("You must specify a positive value."); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("You must specify a numeric value."); + return false; + } + if(isSerialNumber) + mEndSerialNumber = DecToHex(serial); // Hex to the Server + else + mEndRequestNumber = serial; + } else { + if(isSerialNumber) + mEndSerialNumber = ""; + else + mEndRequestNumber = ""; + } + + if (num != null && endNum != null && num.compareTo(endNum) > 0) { + setErrorMessage("Ending number must be greater than starting number."); + return false; + } + return true; + } + public boolean validatePanel() { + + if(validateNumber(mSerialNumberText,mEndSerialNumberText,mSerialNumber,mEndSerialNumber,true)==false) + return false; + if(validateNumber(mbeginRequestNumberText,mEndRequestNumberText,mbeginRequestNumber,mEndRequestNumber,false)==false) + return false; + + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mSerialNumber != null && !mSerialNumber.equals("")) + wizardInfo.setCASerialNumber(mSerialNumber); + else { + wizardInfo.setCASerialNumber(DEFAULT_SERIAL_NUMBER); + mSerialNumber = DEFAULT_SERIAL_NUMBER; + } + if (mbeginRequestNumber != null && !mbeginRequestNumber.equals("")) + wizardInfo.setRequestNumber(mbeginRequestNumber); + else { + wizardInfo.setRequestNumber(DEFAULT_SERIAL_NUMBER); + mbeginRequestNumber = DEFAULT_SERIAL_NUMBER; + } + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_SET_CA_SERIAL; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + if (mSerialNumber != null && !mSerialNumber.equals("")) + rawData = rawData+"&"+ConfigConstants.PR_CA_SERIAL_NUMBER+"="+ + mSerialNumber; + if (mEndSerialNumber != null && !mEndSerialNumber.equals("")) + rawData = rawData+"&"+ConfigConstants.PR_CA_ENDSERIAL_NUMBER+"="+ + mEndSerialNumber; + if (mbeginRequestNumber != null && !mbeginRequestNumber.equals("")) + rawData = rawData+"&"+ConfigConstants.PR_REQUEST_NUMBER+"="+ + mbeginRequestNumber; + if (mEndRequestNumber != null && !mEndSerialNumber.equals("")) + rawData = rawData+"&"+ConfigConstants.PR_ENDREQUEST_NUMBER+"="+ + mEndRequestNumber; + if (wizardInfo.getInternalDBPasswd() != null) + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+ + wizardInfo.getInternalDBPasswd(); + + rawData = rawData+"&"+ConfigConstants.PR_SERIAL_REQUEST_NUMBER+"="+ + ConfigConstants.TRUE; + startProgressStatus(); + + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + }else { + wizardInfo.setNumberPageDone(ConfigConstants.TRUE); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + mDesc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mDesc, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSerialNumberLabel = makeJLabel("SERIALNUMBER"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mSerialNumberLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSerialNumberText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; +// gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mSerialNumberText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEndSerialNumberLabel = makeJLabel("ENDSERIALNUMBER"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEndSerialNumberLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEndSerialNumberText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; +// gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEndSerialNumberText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mbeginRequestNumberLabel = makeJLabel("REQUESTNUMBER"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mbeginRequestNumberLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mbeginRequestNumberText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; +// gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mbeginRequestNumberText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEndRequestNumberLabel = makeJLabel("ENDREQUESTNUMBER"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEndRequestNumberLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEndRequestNumberText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; +// gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEndRequestNumberText, gbc); + + /* + CMSAdminUtil.resetGBC(gbc); + mSerialNumberLabel = makeJLabel("PWD"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mSerialNumberLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSerialNumberText = makeJSerialNumberField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mSerialNumberText, gbc); +*/ + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICATokenLogonPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICATokenLogonPage.java new file mode 100644 index 000000000..f7068b3d3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICATokenLogonPage.java @@ -0,0 +1,76 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the information of the current internal database. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICATokenLogonPage extends WITokenLogonPage implements IWizardPanel { + + private static final String HELPINDEX = "install-catoken-logon-wizard-help"; + private static final String PANELNAME = "CATOKENLOGONWIZARD"; + + WICATokenLogonPage(JDialog dialog) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = dialog; + } + + WICATokenLogonPage(JDialog dialog, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = dialog; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String tokenname = wizardInfo.getCATokenName(); + String pwd = (String)wizardInfo.get("TOKEN:"+tokenname); + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) { + if (pwd != null && !pwd.equals("")) + return false; + } + + if (wizardInfo.isCACertLocalCA() || !wizardInfo.isInstallCertNow() + || !wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() + || wizardInfo.isCACertInstalledDone()) + return false; + if (pwd != null) + return false; + + mTokenName = tokenname; + mTokenText.setText(tokenname); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICertDNPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICertDNPage.java new file mode 100644 index 000000000..cf7e623ad --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICertDNPage.java @@ -0,0 +1,153 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.management.client.console.*; +import com.netscape.admin.certsrv.task.*; + +/** + * Specify Subject DN for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICertDNPage extends WBaseDNPage { + protected String mSubjectName; + protected String mHelpIndex; + protected static final String CA_CN = "CN=Certificate Manager"; + protected static final String CA_C = "C=US"; + protected static final String RA_CN = "CN=Registration Manager"; + protected static final String RA_C = "C=US"; + protected static final String OCSP_CN = "CN=Online Certificate Status Manager"; + protected static final String OCSP_C = "C=US"; + protected static final String KRA_CN = "CN=Data Recovery Manager"; + protected static final String KRA_C = "C=US"; + protected static final String SERVER_C = "C=US"; + protected String mStr; + + WICertDNPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean initializePanel(WizardInfo info) { + setBorder(makeTitledBorder(mPanelName)); +/* + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String str = wizardInfo.getSubjectName(); + + populateDN(str); +*/ + + return true; + } + + public boolean validatePanel() { + return super.validatePanel(); + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String str1 = mSubjectDNText.getText().trim(); + String str2 = mSubjectStringText.getText().trim(); + String str = ""; + + if (mDNComponents.isSelected()) { + str = str1; + } else { + str = str2; + } + + if (str.equals("")) { + setErrorMessage("BLANKFIELD"); + return false; + //str = dnDesc.getText().trim(); + } + + mStr = CMSAdminUtil.getPureString(str); + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CHECK_DN; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_CERTIFICATE_TYPE+"="+ wizardInfo.getCertType(); + rawData = rawData+"&"+ConfigConstants.PR_SUBJECT_NAME+"="+mStr; + + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + wizardInfo.setSubjectName(mStr); + + if (!ready) { + String errstr = getErrorMessage(); + if (errstr.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(errstr); + } + +/* + CertSetupWizardInfo wizardInfo = (CertSetupWizardInfo)info; + AdminConnection connection = wizardInfo.getAdminConnection(); + NameValuePairs nvps = new NameValuePairs(); + + nvps.add(Constants.PR_SUBJECT_NAME, str); + wizardInfo.addEntry(Constants.PR_SUBJECT_NAME, str); + + try { + connection.validate(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SUBJECT_NAME, nvps); + } catch (EAdminException e) { + //showErrorDialog(e.toString()); + setErrorMessage(e.toString()); + return false; + } + + nvps.add(Constants.PR_TOKEN_NAME, wizardInfo.getTokenName()); + if (wizardInfo.isNewKey()) { + nvps.add(Constants.PR_KEY_LENGTH, wizardInfo.getKeyLength()); + nvps.add(Constants.PR_KEY_TYPE, wizardInfo.getKeyType()); + } + + wizardInfo.addEntry(wizardInfo.ALL_INFO, nvps); +*/ + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + super.init(); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java new file mode 100644 index 000000000..8c989685a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java @@ -0,0 +1,168 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Certificate Extension for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICertExtensionPage extends WBaseCertExtensionPage implements + IWizardPanel { + protected String mHelpIndex; + + WICertExtensionPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + setBorder(makeTitledBorder(mPanelName)); + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + boolean ready = false; + + String rawData = ""; + if (mMIMECheckBox.isSelected()) { + //Check the extension if it is valid + rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CHECK_EXTENSION; + rawData = rawData+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+ConfigConstants.PR_CERTIFICATE_EXTENSION+"="+ + mMIMEText.getText().trim(); + + startProgressStatus(); + ready = send(rawData, wizardInfo); + endProgressStatus(); + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + } else + ready = true; + + if (ready) { + NameValuePairs nvps = new NameValuePairs(); + + nvps.put(Constants.PR_CERTIFICATE_TYPE, wizardInfo.getCertType()); + nvps.put(Constants.PR_SUBJECT_NAME, wizardInfo.getSubjectName()); + nvps.put(Constants.PR_TOKEN_NAME, wizardInfo.getTokenName()); + nvps.put(Constants.PR_KEY_LENGTH, wizardInfo.getKeyLength()); + nvps.put(Constants.PR_KEY_TYPE, wizardInfo.getKeyType()); + nvps.put(Constants.PR_KEY_CURVENAME, wizardInfo.getKeyCurveName()); + addValidityPeriod(wizardInfo, nvps); + + if (mBasicCheckBox.isSelected()) + addBasicConstraints(nvps); + + if (mExtendedKeyCheckBox.isSelected()) + addExtendedKey(nvps); + + if (mAKICheckBox.isSelected()) + nvps.put(Constants.PR_AKI, Constants.TRUE); + + if (mSKICheckBox.isSelected()) + nvps.put(Constants.PR_SKI, Constants.TRUE); + + if (mKeyUsageBox.isSelected()) + nvps.put(Constants.PR_KEY_USAGE, Constants.TRUE); + + if (mMIMECheckBox.isSelected()) + nvps.put(Constants.PR_DER_EXTENSION, mMIMEText.getText().trim()); + + wizardInfo.put(wizardInfo.ALL_CERT_INFO, nvps); + } + + mModified = true; + return ready; + } + + private void addValidityPeriod(InstallWizardInfo wizardInfo, + NameValuePairs nvps) { + nvps.put(Constants.PR_BEGIN_YEAR, wizardInfo.getBeginYear()); + nvps.put(Constants.PR_BEGIN_MONTH, wizardInfo.getBeginMonth()); + nvps.put(Constants.PR_BEGIN_DATE, wizardInfo.getBeginDate()); + nvps.put(Constants.PR_BEGIN_HOUR, wizardInfo.getBeginHour()); + nvps.put(Constants.PR_BEGIN_MIN, wizardInfo.getBeginMin()); + nvps.put(Constants.PR_BEGIN_SEC, wizardInfo.getBeginSec()); + nvps.put(Constants.PR_AFTER_YEAR, wizardInfo.getAfterYear()); + nvps.put(Constants.PR_AFTER_MONTH, wizardInfo.getAfterMonth()); + nvps.put(Constants.PR_AFTER_DATE, wizardInfo.getAfterDate()); + nvps.put(Constants.PR_AFTER_HOUR, wizardInfo.getAfterHour()); + nvps.put(Constants.PR_AFTER_MIN, wizardInfo.getAfterMin()); + nvps.put(Constants.PR_AFTER_SEC, wizardInfo.getAfterSec()); + } + + private void addBasicConstraints(NameValuePairs nvps) { + if (mCACheckBox.isSelected()) + nvps.put(Constants.PR_IS_CA, Constants.TRUE); + + if (mCertPathBox.isSelected()) { + String certLen = mCertPathText.getText().trim(); + if (!certLen.equals("")) + nvps.put(Constants.PR_CERT_LEN, certLen); + } else { + // negative number means infinity + nvps.put(Constants.PR_CERT_LEN, "-1"); + } + } + + private void addExtendedKey(NameValuePairs nvps) { + if (mSSLClient.isSelected()) + nvps.put(Constants.PR_SSL_CLIENT_BIT, Constants.TRUE); + if (mSSLServer.isSelected()) + nvps.put(Constants.PR_SSL_SERVER_BIT, Constants.TRUE); + if (mSSLMail.isSelected()) + nvps.put(Constants.PR_SSL_MAIL_BIT, Constants.TRUE); + if (mObjectSigning.isSelected()) + nvps.put(Constants.PR_OBJECT_SIGNING_BIT, Constants.TRUE); + if (mTimeStamping.isSelected()) + nvps.put(Constants.PR_TIMESTAMPING_BIT, Constants.TRUE); + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICertRequestPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICertRequestPage.java new file mode 100644 index 000000000..d4926e1e9 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICertRequestPage.java @@ -0,0 +1,73 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICertRequestPage extends WBaseCertRequestPage implements IWizardPanel { + private JButton mCopy; + private JTextArea mText; + private static final String PANELNAME = "CERTREQUESTWIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + + WICertRequestPage() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICertSetupStatusPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICertSetupStatusPage.java new file mode 100644 index 000000000..ff9ca97a6 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICertSetupStatusPage.java @@ -0,0 +1,144 @@ +// --- 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.config.install; + +import java.util.Hashtable; +import java.net.URL; +import java.io.InputStream; +import java.io.ByteArrayInputStream; +import java.awt.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.management.client.console.ConsoleInfo; +import com.netscape.management.client.util.*; +import com.netscape.management.client.comm.*; +import com.netscape.management.client.*; + +/** + * Status page for the configuration of the certificate server. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICertSetupStatusPage extends WizardBasePanel implements IWizardPanel { + private JTextArea desc; + private static final String PANELNAME = "INSTALLCONFIGSTATUSWIZARD"; + private static final String HELPINDEX = "install-certsetup-status-wizard-help"; + + WICertSetupStatusPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WICertSetupStatusPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return true; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String str = ""; + if (wizardInfo.isCAInstalled()) { + + String str1 = ""; + // display status + str = mResource.getString( + "INSTALLCONFIGSTATUSWIZARD_CATEXT_DESC_LABEL"); + if (wizardInfo.isKRAInstalled()) + str1 = mResource.getString( + "INSTALLCONFIGSTATUSWIZARD_CAKRATEXT_DESC_LABEL"); + String link = "https://"+wizardInfo.getMachineName()+":"+ + wizardInfo.getAdminPort() + "/ca/adminEnroll.html"; + desc.setText(str+"\n"+link+"\n\n"+str1); + } else if (wizardInfo.isOCSPInstalled()) { + desc.setText(mResource.getString( + "INSTALLCONFIGSTATUSWIZARD_OCSPTEXT_DESC_LABEL")); + } else if (wizardInfo.isRAInstalled()) { + if (wizardInfo.isKRAInstalled()) + desc.setText(mResource.getString( + "INSTALLCONFIGSTATUSWIZARD_RAKRATEXT_DESC_LABEL")); + else + desc.setText(mResource.getString( + "INSTALLCONFIGSTATUSWIZARD_RATEXT_DESC_LABEL")); + } else if (wizardInfo.isKRAInstalled()) { + desc.setText(mResource.getString( + "INSTALLCONFIGSTATUSWIZARD_KRATEXT_DESC_LABEL")); + } + else if (wizardInfo.isTKSInstalled()) { + desc.setText(mResource.getString( + "INSTALLCONFIGSTATUSWIZARD_TKSTEXT_DESC_LABEL")); + } + setBorder(makeTitledBorder(PANELNAME)); + + CMSAdmin admin = (CMSAdmin)wizardInfo.get("CMSAdmin"); + IPage viewInstance = (IPage)wizardInfo.get("viewInstance"); + if (viewInstance != null) + admin.updateMenu(viewInstance); + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + +/* + desc = new JTextArea("", 4, 80); + desc.setBackground(getBackground()); + desc.setEditable(false); + desc.setCaretColor(getBackground()); +*/ + desc = createTextArea(""); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(desc, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICertSubmitPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICertSubmitPage.java new file mode 100644 index 000000000..18beac219 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICertSubmitPage.java @@ -0,0 +1,144 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICertSubmitPage extends WizardBasePanel implements IWizardPanel { + protected JRadioButton mSelfButton; + protected JRadioButton mSubordinateButton; + protected JTextArea mLabel; + protected String mHelpIndex; + private String mPanelName; + protected InstallWizardInfo mWizardInfo; + + WICertSubmitPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + setBorder(makeTitledBorder(mPanelName)); + mWizardInfo = (InstallWizardInfo)info; + if (!mWizardInfo.getCertType().equals(Constants.PR_CA_SIGNING_CERT)) { + if (mWizardInfo.isCACertRequestDone() && + !mWizardInfo.isCACertInstalledDone()) { + mSubordinateButton.setSelected(true); + mSelfButton.setSelected(false); + } + } + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + mLabel = createTextArea(mResource.getString( + mPanelName+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mLabel, gbc); + + mSelfButton = makeJRadioButton("SELF", true); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSelfButton, gbc); + + mSubordinateButton = makeJRadioButton("SUB", false); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSubordinateButton, gbc); + + ButtonGroup buttonGroup = new ButtonGroup(); + buttonGroup.add(mSelfButton); + buttonGroup.add(mSubordinateButton); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void actionPerformed(ActionEvent e) { + if (!mWizardInfo.getCertType().equals(Constants.PR_CA_SIGNING_CERT)) { + if (e.getSource().equals(mSelfButton)) { + if (mWizardInfo.isCACertRequestDone() && + !mWizardInfo.isCACertInstalledDone()) { + String errorMsg = mResource.getString(mPanelName+"_LABEL_INCOMPLETE_LABEL"); + JOptionPane.showMessageDialog(mParent, errorMsg, "Warning", + JOptionPane.WARNING_MESSAGE, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_WARN_ICON)); + mSelfButton.setSelected(false); + mSubordinateButton.setSelected(true); + } + } + } + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICertValidityPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICertValidityPage.java new file mode 100644 index 000000000..8f2acd493 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICertValidityPage.java @@ -0,0 +1,141 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import java.text.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Validity page for installation wizard + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICertValidityPage extends WBaseValidityPage implements IWizardPanel { + private String mPanelName; + protected String mHelpIndex; + + WICertValidityPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + setBorder(makeTitledBorder(mPanelName)); + return true; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + super.init(); + } + + public boolean validatePanel() { + boolean status = super.validatePanel(); + Date currTime = new Date(); + + if (status) { + if (currTime.before(mBeforeDate)) { + if (!mWarningDisplayed) { + setErrorMessage("INVALIDCERT"); + mWarningDisplayed = true; + return false; + } + } + } + + return status; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (!wizardInfo.getCertType().equals(Constants.PR_CA_SIGNING_CERT)) { + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_VALIDITY_PERIOD; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_NOTAFTER+"="+mAfterDate.getTime(); + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else if (str.equals("beyondCAValidity")) { + String errormsg = mResource.getString(mPanelName+"_BEYONDCAVALIDITY"); + int status = JOptionPane.showConfirmDialog(mAdminFrame, errormsg, "Information", + JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_INFO_ICON)); + if (status == JOptionPane.OK_OPTION) { + rawData = rawData+"&"+ConfigConstants.OVERRIDE_VALIDITY+"="+ConfigConstants.TRUE; + ready = send(rawData, wizardInfo); + return true; + } else { + setErrorMessage(mResource.getString(mPanelName+"_ERROR1")); + return false; + } + } else + setErrorMessage(str); + return ready; + } + } + + return super.concludePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.addEntry(Constants.PR_BEGIN_YEAR, mBYear.getText().trim()); + int beforeMonth = Integer.parseInt(mBMonth.getText().trim()); + wizardInfo.addEntry(Constants.PR_BEGIN_MONTH, ""+(beforeMonth-1)); + wizardInfo.addEntry(Constants.PR_BEGIN_DATE, mBDay.getText().trim()); + wizardInfo.addEntry(Constants.PR_BEGIN_HOUR, mBHour.getText().trim()); + wizardInfo.addEntry(Constants.PR_BEGIN_MIN, mBMin.getText().trim()); + wizardInfo.addEntry(Constants.PR_BEGIN_SEC, mBSec.getText().trim()); + wizardInfo.addEntry(Constants.PR_AFTER_YEAR, mEYear.getText().trim()); + int afterMonth = Integer.parseInt(mEMonth.getText().trim()); + wizardInfo.addEntry(Constants.PR_AFTER_MONTH, ""+(afterMonth-1)); + wizardInfo.addEntry(Constants.PR_AFTER_DATE, mEDay.getText().trim()); + wizardInfo.addEntry(Constants.PR_AFTER_HOUR, mEHour.getText().trim()); + wizardInfo.addEntry(Constants.PR_AFTER_MIN, mEMin.getText().trim()); + wizardInfo.addEntry(Constants.PR_AFTER_SEC, mESec.getText().trim()); + //wizardInfo.addEntry(Constants.PR_VALIDITY_PERIOD, ""+period); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICloneCAKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneCAKeyCertPage.java new file mode 100644 index 000000000..d5722df32 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneCAKeyCertPage.java @@ -0,0 +1,292 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICloneCAKeyCertPage extends WizardBasePanel implements IWizardPanel { + private String mCANicknameStr, mSSLNicknameStr, mOCSPNicknameStr; + private String mCATokenname, mOCSPTokenname, mSSLTokenname; + protected InstallWizardInfo mWizardInfo; + protected JComboBox mCANicknameBox, mOCSPNicknameBox, mSSLNicknameBox; + private static final String PANELNAME = "CLONECAKEYCERTWIZARD"; + private static final String CAHELPINDEX = + "install-cacertclone-wizard-help"; + + + WICloneCAKeyCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + mCANicknameStr = "caSigningCert"; + mSSLNicknameStr = "Server-Cert"; + mOCSPNicknameStr = "ocspSigningCert"; + init(); + } + + WICloneCAKeyCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + mCANicknameStr = "caSigningCert"; + mSSLNicknameStr = "Server-Cert"; + mOCSPNicknameStr = "ocspSigningCert"; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + mWizardInfo = wizardInfo; + if (!wizardInfo.isCloning()) + return false; + if (!wizardInfo.isCloneCASubsystem()) + return false; + if (wizardInfo.isCACloningDone()) + return false; + if (!wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() + || wizardInfo.isSelfSignedCACertDone() + || wizardInfo.isCACertRequestDone()) + return false; + + setBorder(makeTitledBorder(PANELNAME)); + if (mCANicknameBox.getItemCount() > 0) { + mCANicknameBox.removeAllItems(); + } + + if (mOCSPNicknameBox.getItemCount() > 0) { + mOCSPNicknameBox.removeAllItems(); + } + + if (mSSLNicknameBox.getItemCount() > 0) { + mSSLNicknameBox.removeAllItems(); + } + String certsList = mWizardInfo.getCloneCertsList(); + StringTokenizer t1 = new StringTokenizer(certsList, ";"); + while (t1.hasMoreTokens()) { + String s1 = (String)t1.nextToken(); + if (s1.indexOf(mCANicknameStr) >= 0) + mCANicknameBox.addItem(s1); + } + + StringTokenizer t2 = new StringTokenizer(certsList, ";"); + while (t2.hasMoreTokens()) { + String s1 = (String)t2.nextToken(); + if (s1.indexOf(mSSLNicknameStr) >= 0) + mSSLNicknameBox.addItem(s1); + } + + StringTokenizer t3 = new StringTokenizer(certsList, ";"); + while (t3.hasMoreTokens()) { + String s1 = (String)t3.nextToken(); + if (s1.indexOf(mOCSPNicknameStr) >= 0) + mOCSPNicknameBox.addItem(s1); + } + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + String canickname = (String)mCANicknameBox.getSelectedItem(); + mCATokenname = Constants.PR_INTERNAL_TOKEN_NAME; + int index = canickname.indexOf(":"); + if (index > -1) { + mCATokenname = canickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_CA_TOKEN_NAME, mCATokenname); + + String ocspnickname = (String)mOCSPNicknameBox.getSelectedItem(); + mOCSPTokenname = Constants.PR_INTERNAL_TOKEN_NAME; + index = ocspnickname.indexOf(":"); + if (index > -1) { + mOCSPTokenname = ocspnickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_OCSP_TOKEN_NAME, mOCSPTokenname); + + String sslnickname = (String)mSSLNicknameBox.getSelectedItem(); + mSSLTokenname = Constants.PR_INTERNAL_TOKEN_NAME; + index = sslnickname.indexOf(":"); + if (index > -1) { + mSSLTokenname = sslnickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_SSL_TOKEN_NAME, mSSLTokenname); + + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CLONING; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_SUBSYSTEM+"="+ConfigConstants.PR_CA; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_CA_TOKEN_NAME+"="+ + mCATokenname; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_CA_NICKNAME+"="+ + mCANicknameBox.getSelectedItem(); + rawData = rawData+"&"+ConfigConstants.PR_CLONE_OCSP_TOKEN_NAME+"="+ + mOCSPTokenname; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_OCSP_NICKNAME+"="+ + mOCSPNicknameBox.getSelectedItem(); + rawData = rawData+"&"+ConfigConstants.PR_CLONE_SSL_TOKEN_NAME+"="+ + mSSLTokenname; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_SSL_NICKNAME+"="+ + mSSLNicknameBox.getSelectedItem(); + + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String errstr = getErrorMessage(wizardInfo); + if (errstr.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(errstr); + } + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(CAHELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel caNicknameLbl = makeJLabel("CANICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(caNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mCANicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mCANicknameBox, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading1 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING1_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading1, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel ocspNicknameLbl = makeJLabel("OCSPNICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(ocspNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mOCSPNicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mOCSPNicknameBox, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading2 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING2_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading2, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel sslNicknameLbl = makeJLabel("SSLNICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(sslNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSSLNicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mSSLNicknameBox, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + mWizardInfo.setCATokenName(mCATokenname); + mWizardInfo.setOCSPTokenName(mOCSPTokenname); + mWizardInfo.setSSLTokenName(mSSLTokenname); + } + + public void actionPerformed(ActionEvent e) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICloneKRAKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneKRAKeyCertPage.java new file mode 100644 index 000000000..bea79b2e0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneKRAKeyCertPage.java @@ -0,0 +1,292 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICloneKRAKeyCertPage extends WizardBasePanel implements IWizardPanel { + private String mKRANicknameStr, mStorageNicknameStr, mSSLNicknameStr; + private String mKRATokenname, mStorageTokenname, mSSLTokenname; + protected InstallWizardInfo mWizardInfo; + protected JComboBox mKRANicknameBox, mStorageNicknameBox, mSSLNicknameBox; + private static final String PANELNAME = "CLONEKRAKEYCERTWIZARD"; + private static final String KRAHELPINDEX = + "install-kracertclone-wizard-help"; + + + WICloneKRAKeyCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + mKRANicknameStr = "kraTransportCert"; + mSSLNicknameStr = "Server-Cert"; + mStorageNicknameStr = "kraStorageCert"; + init(); + } + + WICloneKRAKeyCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + mKRANicknameStr = "kraTransportCert"; + mSSLNicknameStr = "Server-Cert"; + mStorageNicknameStr = "kraStorageCert"; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + mWizardInfo = wizardInfo; + if (!wizardInfo.isCloning()) + return false; + if (!wizardInfo.isCloneKRASubsystem()) + return false; + if (wizardInfo.isKRACloningDone()) + return false; + + if (!wizardInfo.isKRAInstalled() || + wizardInfo.isKRACertRequestDone()) { + return false; + } + + setBorder(makeTitledBorder(PANELNAME)); + if (mKRANicknameBox.getItemCount() > 0) { + mKRANicknameBox.removeAllItems(); + } + + if (mStorageNicknameBox.getItemCount() > 0) { + mStorageNicknameBox.removeAllItems(); + } + + if (mSSLNicknameBox.getItemCount() > 0) { + mSSLNicknameBox.removeAllItems(); + } + String certsList = mWizardInfo.getCloneCertsList(); + StringTokenizer t1 = new StringTokenizer(certsList, ";"); + while (t1.hasMoreTokens()) { + String s1 = (String)t1.nextToken(); + if (s1.indexOf(mStorageNicknameStr) >= 0) + mStorageNicknameBox.addItem(s1); + } + + StringTokenizer t2 = new StringTokenizer(certsList, ";"); + while (t2.hasMoreTokens()) { + String s1 = (String)t2.nextToken(); + if (s1.indexOf(mSSLNicknameStr) >= 0) + mSSLNicknameBox.addItem(s1); + } + + StringTokenizer t3 = new StringTokenizer(certsList, ";"); + while (t3.hasMoreTokens()) { + String s1 = (String)t3.nextToken(); + if (s1.indexOf(mKRANicknameStr) >= 0) + mKRANicknameBox.addItem(s1); + } + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + String kranickname = (String)mKRANicknameBox.getSelectedItem(); + mKRATokenname = Constants.PR_INTERNAL_TOKEN_NAME; + int index = kranickname.indexOf(":"); + if (index > -1) { + mKRATokenname = kranickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_KRA_TOKEN_NAME, mKRATokenname); + + String storagenickname = (String)mStorageNicknameBox.getSelectedItem(); + mStorageTokenname = Constants.PR_INTERNAL_TOKEN_NAME; + index = storagenickname.indexOf(":"); + if (index > -1) { + mStorageTokenname = storagenickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_STORAGE_TOKEN_NAME, mStorageTokenname); + + String sslnickname = (String)mSSLNicknameBox.getSelectedItem(); + mSSLTokenname = Constants.PR_INTERNAL_TOKEN_NAME; + index = sslnickname.indexOf(":"); + if (index > -1) { + mSSLTokenname = sslnickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_SSL_TOKEN_NAME, mSSLTokenname); + + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CLONING; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_SUBSYSTEM+"="+ConfigConstants.PR_KRA; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_KRA_TOKEN_NAME+"="+ + mKRATokenname; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_KRA_NICKNAME+"="+ + mKRANicknameBox.getSelectedItem(); + rawData = rawData+"&"+ConfigConstants.PR_CLONE_STORAGE_TOKEN_NAME+"="+ + mStorageTokenname; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_STORAGE_NICKNAME+"="+ + mStorageNicknameBox.getSelectedItem(); + rawData = rawData+"&"+ConfigConstants.PR_CLONE_SSL_TOKEN_NAME+"="+ + mSSLTokenname; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_SSL_NICKNAME+"="+ + mSSLNicknameBox.getSelectedItem(); + + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String errstr = getErrorMessage(); + if (errstr.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(errstr); + } + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(KRAHELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel kraNicknameLbl = makeJLabel("KRANICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(kraNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mKRANicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mKRANicknameBox, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading1 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING1_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading1, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel storageNicknameLbl = makeJLabel("STORAGENICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(storageNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mStorageNicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mStorageNicknameBox, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading2 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING2_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading2, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel sslNicknameLbl = makeJLabel("SSLNICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(sslNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSSLNicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mSSLNicknameBox, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + mWizardInfo.setKRATokenName(mKRATokenname); + mWizardInfo.setSSLTokenName(mSSLTokenname); + } + + public void actionPerformed(ActionEvent e) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICloneMasterPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneMasterPage.java new file mode 100644 index 000000000..c8498f306 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneMasterPage.java @@ -0,0 +1,409 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; +import javax.swing.*; +import java.awt.*; +import java.util.*; +import java.awt.event.*; + +/** + * Clone CA getting Clone Master connector info. + * + * @author Christina Fu + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ + +class WICloneMasterPage extends WizardBasePanel implements IWizardPanel { + protected JTextField mHostText, mPortText, mPortEEText, mTimeoutText; + protected JLabel mHostLbl, mPortLbl, mPortEELbl, mTimeoutLbl, mTimeunitLbl; + protected JRadioButton mYes, mNo; + protected String mHost, mPort, mPortEE, mTimeout; + protected JTextArea mHeading; + protected Color mActiveColor; + public static final int MAX_PORT = 65535; + public static final int MIN_PORT = 1; + private static final String PANELNAME = "CLONEMASTERWIZARD"; + private static final String HELPINDEX1 = "install-ca-clone-master-wizard-help"; + + private InstallWizardInfo mWizardInfo; + + WICloneMasterPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WICloneMasterPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + mWizardInfo = wizardInfo; + Debug.println("WICloneMasterPage: initializing"); + + if (wizardInfo.isCloneMasterDone()) + return false; + + if (wizardInfo.isCloning()) { + Debug.println("WICloneMasterPage: is cloning"); + setBorder(makeTitledBorder(PANELNAME)); + if (mYes.isSelected()) + enableFields(true, mActiveColor); + else + enableFields(false, getBackground()); + return true; + } + return false; + } + + public boolean validatePanel() { + if (mNo.isSelected()) { + mHost = ""; + mPort = ""; + mPortEE = ""; + mTimeout = ""; + return true; + } + + mHost = mHostText.getText().trim(); + mPort = mPortText.getText().trim(); + mPortEE = mPortEEText.getText().trim(); + mTimeout = mTimeoutText.getText().trim(); + if (mHost.equals("")) { + setErrorMessage("BLANKHOST"); + return false; + } + if (mPort.equals("")) { + setErrorMessage("BLANKPORT"); + return false; + } + if (mPortEE.equals("")) { + setErrorMessage("BLANKPORT"); + return false; + } + if (mTimeout.equals("")) { + setErrorMessage("BLANKTIMEOUT"); + return false; + } + + try { + int portnumber = Integer.parseInt(mPort); + if (portnumber < MIN_PORT || portnumber > MAX_PORT) { + setErrorMessage("OUTOFRANGE"); + return false; + } + int portnumberEE = Integer.parseInt(mPortEE); + if (portnumberEE < MIN_PORT || portnumberEE > MAX_PORT) { + setErrorMessage("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("INVALIDPORT"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + Debug.println("WICloneMasterPage: in concludePanel"); + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.setCLAHost(mHost); + wizardInfo.setCLAPort(mPort); + wizardInfo.setCLAPortEE(mPortEE); + wizardInfo.setCLATimeout(mTimeout); + ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(wizardInfo); + Hashtable data = new Hashtable(); + data.put(ConfigConstants.TASKID,TaskId.TASK_CLONE_MASTER); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + data.put(ConfigConstants.PR_CERT_INSTANCE_NAME, + consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME)); + data.put(ConfigConstants.PR_DB_BINDDN, wizardInfo.getDBBindDN()); + data.put(ConfigConstants.PR_DB_PWD, wizardInfo.getInternalDBPasswd()); + data.put(ConfigConstants.PR_CLONING_INSTANCE, + wizardInfo.get(ConfigConstants.PR_CLONING_INSTANCE)); + + if (wizardInfo.isCAInstalled()) + data.put(ConfigConstants.PR_CA, ConfigConstants.TRUE); + else + data.put(ConfigConstants.PR_CA, ConfigConstants.FALSE); + + if (wizardInfo.isRAInstalled()) + data.put(ConfigConstants.PR_RA, ConfigConstants.TRUE); + else + data.put(ConfigConstants.PR_RA, ConfigConstants.FALSE); + + if (wizardInfo.isKRAInstalled()) + data.put(ConfigConstants.PR_KRA, ConfigConstants.TRUE); + else + data.put(ConfigConstants.PR_KRA, ConfigConstants.FALSE); + + String services = ""; + if (wizardInfo.isCAInstalled()) { + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_CA; + } else { + data.put(ConfigConstants.CA_HOST, wizardInfo.getCMHost()); + data.put(ConfigConstants.CA_PORT, wizardInfo.getCMPort()); + data.put(ConfigConstants.CA_TIMEOUT, wizardInfo.getCMTimeout()); + } + + if (wizardInfo.isRAInstalled()) { + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_RA; + } + if (wizardInfo.isKRAInstalled()) { + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_KRA; + } else { + // connect to the clone master (CLA) + Debug.println("WICloneMasterPage: Cloning page"); + if (mYes.isSelected()) { + Debug.println("WICloneMasterPage: Cloning page yes selected"); + data.put(ConfigConstants.CLA_HOST, wizardInfo.getCLAHost()); + data.put(ConfigConstants.CLA_PORT, wizardInfo.getCLAPort()); + data.put(ConfigConstants.CLA_PORT_EE, wizardInfo.getCLAPortEE()); + data.put(ConfigConstants.CLA_TIMEOUT, + wizardInfo.getCLATimeout()); + data.put(ConfigConstants.CLONE_CA, ConfigConstants.TRUE); + } else { + Debug.println("WICloneMasterPage: Cloning page yes NOT selected"); + // admin will have to manually add if not through wizard + } + } + + data.put(ConfigConstants.PR_SUBSYSTEMS, services); + wizardInfo.setSubsystems(services); + startProgressStatus(); + CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CONFIGDB"); + boolean ready = configCertCgi.configCert(data); + dlg.setVisible(false); + + endProgressStatus(); + + if (!ready) { + String str = configCertCgi.getErrorMessage(); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + if (mWizardInfo.isCAInstalled()) { + CMSAdminUtil.help(HELPINDEX1); + } + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea heading = createTextArea(mResource.getString( + "CLONEMASTERWIZARD_TEXT_ISCLONECA_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading, gbc); + + mNo = makeJRadioButton("NO", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mNo, gbc); + + mYes = makeJRadioButton("YES", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mYes, gbc); + + ButtonGroup btnGroup = new ButtonGroup(); + btnGroup.add(mNo); + btnGroup.add(mYes); + + mHeading = createTextArea(mResource.getString( + "CLONEMASTERWIZARD_TEXT_HEADING_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mHeading, gbc); + + mHostLbl = makeJLabel("HOST"); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + add(mHostLbl, gbc); + + mHostText = makeJTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mHostText, gbc); + mActiveColor = mHostText.getBackground(); + + mPortLbl = makeJLabel("PORT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mPortLbl, gbc); + + mPortText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPortText, gbc); + + mPortEELbl = makeJLabel("PORTEE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mPortEELbl, gbc); + + mPortEEText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPortEEText, gbc); + + mTimeoutLbl = makeJLabel("TIMEOUT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + add(mTimeoutLbl, gbc); + + mTimeoutText = makeJTextField("30", 10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mTimeoutText, gbc); + + /*mTimeunitLbl = makeJLabel("TIMEUNIT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + add(mTimeunitLbl, gbc); + */ + + JLabel label = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(label, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void actionPerformed(ActionEvent e) { + if (mYes.isSelected()) { + enableFields(true, mActiveColor); + } else { + enableFields(false, getBackground()); + } + } + + private void enableFields(boolean enabled, Color color) { + mHeading.setEnabled(enabled); + mHostLbl.setEnabled(enabled); + mPortLbl.setEnabled(enabled); + mPortEELbl.setEnabled(enabled); + mTimeoutLbl.setEnabled(enabled); + mHostText.setEnabled(enabled); + mHostText.setEditable(enabled); + mHostText.setBackground(color); + mPortText.setEnabled(enabled); + mPortText.setEditable(enabled); + mPortText.setBackground(color); + mPortEEText.setEnabled(enabled); + mPortEEText.setEditable(enabled); + mPortEEText.setBackground(color); + mTimeoutText.setEnabled(enabled); + mTimeoutText.setEditable(enabled); + mTimeoutText.setBackground(color); + CMSAdminUtil.repaintComp(mHeading); + CMSAdminUtil.repaintComp(mHostLbl); + CMSAdminUtil.repaintComp(mHostText); + CMSAdminUtil.repaintComp(mPortLbl); + CMSAdminUtil.repaintComp(mPortText); + CMSAdminUtil.repaintComp(mPortEELbl); + CMSAdminUtil.repaintComp(mPortEEText); + CMSAdminUtil.repaintComp(mTimeoutLbl); + CMSAdminUtil.repaintComp(mTimeoutText); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICloneOCSPKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneOCSPKeyCertPage.java new file mode 100644 index 000000000..9061b5f7a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneOCSPKeyCertPage.java @@ -0,0 +1,237 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICloneOCSPKeyCertPage extends WizardBasePanel implements IWizardPanel { + private String mOCSPNicknameStr, mSSLNicknameStr; + private String mOCSPTokenname, mSSLTokenname; + protected InstallWizardInfo mWizardInfo; + protected JComboBox mOCSPNicknameBox, mSSLNicknameBox; + private static final String PANELNAME = "CLONEOCSPKEYCERTWIZARD"; + private static final String OCSPHELPINDEX = + "install-ocspcertclone-wizard-help"; + + + WICloneOCSPKeyCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + mSSLNicknameStr = "Server-Cert"; + mOCSPNicknameStr = "ocspSigningCert"; + init(); + } + + WICloneOCSPKeyCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + mSSLNicknameStr = "Server-Cert"; + mOCSPNicknameStr = "ocspSigningCert"; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + mWizardInfo = wizardInfo; + if (!wizardInfo.isCloning()) + return false; + if (!wizardInfo.isCloneOCSPSubsystem()) + return false; + if (wizardInfo.isOCSPCloningDone()) + return false; + + setBorder(makeTitledBorder(PANELNAME)); + + if (mOCSPNicknameBox.getItemCount() > 0) { + mOCSPNicknameBox.removeAllItems(); + } + + if (mSSLNicknameBox.getItemCount() > 0) { + mSSLNicknameBox.removeAllItems(); + } + String certsList = mWizardInfo.getCloneCertsList(); + StringTokenizer t2 = new StringTokenizer(certsList, ";"); + while (t2.hasMoreTokens()) { + String s1 = (String)t2.nextToken(); + if (s1.indexOf(mSSLNicknameStr) >= 0) + mSSLNicknameBox.addItem(s1); + } + + StringTokenizer t3 = new StringTokenizer(certsList, ";"); + while (t3.hasMoreTokens()) { + String s1 = (String)t3.nextToken(); + if (s1.indexOf(mOCSPNicknameStr) >= 0) + mOCSPNicknameBox.addItem(s1); + } + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + String ocspnickname = (String)mOCSPNicknameBox.getSelectedItem(); + mOCSPTokenname = Constants.PR_INTERNAL_TOKEN_NAME; + int index = ocspnickname.indexOf(":"); + if (index > -1) { + mOCSPTokenname = ocspnickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_OCSP_TOKEN_NAME, mOCSPTokenname); + + String sslnickname = (String)mSSLNicknameBox.getSelectedItem(); + mSSLTokenname = Constants.PR_INTERNAL_TOKEN_NAME; + index = sslnickname.indexOf(":"); + if (index > -1) { + mSSLTokenname = sslnickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_SSL_TOKEN_NAME, mSSLTokenname); + + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CLONING; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_SUBSYSTEM+"="+ + ConfigConstants.PR_OCSP; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_OCSP_TOKEN_NAME+"="+ + mOCSPTokenname; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_OCSP_NICKNAME+"="+ + mOCSPNicknameBox.getSelectedItem(); + rawData = rawData+"&"+ConfigConstants.PR_CLONE_SSL_TOKEN_NAME+"="+ + mSSLTokenname; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_SSL_NICKNAME+"="+ + mSSLNicknameBox.getSelectedItem(); + + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String errstr = getErrorMessage(); + if (errstr.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(errstr); + } + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(OCSPHELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading1 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING1_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading1, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel ocspNicknameLbl = makeJLabel("OCSPNICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(ocspNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mOCSPNicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mOCSPNicknameBox, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading2 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING2_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading2, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel sslNicknameLbl = makeJLabel("SSLNICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(sslNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSSLNicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mSSLNicknameBox, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + mWizardInfo.setOCSPTokenName(mOCSPTokenname); + mWizardInfo.setSSLTokenName(mSSLTokenname); + } + + public void actionPerformed(ActionEvent e) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIClonePage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIClonePage.java new file mode 100644 index 000000000..cdfa23199 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIClonePage.java @@ -0,0 +1,142 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIClonePage extends WizardBasePanel implements IWizardPanel { + + private static final String PANELNAME = "CLONEINSTALLWIZARD"; + private static final String HELPINDEX = + "install-general-intro-wizard-help"; + + WIClonePage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIClonePage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + setBorder(makeTitledBorder(PANELNAME)); + + if //(wizardInfo.isKRACertLocalCA() || !wizardInfo.isInstallCertNow() || + (!wizardInfo.isCloning()||wizardInfo.isClonePageDone()) + return false; + + mAdminFrame = wizardInfo.getAdminFrame(); + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + cleanUpWizardInfo(wizardInfo); + startProgressStatus(); + Debug.println("WIClonePage:concludePanel() 1"); + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_MASTER_OR_CLONE; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_READ; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_SETTING_DONE+"="+ + ConfigConstants.TRUE; + boolean ready = send(rawData, wizardInfo); + + Debug.println("WIClonePage:concludePanel() 2"); + + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str == null) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + }else{ + wizardInfo.setClonePageDone(ConfigConstants.TRUE); + } + + return ready; + } + + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea(mResource.getString( + "CLONEINSTALLWIZARD_TEXT_DESC_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICloneRAKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneRAKeyCertPage.java new file mode 100644 index 000000000..7194ee3cc --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneRAKeyCertPage.java @@ -0,0 +1,242 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICloneRAKeyCertPage extends WizardBasePanel implements IWizardPanel { + private String mRANicknameStr, mSSLNicknameStr; + private String mRATokenname, mSSLTokenname; + protected InstallWizardInfo mWizardInfo; + protected JComboBox mRANicknameBox, mSSLNicknameBox; + private static final String PANELNAME = "CLONERAKEYCERTWIZARD"; + private static final String CAHELPINDEX = + "install-racertclone-wizard-help"; + + + WICloneRAKeyCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + mRANicknameStr = "raSigningCert"; + mSSLNicknameStr = "Server-Cert"; + init(); + } + + WICloneRAKeyCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + mRANicknameStr = "raSigningCert"; + mSSLNicknameStr = "Server-Cert"; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + mWizardInfo = wizardInfo; + if (!wizardInfo.isCloning()) + return false; + if (!wizardInfo.isCloneRASubsystem()) + return false; + if (wizardInfo.isRACloningDone()) + return false; + if (!wizardInfo.isRAInstalled() || + wizardInfo.isRACertRequestDone()) + return false; + + setBorder(makeTitledBorder(PANELNAME)); + if (mRANicknameBox.getItemCount() > 0) { + mRANicknameBox.removeAllItems(); + } + + if (mSSLNicknameBox.getItemCount() > 0) { + mSSLNicknameBox.removeAllItems(); + } + String certsList = mWizardInfo.getCloneCertsList(); + StringTokenizer t1 = new StringTokenizer(certsList, ";"); + while (t1.hasMoreTokens()) { + String s1 = (String)t1.nextToken(); + if (s1.indexOf(mRANicknameStr) >= 0) + mRANicknameBox.addItem(s1); + } + + StringTokenizer t2 = new StringTokenizer(certsList, ";"); + while (t2.hasMoreTokens()) { + String s1 = (String)t2.nextToken(); + if (s1.indexOf(mSSLNicknameStr) >= 0) + mSSLNicknameBox.addItem(s1); + } + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + String ranickname = (String)mRANicknameBox.getSelectedItem(); + mRATokenname = Constants.PR_INTERNAL_TOKEN_NAME; + int index = ranickname.indexOf(":"); + if (index > -1) { + mRATokenname = ranickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_RA_TOKEN_NAME, mRATokenname); + + String sslnickname = (String)mSSLNicknameBox.getSelectedItem(); + mSSLTokenname = Constants.PR_INTERNAL_TOKEN_NAME; + index = sslnickname.indexOf(":"); + if (index > -1) { + mSSLTokenname = sslnickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_SSL_TOKEN_NAME, mSSLTokenname); + + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(wizardInfo); + Hashtable data = new Hashtable(); + data.put(ConfigConstants.TASKID,TaskId.TASK_CLONING); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + data.put(ConfigConstants.PR_SUBSYSTEM, ConfigConstants.PR_RA); + data.put(ConfigConstants.PR_CERT_INSTANCE_NAME, + consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME)); + data.put(ConfigConstants.PR_CLONE_RA_TOKEN_NAME, mRATokenname); + data.put(ConfigConstants.PR_CLONE_RA_NICKNAME, + mRANicknameBox.getSelectedItem()); + data.put(ConfigConstants.PR_CLONE_SSL_TOKEN_NAME, mSSLTokenname); + data.put(ConfigConstants.PR_CLONE_SSL_NICKNAME, + mSSLNicknameBox.getSelectedItem()); + + startProgressStatus(); + boolean ready = configCertCgi.configCert(data); + endProgressStatus(); + + if (!ready) { + String errstr = configCertCgi.getErrorMessage(); + if (errstr.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(errstr); + } + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(CAHELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel raNicknameLbl = makeJLabel("RANICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(raNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRANicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mRANicknameBox, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading1 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING1_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading1, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel sslNicknameLbl = makeJLabel("SSLNICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(sslNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSSLNicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mSSLNicknameBox, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + mWizardInfo.setRATokenName(mRATokenname); + mWizardInfo.setSSLTokenName(mSSLTokenname); + } + + public void actionPerformed(ActionEvent e) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICloneTKSKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneTKSKeyCertPage.java new file mode 100644 index 000000000..baeaaec8d --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICloneTKSKeyCertPage.java @@ -0,0 +1,182 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICloneTKSKeyCertPage extends WizardBasePanel implements IWizardPanel { + private String mSSLNicknameStr, mSSLTokenname; + protected InstallWizardInfo mWizardInfo; + protected JComboBox mSSLNicknameBox; + private static final String PANELNAME = "CLONETKSKEYCERTWIZARD"; + private static final String TKSHELPINDEX = + "install-tkscertclone-wizard-help"; + + + WICloneTKSKeyCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + mSSLNicknameStr = "Server-Cert"; + init(); + } + + WICloneTKSKeyCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + mSSLNicknameStr = "Server-Cert"; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + mWizardInfo = wizardInfo; + if (!wizardInfo.isCloning()) + return false; + if (!wizardInfo.isCloneTKSSubsystem()) + return false; + if (wizardInfo.isTKSCloningDone()) + return false; + + setBorder(makeTitledBorder(PANELNAME)); + + if (mSSLNicknameBox.getItemCount() > 0) { + mSSLNicknameBox.removeAllItems(); + } + String certsList = mWizardInfo.getCloneCertsList(); + StringTokenizer t = new StringTokenizer(certsList, ";"); + while (t.hasMoreTokens()) { + String s1 = (String)t.nextToken(); + if (s1.indexOf(mSSLNicknameStr) >= 0) + mSSLNicknameBox.addItem(s1); + } + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + String sslnickname = (String)mSSLNicknameBox.getSelectedItem(); + mSSLTokenname = Constants.PR_INTERNAL_TOKEN_NAME; + int index = sslnickname.indexOf(":"); + if (index > -1) { + mSSLTokenname = sslnickname.substring(0, index); + } + mWizardInfo.put(ConfigConstants.PR_CLONE_SSL_TOKEN_NAME, mSSLTokenname); + + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CLONING; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_SUBSYSTEM+"="+ConfigConstants.PR_TKS; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_SSL_TOKEN_NAME+"="+ + mSSLTokenname; + rawData = rawData+"&"+ConfigConstants.PR_CLONE_SSL_NICKNAME+"="+ + mSSLNicknameBox.getSelectedItem(); + + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String errstr = getErrorMessage(); + if (errstr.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(errstr); + } + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(TKSHELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea heading = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel sslNicknameLbl = makeJLabel("SSLNICKNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(sslNicknameLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSSLNicknameBox = new JComboBox(); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(mSSLNicknameBox, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + mWizardInfo.setSSLTokenName(mSSLTokenname); + } + + public void actionPerformed(ActionEvent e) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIConfigWebServerPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIConfigWebServerPage.java new file mode 100644 index 000000000..ad9e8b4d6 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIConfigWebServerPage.java @@ -0,0 +1,182 @@ +// --- 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.config.install; + +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Web Server Configuration. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIConfigWebServerPage extends WizardBasePanel implements IWizardPanel { + private Color mActiveColor; + private JTextField mServerRootText; + private JTextField mUserIDText; + + private static final String PANELNAME = "WEBSERVERCONFIGWIZARD"; + private static final String HELPINDEX = + "install-webserver-configuration-wizard-help"; + + WIConfigWebServerPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIConfigWebServerPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isWebServerDone()) + return false; + setBorder(makeTitledBorder(PANELNAME)); + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(wizardInfo); + Hashtable data = new Hashtable(); + + data.put(ConfigConstants.TASKID,TaskId.TASK_CONFIG_WEB_SERVER); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + data.put(ConfigConstants.PR_CERT_INSTANCE_NAME, + consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME)); + + data.put(ConfigConstants.PR_WEB_SERVERROOT, + mServerRootText.getText().trim()); + data.put(ConfigConstants.PR_USER_ID, + mUserIDText.getText().trim()); + + startProgressStatus(); + CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CREATEWEBSERVER"); + + boolean ready = configCertCgi.configCert(data); + dlg.setVisible(false); + + endProgressStatus(); + + if (!ready) { + String str = configCertCgi.getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel serverRootLbl = makeJLabel("SERVERROOT"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(serverRootLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mServerRootText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mServerRootText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel userIDLbl = makeJLabel("USERID"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(userIDLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mUserIDText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mUserIDText, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.setWebServerDone(ConfigConstants.TRUE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WICreateInternalDBPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WICreateInternalDBPage.java new file mode 100644 index 000000000..4aee62e27 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WICreateInternalDBPage.java @@ -0,0 +1,581 @@ +// --- 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.config.install; + +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WICreateInternalDBPage extends WizardBasePanel implements IWizardPanel { + private Color mActiveColor; + private JTextField mPortText, mBindAsText, mInstanceIDText; + private JTextField mRemoteHostText, mRemotePortText, mRemoteBaseDNText; + private JTextField mRemoteBindAsText,mRemotePasswordText, mRemoteDatabaseText; + private JPasswordField mPasswordText, mPasswordAgainText; + private JLabel mBindAsLabel, mPasswordLabel, mPasswordAgainLabel; + private JComboBox mVersionBox; + private JCheckBox mEnable, mSchema; + private JRadioButton mLocal, mRemote; + private static final String PANELNAME = "CREATEINTERNALDBWIZARD"; + private static final String HELPINDEX = + "install-internaldb-configuration-wizard-help"; + private static final String EMPTYSTR = " "; + + WICreateInternalDBPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WICreateInternalDBPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mEnable)) { + enableLocalDB(mEnable.isSelected()); + enableRemoteDB(mEnable.isSelected()); + mLocal.setEnabled(mEnable.isSelected()); + mRemote.setEnabled(mEnable.isSelected()); + } else if (e.getSource().equals(mLocal)) { + enableLocalDB(mEnable.isSelected()); + enableRemoteDB(mEnable.isSelected()); + } else if (e.getSource().equals(mRemote)) { + enableLocalDB(mEnable.isSelected()); + enableRemoteDB(mEnable.isSelected()); + } + } + + private void enableLocalDB(boolean e) + { + Color c; + if (e) { + if (mLocal.isSelected()) + c = mActiveColor; + else + c = getBackground(); + } else { + c = getBackground(); + } + mPortText.setEditable(e); + mPortText.setEnabled(e); + mPortText.setBackground(c); + mBindAsText.setEditable(e); + mBindAsText.setEnabled(e); + mBindAsText.setBackground(c); + mInstanceIDText.setEditable(e); + mInstanceIDText.setEnabled(e); + mInstanceIDText.setBackground(c); + mPasswordText.setEditable(e); + mPasswordText.setEnabled(e); + mPasswordText.setBackground(c); + mPasswordAgainText.setEditable(e); + mPasswordAgainText.setEnabled(e); + mPasswordAgainText.setBackground(c); + } + + private void enableRemoteDB(boolean e) { + Color c; + if (e) { + if (mRemote.isSelected()) + c = mActiveColor; + else + c = getBackground(); + } else { + c = getBackground(); + } + mRemoteHostText.setEditable(e); + mRemoteHostText.setEnabled(e); + mRemoteHostText.setBackground(c); + mRemotePortText.setEditable(e); + mRemotePortText.setEnabled(e); + mRemotePortText.setBackground(c); + mRemoteBaseDNText.setEditable(e); + mRemoteBaseDNText.setEnabled(e); + mRemoteBaseDNText.setBackground(c); + mRemoteBindAsText.setEditable(e); + mRemoteBindAsText.setEnabled(e); + mRemoteBindAsText.setBackground(c); + mRemotePasswordText.setEditable(e); + mRemotePasswordText.setEnabled(e); + mRemotePasswordText.setBackground(c); + mRemoteDatabaseText.setEditable(e); + mRemoteDatabaseText.setEnabled(e); + mRemoteDatabaseText.setBackground(c); + mSchema.setEnabled(e); + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (wizardInfo.isCloning() && wizardInfo.isUpdateDBInfoDone()) + return false; + if (wizardInfo.isCloning() && !wizardInfo.isCreateDBDone()) { + setBorder(makeTitledBorder(PANELNAME)); + mEnable.setSelected(true); + mInstanceIDText.setText(wizardInfo.getCloneDBName()); + mPortText.setText(""+wizardInfo.getNextAvailPort()); + mBindAsText.setText(wizardInfo.getDBBindDN()); + mPasswordText.setText(""); + mPasswordAgainText.setText(""); + mRemoteBaseDNText.setText("o=netscapeCertificateServer"); + mRemoteDatabaseText.setText("userRoot"); + mRemoteBindAsText.setText("cn=directory manager"); + enableLocalDB(mEnable.isSelected()); + enableRemoteDB(mEnable.isSelected()); + mLocal.setEnabled(mEnable.isSelected()); + mRemote.setEnabled(mEnable.isSelected()); + return true; + } + + return false; + } + + public boolean validatePanel() { + if (!mEnable.isSelected()) + return true; + if (mLocal.isSelected()) { + String passwd = mPasswordText.getText().trim(); + String passwdAgain = mPasswordAgainText.getText().trim(); + String instanceId = mInstanceIDText.getText().trim(); + String bindAs = mBindAsText.getText().trim(); + String port = mPortText.getText().trim(); + + if (instanceId.equals("") || bindAs.equals("") || + port.equals("")) { + setErrorMessage("BLANKFIELD"); + return false; + } + + if (passwd.equals("") || passwdAgain.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + if (!passwd.equals(passwdAgain)) { + setErrorMessage("NOTSAMEPASSWD"); + return false; + } + + try { + Integer num = new Integer(mPortText.getText().trim()); + } catch (NumberFormatException e) { + setErrorMessage("NUMBERFORMAT"); + return false; + } + } else { + String host = mRemoteHostText.getText().trim(); + String port = mRemotePortText.getText().trim(); + String baseDN = mRemoteBaseDNText.getText().trim(); + String bindAs = mRemoteBindAsText.getText().trim(); + String passwd = mRemotePasswordText.getText().trim(); + String dbname = mRemoteDatabaseText.getText().trim(); + if (host.equals("") || port.equals("") || bindAs.equals("") || + baseDN.equals("") || dbname.equals("")) { + setErrorMessage("BLANKFIELD"); + return false; + } + if (passwd.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + try { + Integer num = new Integer(port); + } catch (NumberFormatException e) { + setErrorMessage("NUMBERFORMAT"); + return false; + } + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ""; + if (!mEnable.isSelected()) { + rawData = rawData+ConfigConstants.TASKID+"="+TaskId.TASK_UPDATE_DB_INFO; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + boolean ready = send(rawData, wizardInfo); + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + if (mRemote.isSelected()) { + rawData = ConfigConstants.TASKID+"="+TaskId.TASK_ADD_DBSCHEMA_INDEXES; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_HOST+"="+mRemoteHostText.getText().trim(); + rawData = rawData+"&"+ConfigConstants.PR_DB_PORT+"="+mRemotePortText.getText().trim(); + rawData = rawData+"&"+ConfigConstants.PR_DB_BINDDN+"="+mRemoteBindAsText.getText().trim(); + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+mRemotePasswordText.getText().trim(); + rawData = rawData+"&"+ConfigConstants.PR_DB_NAME+"="+mRemoteBaseDNText.getText().trim(); + rawData = rawData+"&"+ConfigConstants.PR_LDAP_DB_NAME+"="+mRemoteDatabaseText.getText().trim(); + rawData = rawData+"&"+ConfigConstants.PR_DB_SCHEMA+"="+mSchema.isSelected(); + rawData = rawData+"&"+ConfigConstants.PR_DB_MODE+"=remote"; + } else { + rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CREATE_INTERNALDB; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_IS_CLONEDDB_CREATED+"=true"; + rawData = rawData+"&"+ConfigConstants.PR_DB_MODE+"=local"; + rawData = rawData+"&"+ConfigConstants.PR_DB_PORT+"="+mPortText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_BINDDN+"="+mBindAsText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_NAME+"="+mInstanceIDText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+mPasswordText.getText(); + wizardInfo.setInternalDBPasswd(mPasswordText.getText().trim()); + wizardInfo.setDBBindDN(mBindAsText.getText().trim()); + wizardInfo.setDBName(mInstanceIDText.getText().trim()); + } + + startProgressStatus(); + //CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CREATEDB"); + + boolean ready = send(rawData, wizardInfo); + + if (ready) { + rawData = ConfigConstants.TASKID+"="+TaskId.TASK_TOKEN_INFO; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_READ; + ready = send(rawData, wizardInfo); + } + //dlg.setVisible(false); + + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEnable = makeJCheckBox("ENABLE"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEnable, gbc); + + CMSAdminUtil.resetGBC(gbc); + mLocal = makeJRadioButton("LOCAL", true); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, 2*COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(mLocal, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel instanceIDLbl = makeJLabel("INSTANCEID"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(instanceIDLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mInstanceIDText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mInstanceIDText, gbc); + mActiveColor = mInstanceIDText.getBackground(); + + CMSAdminUtil.resetGBC(gbc); + JLabel portNumber = makeJLabel("PORT"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + add(portNumber, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPortText = makeJTextField(10); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mPortText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mBindAsLabel = makeJLabel("ADMIN"); + //gbc.anchor = gbc.NORTHWEST; + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 2*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mBindAsLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mBindAsText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mBindAsText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPasswordLabel = makeJLabel("PWD"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPasswordLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPasswordText = makeJPasswordField(30); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPasswordText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPasswordAgainLabel = makeJLabel("PWDAGAIN"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPasswordAgainLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPasswordAgainText = makeJPasswordField(30); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPasswordAgainText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRemote = makeJRadioButton("REMOTE", false); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, 2*COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(mRemote, gbc); + + ButtonGroup buttonGroup = new ButtonGroup(); + buttonGroup.add(mLocal); + buttonGroup.add(mRemote); + + CMSAdminUtil.resetGBC(gbc); + JLabel hostLbl = makeJLabel("HOST"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(hostLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRemoteHostText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRemoteHostText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel portNumber1 = makeJLabel("PORT"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + add(portNumber1, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRemotePortText = makeJTextField(10); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mRemotePortText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel baseDNLbl = makeJLabel("BASEDN"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + add(baseDNLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRemoteBaseDNText = makeJTextField(30); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mRemoteBaseDNText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel bindAsLabel = makeJLabel("ADMIN"); + //gbc.anchor = gbc.NORTHWEST; + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 2*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(bindAsLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRemoteBindAsText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRemoteBindAsText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel passwordLabel = makeJLabel("PWD"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(passwordLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRemotePasswordText = makeJPasswordField(30); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRemotePasswordText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel databaseLabel = makeJLabel("DNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 3*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(databaseLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRemoteDatabaseText = makeJTextField(30); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRemoteDatabaseText, gbc); + + JLabel dummy1 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(dummy1, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSchema = makeJCheckBox("SCHEMA", true); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mSchema, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.setDBCreated(ConfigConstants.TRUE); + wizardInfo.setDBCreateNow(ConfigConstants.FALSE); + wizardInfo.setCreateDBDone(ConfigConstants.TRUE); + + if (mEnable.isSelected()) + wizardInfo.setCloneDBCreated("true"); + else { + wizardInfo.setUpdateDBInfoDone(ConfigConstants.TRUE); + wizardInfo.setCloneDBCreated("false"); + } + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIDBEnrollPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIDBEnrollPage.java new file mode 100644 index 000000000..d63a07129 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIDBEnrollPage.java @@ -0,0 +1,211 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIDBEnrollPage extends WizardBasePanel implements IWizardPanel { + private JCheckBox mEnable; + private JTextField mHostNameText, mPortText, mBaseDNText; + private JComboBox mVersionBox; + + private static final String PANELNAME = "DBENROLLWIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + + WIDBEnrollPage() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "DBENROLLWIZARD_TEXT_HEADING_LABEL"), 80), 1, 80); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEnable = makeJCheckBox("ENABLE"); + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mEnable, gbc); + + JPanel panel = new JPanel(); + panel.setBorder(CMSAdminUtil.makeTitledBorder(mResource, + PANELNAME, "DESTINATION")); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.weighty = 1.0; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(panel, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel hostName = makeJLabel("HOST"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel.add(hostName, gbc); + + CMSAdminUtil.resetGBC(gbc); + mHostNameText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + panel.add(mHostNameText, gbc); + +/* + CMSAdminUtil.resetGBC(gbc); + JTextArea dummy = createTextArea(" ", 2, 5); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(dummy, gbc); +*/ + + CMSAdminUtil.resetGBC(gbc); + JLabel portNumber = makeJLabel("PORT"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel.add(portNumber, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPortText = makeJTextField(10); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel.add(mPortText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel versionLbl = makeJLabel("VERSION"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(versionLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mVersionBox = makeJComboBox("VERSION"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(mVersionBox, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy = new JLabel(" "); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(dummy, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel baseDNLbl = makeJLabel("BASEDN"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(baseDNLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mBaseDNText = makeJTextField(20); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(mBaseDNText, gbc); + +/* + CMSAdminUtil.resetGBC(gbc); + JTextArea dummy1 = createTextArea(" ", 2, 30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(dummy1, gbc); +*/ + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCACertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCACertPage.java new file mode 100644 index 000000000..442fa2b29 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCACertPage.java @@ -0,0 +1,75 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; +import com.netscape.certsrv.common.*; + +/** + * The panel displays the certificate which will be installed in the token. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIDisplayCACertPage extends WIDisplayCertPage { + private static final String PANELNAME = "INSTALLDISPLAYCACERTWIZARD"; + private static final String CAHELPINDEX = "install-cacert-display-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakracert-display-wizard-help"; + + WIDisplayCACertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIDisplayCACertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + + if (wizardInfo.isCACertLocalCA() || !wizardInfo.isInstallCertNow() || + !wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() || + wizardInfo.isCACertInstalledDone()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else + mHelpIndex = CAHELPINDEX; + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + if (super.concludePanel(info)) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.put(ConfigConstants.STAGE_CA_CERT_REQUEST, + ConfigConstants.TRUE); + return true; + } + + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCertPage.java new file mode 100644 index 000000000..30e0bac13 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCertPage.java @@ -0,0 +1,205 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.management.client.util.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This page is to install the certificate in the internal token. It + * displays the certificate information. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIDisplayCertPage extends WizardBasePanel implements IWizardPanel { + private JTextArea mTextArea; + private JTextField mCertNameField; + protected String mPanelName; + protected String mHelpIndex; + + WIDisplayCertPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + setBorder(makeTitledBorder(mPanelName)); + String content = wizardInfo.getCertContent(); + String certOrder = wizardInfo.getCertOrder(); + String str = reformat(content, certOrder); + mTextArea.setText(str); + mCertNameField.setEditable(false); + mCertNameField.setBackground(getBackground()); + String tokenName = null; + String certType = wizardInfo.getCertType(); + if (certType != null) { + if (certType.equalsIgnoreCase(Constants.PR_CA_SIGNING_CERT)) { + tokenName = wizardInfo.getCATokenName(); + } else if (certType.equalsIgnoreCase(Constants.PR_RA_SIGNING_CERT)) { + tokenName = wizardInfo.getRATokenName(); + } else if (certType.equalsIgnoreCase(Constants.PR_OCSP_SIGNING_CERT)) { + tokenName = wizardInfo.getOCSPTokenName(); + } else if (certType.equalsIgnoreCase(Constants.PR_KRA_TRANSPORT_CERT)) { + tokenName = wizardInfo.getKRATokenName(); + } else if (certType.equalsIgnoreCase(Constants.PR_SERVER_CERT)) { + tokenName = wizardInfo.getSSLTokenName(); + } else { + Debug.println("WIDisplayCertPage: unrecognized certType: "+ + certType); + } + } + if ((tokenName != null) && + !(tokenName.equalsIgnoreCase(Constants.PR_INTERNAL_TOKEN_NAME))) { + Debug.println("tokenName="+tokenName); + mCertNameField.setText(tokenName+":"+wizardInfo.getNickname()); + } else { + Debug.println("tokenName=null"); + mCertNameField.setText(wizardInfo.getNickname()); + } + return true; + } + + private String reformat(String content, String certOrder) { + StringBuffer buffer = new StringBuffer(content); + StringTokenizer tokenizer = new StringTokenizer(certOrder, ":"); + int len = 0; + while (tokenizer.hasMoreTokens()) { + String str = (String)tokenizer.nextToken(); + int index = len+Integer.parseInt(str); + if (index >= buffer.length()) + break; + buffer.insert(index, "\n"); + len = index+1; + } + return buffer.toString(); + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_INSTALL_CERT; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + String val = wizardInfo.getPKCS10(); + if (val == null) { + rawData = rawData+"&"+Constants.PR_CERT_FILEPATH+"="+ + wizardInfo.getCertFilePath(); + } else { + rawData = rawData+"&"+Constants.PR_PKCS10+"="+ + wizardInfo.getPKCS10(); + } + rawData = rawData+"&"+Constants.PR_CERTIFICATE_TYPE+"="+wizardInfo.getCertType(); + rawData = rawData+"&"+Constants.PR_NICKNAME+"="+wizardInfo.getNickname(); + if (wizardInfo.getInternalDBPasswd() != null) + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+wizardInfo.getInternalDBPasswd(); + + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JLabel label1 = makeJLabel("NAME"); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE); + add(label1, gbc); + + CMSAdminUtil.resetGBC(gbc); + mCertNameField = new JTextField(30); + gbc.gridwidth = gbc.REMAINDER; + gbc.anchor = gbc.WEST; + gbc.weightx=1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(mCertNameField, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel certLbl = makeJLabel("CONTENT"); + gbc.gridwidth = gbc.REMAINDER; + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(certLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mTextArea = new JTextArea("",100,90); + mTextArea.setEditable(false); + mTextArea.setBackground(getBackground()); + JScrollPane scrollPanel = new JScrollPane(mTextArea, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPanel.setAlignmentX(LEFT_ALIGNMENT); + scrollPanel.setAlignmentY(TOP_ALIGNMENT); + scrollPanel.setBorder(BorderFactory.createLoweredBevelBorder()); + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx=1.0; + gbc.weighty=1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(scrollPanel, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayKRACertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayKRACertPage.java new file mode 100644 index 000000000..cae06e6cf --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayKRACertPage.java @@ -0,0 +1,77 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; +import com.netscape.certsrv.common.*; + +/** + * The panel displays the certificate which will be installed in the token. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIDisplayKRACertPage extends WIDisplayCertPage { + private static final String PANELNAME = "INSTALLDISPLAYKRACERTWIZARD"; + private static final String KRAHELPINDEX = "install-kracert-display-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakra-kracert-display-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakra-kracert-display-wizard-help"; + + WIDisplayKRACertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIDisplayKRACertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (wizardInfo.isKRACertLocalCA() || !wizardInfo.isInstallCertNow() || + !wizardInfo.isKRAInstalled() || wizardInfo.isKRACertInstalledDone()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + if (super.concludePanel(info)) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.put(ConfigConstants.STAGE_KRA_CERT_REQUEST, + ConfigConstants.TRUE); + return true; + } + + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayOCSPCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayOCSPCertPage.java new file mode 100644 index 000000000..e9db0e436 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayOCSPCertPage.java @@ -0,0 +1,71 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; + +/** + * The panel displays the certificate which will be installed in the token. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIDisplayOCSPCertPage extends WIDisplayCertPage { + private static final String PANELNAME = "INSTALLDISPLAYOCSPCERTWIZARD"; + private static final String OCSPHELPINDEX = "install-ocspcert-display-wizard-help"; + + WIDisplayOCSPCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIDisplayOCSPCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isOCSPCloningDone()) + return false; + + if (wizardInfo.isOCSPCertLocalCA() || !wizardInfo.isInstallCertNow() || + !wizardInfo.isOCSPInstalled() || wizardInfo.isOCSPCertInstalledDone()) + return false; + + mHelpIndex = OCSPHELPINDEX; + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + if (super.concludePanel(info)) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.put(ConfigConstants.STAGE_OCSP_CERT_REQUEST, + ConfigConstants.TRUE); + return true; + } + + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayRACertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayRACertPage.java new file mode 100644 index 000000000..891e68038 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayRACertPage.java @@ -0,0 +1,73 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; +import com.netscape.certsrv.common.*; + +/** + * The panel displays the certificate which will be installed in the token. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIDisplayRACertPage extends WIDisplayCertPage { + private static final String PANELNAME = "INSTALLDISPLAYRACERTWIZARD"; + private static final String RAHELPINDEX = "install-racert-display-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-display-wizard-help"; + + WIDisplayRACertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIDisplayRACertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + if (wizardInfo.isRACertLocalCA() || !wizardInfo.isInstallCertNow() || + !wizardInfo.isRAInstalled() || wizardInfo.isRACertInstalledDone()) + return false; + + if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + if (super.concludePanel(info)) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.put(ConfigConstants.STAGE_RA_CERT_REQUEST, + ConfigConstants.TRUE); + return true; + } + + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplaySSLCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplaySSLCertPage.java new file mode 100644 index 000000000..3a791b4ed --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplaySSLCertPage.java @@ -0,0 +1,70 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; +import com.netscape.certsrv.common.*; + +/** + * The panel displays the certificate which will be installed in the token. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIDisplaySSLCertPage extends WIDisplayCertPage { + private static final String PANELNAME = "INSTALLDISPLAYSSLCERTWIZARD"; + private static final String HELPINDEX = "install-sslcert-display-wizard-help"; + + WIDisplaySSLCertPage(JDialog parent) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + } + + WIDisplaySSLCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isSSLCertLocalCA() || !wizardInfo.isInstallCertNow() || + wizardInfo.isMigrationEnable() || wizardInfo.isSSLCertInstalledDone()) + return false; + + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + if (super.concludePanel(info)) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.put(ConfigConstants.STAGE_SSL_CERT_REQUEST, + ConfigConstants.TRUE); + return true; + } + + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIExistingDBPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIExistingDBPage.java new file mode 100644 index 000000000..93bbde830 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIExistingDBPage.java @@ -0,0 +1,282 @@ +// --- 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.config.install; + +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * This panel is for cloning. It lets the user to enter the configuration + * information for the master database. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIExistingDBPage extends WizardBasePanel implements IWizardPanel { + private JTextField mRMPortText, mRMBindAsText, mRMHostText; + private JTextField mRMBaseDNText; + private JPasswordField mRMPasswordText; + + private static final String PANELNAME = "EXISTINGDBWIZARD"; + private static final String HELPINDEX = + "install-internaldb-configuration-wizard-help"; + private static final String EMPTYSTR = " "; + + WIExistingDBPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIExistingDBPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public void actionPerformed(ActionEvent e) { + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (wizardInfo.isCloning() && !wizardInfo.isConnectDBDone()) { + setBorder(makeTitledBorder(PANELNAME)); + mRMBindAsText.setText(wizardInfo.getDBBindDN()); + return true; + } + + return false; + } + + public boolean validatePanel() { + String rmhostname = mRMHostText.getText().trim(); + String rmport = mRMPortText.getText().trim(); + String rmbindDN = mRMBindAsText.getText().trim(); + String rmpasswd = mRMPasswordText.getText().trim(); + + if (rmhostname.equals("")) { + setErrorMessage("EMPTYHOST"); + return false; + } + + if (rmport.equals("")) { + setErrorMessage("EMPTYPORT"); + return false; + } + + if (rmbindDN.equals("")) { + setErrorMessage("EMPTYBINDDN"); + return false; + } + + if (rmpasswd.equals("")) { + setErrorMessage("EMPTYPASSWD"); + return false; + } + + try { + Integer num = new Integer(rmport); + } catch (NumberFormatException e) { + setErrorMessage("NUMBERFORMAT"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + cleanUpWizardInfo(wizardInfo); + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CREATE_INTERNALDB; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_DB_MODE+"=remote"; + rawData = rawData+"&"+ConfigConstants.PR_HOST+"="+mRMHostText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_PORT+"="+mRMPortText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_BINDDN+"="+mRMBindAsText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+mRMPasswordText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_NAME+"="+mRMBaseDNText.getText(); + wizardInfo.setInternalDBPasswd(mRMPasswordText.getText().trim()); + wizardInfo.setDBBindDN(mRMBindAsText.getText().trim()); + + startProgressStatus(); + //CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CONNECTDB"); + + boolean ready = send(rawData, wizardInfo); + + if (ready) { + rawData = ConfigConstants.TASKID+"="+TaskId.TASK_TOKEN_INFO; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_READ; + ready = send(rawData, wizardInfo); + } + //dlg.setVisible(false); + + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel instanceIDLbl = makeJLabel("REMOTEHOST"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(instanceIDLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMHostText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMHostText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel portNumber = makeJLabel("REMOTEPORT"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + add(portNumber, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMPortText = makeJTextField(10); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mRMPortText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel mRMBindAsLabel = makeJLabel("REMOTEADMIN"); + //gbc.anchor = gbc.NORTHWEST; + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMBindAsLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMBindAsText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMBindAsText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel mRMPasswordLabel = makeJLabel("REMOTEPWD"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMPasswordLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMPasswordText = makeJPasswordField(30); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMPasswordText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel mRMBaseDNLabel = makeJLabel("REMOTEBASEDN"); + //gbc.anchor = gbc.NORTHWEST; + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMBaseDNLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMBaseDNText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMBaseDNText, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.setDBCreated(ConfigConstants.TRUE); + wizardInfo.setDBCreateNow(ConfigConstants.FALSE); + wizardInfo.setConnectDBDone(ConfigConstants.TRUE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertPage.java new file mode 100644 index 000000000..2bbb2f570 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertPage.java @@ -0,0 +1,68 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Generate the CA signing certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.keycert + */ +class WIGenCAKeyCertPage extends WIGenKeyCertPage { + private static final String PANELNAME = "INSTALLGENCAWIZARD"; + private static final String CAHELPINDEX = "install-cacert-creation-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakracert-creation-wizard-help"; + + WIGenCAKeyCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIGenCAKeyCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + + if (!wizardInfo.isCACertLocalCA() || !wizardInfo.isCAInstalled() || + wizardInfo.isMigrationEnable() || wizardInfo.isSelfSignedCACertDone() || + wizardInfo.isCACertRequestDone() || wizardInfo.isCACertInstalledDone()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else + mHelpIndex = CAHELPINDEX; + + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertReqPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertReqPage.java new file mode 100644 index 000000000..c1f3c11ea --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertReqPage.java @@ -0,0 +1,80 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Generate the CA signing certificate request + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIGenCAKeyCertReqPage extends WIGenKeyCertReqPage { + private static final String PANELNAME = "INSTALLGENCACERTREQWIZARD"; + private static final String CAHELPINDEX = "install-cacert-request-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakracert-request-wizard-help"; + + WIGenCAKeyCertReqPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIGenCAKeyCertReqPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + + if (wizardInfo.isCACertLocalCA() || !wizardInfo.isCAInstalled() || + wizardInfo.isMigrationEnable() || wizardInfo.isSelfSignedCACertDone() + || (wizardInfo.isCACertRequestDone() && + !wizardInfo.isCACertRequestBack()) || + wizardInfo.isCACertInstalledDone()) + return false; + + if (wizardInfo.isCACertRequestBack()) { + wizardInfo.put(ConfigConstants.STAGE_CA_CERT_REQUEST, + ConfigConstants.FALSE); + wizardInfo.put(ConfigConstants.CA_CERT_REQUEST_BACK, + ConfigConstants.FALSE); + } + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else + mHelpIndex = CAHELPINDEX; + + mTokenName = wizardInfo.getCATokenName(); + wizardInfo.setCertType(Constants.PR_CA_SIGNING_CERT); + wizardInfo.setNewRequest(); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertPage.java new file mode 100644 index 000000000..98ef24812 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertPage.java @@ -0,0 +1,70 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Generate the KRA transport certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.keycert + */ +class WIGenKRAKeyCertPage extends WIGenKeyCertPage { + private static final String PANELNAME = "INSTALLGENKRAWIZARD"; + private static final String KRAHELPINDEX = "install-kracert-creation-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-creation-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakra-kracert-creation-wizard-help"; + + WIGenKRAKeyCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIGenKRAKeyCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (!wizardInfo.isKRACertLocalCA() || !wizardInfo.isKRAInstalled() || + wizardInfo.isKRALocalCertDone() || wizardInfo.isKRACertRequestDone() || + wizardInfo.isKRACertInstalledDone()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertReqPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertReqPage.java new file mode 100644 index 000000000..f6e5df9fe --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertReqPage.java @@ -0,0 +1,82 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Generate the KRA signing certificate request + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIGenKRAKeyCertReqPage extends WIGenKeyCertReqPage { + private static final String PANELNAME = "INSTALLGENKRACERTREQWIZARD"; + private static final String KRAHELPINDEX = "install-kracert-request-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakra-kracert-request-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakra-kracert-request-wizard-help"; + + WIGenKRAKeyCertReqPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIGenKRAKeyCertReqPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (wizardInfo.isKRACertLocalCA() || !wizardInfo.isKRAInstalled() || + (wizardInfo.isKRACertRequestDone() && + !wizardInfo.isKRACertRequestBack()) || + wizardInfo.isKRALocalCertDone() || + wizardInfo.isKRACertInstalledDone()) + return false; + + if (wizardInfo.isCACertRequestBack()) { + wizardInfo.put(ConfigConstants.STAGE_KRA_CERT_REQUEST, + ConfigConstants.FALSE); + wizardInfo.put(ConfigConstants.KRA_CERT_REQUEST_BACK, + ConfigConstants.FALSE); + } + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + mTokenName = wizardInfo.getKRATokenName(); + wizardInfo.setCertType(Constants.PR_KRA_TRANSPORT_CERT); + wizardInfo.setNewRequest(); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertPage.java new file mode 100644 index 000000000..8272d44df --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertPage.java @@ -0,0 +1,143 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Generate the certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.keycert + */ +class WIGenKeyCertPage extends WizardBasePanel implements IWizardPanel { + private JTextArea desc; + private String mPanelName; + protected String mHelpIndex; + + WIGenKeyCertPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + setBorder(makeTitledBorder(mPanelName)); + + String str = mResource.getString(mPanelName+"_TEXT_NEWKEY_LABEL"); + desc.setText(str); + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + NameValuePairs nvps = wizardInfo.getAllCertInfo(); + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CREATE_CERT; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_HASH_TYPE+"="+wizardInfo.getHashType(); + if (wizardInfo.getCertType().equals(Constants.PR_CA_SIGNING_CERT)) { + String OComp = wizardInfo.getCAOComp(); + if (OComp != null && !OComp.equals("")) { + rawData = rawData+"&"+ConfigConstants.PR_CA_O_COMPONENT+"="+ + wizardInfo.getCAOComp(); + } + String CComp = wizardInfo.getCACComp(); + if (CComp != null && !CComp.equals("")) + rawData = rawData+"&"+ConfigConstants.PR_CA_C_COMPONENT+"="+ + wizardInfo.getCACComp(); + } + + // testing, please remove after finish testing + if (wizardInfo.getInternalDBPasswd() != null) + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+wizardInfo.getInternalDBPasswd(); + + if (nvps != null) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + rawData = rawData+"&"+name+"="+value; + } + } + + startProgressStatus(); + + //CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CREATECERT"); + + boolean ready = send(rawData, wizardInfo); + + //dlg.setVisible(false); + + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + +/* + desc = new JTextArea(2, 80); + desc.setBackground(getBackground()); + desc.setEditable(false); + desc.setCaretColor(getBackground()); +*/ + desc = createTextArea(""); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertReqPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertReqPage.java new file mode 100644 index 000000000..b5c0378c3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertReqPage.java @@ -0,0 +1,291 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Generate the certificate request + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIGenKeyCertReqPage extends WizardBasePanel implements IWizardPanel { + private JTextArea desc; + private String mPanelName; + private static final String CERTREQ_BEGIN_HEADING = + "-----BEGIN NEW CERTIFICATE REQUEST-----"; + private static final String CERTREQ_END_HEADING = + "-----END NEW CERTIFICATE REQUEST-----"; + private static final int LINE_COUNT = 76; + protected String mHelpIndex; + protected String mTokenName; + + protected JRadioButton mPKCS10; + protected JRadioButton mCMC; + protected String mSigningCert = null; + + WIGenKeyCertReqPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + setBorder(makeTitledBorder(mPanelName)); + + String str = mResource.getString(mPanelName+"_TEXT_NEWKEY_LABEL"); + desc.setText(str); + // check subject key identifier to enable cmc or not + NameValuePairs nvps = + (NameValuePairs)wizardInfo.get(wizardInfo.ALL_CERT_INFO); + if (nvps != null) { + str = (String)nvps.get(Constants.PR_SKI); + if (str != null && str.equals(ConfigConstants.TRUE)) { + mCMC.setEnabled(true); + mCMC.setVisible(true); + mPKCS10.setVisible(true); + } else if (str == null || str.equals(ConfigConstants.FALSE)){ + mCMC.setEnabled(false); + mCMC.setVisible(false); + mPKCS10.setVisible(false); + } + CMSAdminUtil.repaintComp(mCMC); + CMSAdminUtil.repaintComp(mPKCS10); + } + // check if a signing cert installed + String type = wizardInfo.getCertType(); + if (!mCMC.isEnabled() && + (type.equals(Constants.PR_SERVER_CERT) || + type.equals(Constants.PR_KRA_TRANSPORT_CERT)) ) { + if (wizardInfo.isCAInstalled() && + wizardInfo.isCACertInstalledDone()) { + mSigningCert = Constants.PR_CA_SIGNING_CERT; + mCMC.setEnabled(true); + mCMC.setVisible(true); + CMSAdminUtil.repaintComp(mCMC); + mPKCS10.setVisible(true); + CMSAdminUtil.repaintComp(mPKCS10); + } else if (wizardInfo.isRAInstalled() && + wizardInfo.isRACertInstalledDone()) { + mSigningCert = Constants.PR_RA_SIGNING_CERT; + mCMC.setEnabled(true); + mCMC.setVisible(true); + CMSAdminUtil.repaintComp(mCMC); + mPKCS10.setVisible(true); + CMSAdminUtil.repaintComp(mPKCS10); + } else if (wizardInfo.isKRAInstalled() && + wizardInfo.isKRACertInstalledDone()) { + mSigningCert = Constants.PR_KRA_TRANSPORT_CERT; + mCMC.setEnabled(true); + mCMC.setVisible(true); + CMSAdminUtil.repaintComp(mCMC); + mPKCS10.setVisible(true); + CMSAdminUtil.repaintComp(mPKCS10); + } else if (wizardInfo.isOCSPInstalled() && + wizardInfo.isOCSPCertInstalledDone()) { + mSigningCert = Constants.PR_OCSP_SIGNING_CERT; + mCMC.setEnabled(true); + mCMC.setVisible(true); + CMSAdminUtil.repaintComp(mCMC); + mPKCS10.setVisible(true); + CMSAdminUtil.repaintComp(mPKCS10); + } + } + + if (type.equals(Constants.PR_OCSP_SIGNING_CERT)) { + mCMC.setEnabled(false); + mCMC.setVisible(false); + CMSAdminUtil.repaintComp(mCMC); + mPKCS10.setVisible(false); + CMSAdminUtil.repaintComp(mPKCS10); + } + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CERT_REQUEST; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + + if (wizardInfo.getSubjectName() == null) { + setErrorMessage("Subject Name is not available. Please redo all the request generation procedure. "); + return false; + } + rawData = rawData+"&"+Constants.PR_SUBJECT_NAME+"="+wizardInfo.getSubjectName(); + if (mTokenName == null) { + setErrorMessage("Token Name is not available. Please redo all the request generation procedure. "); + return false; + } + rawData = rawData+"&"+Constants.PR_TOKEN_NAME+"="+mTokenName; + if (wizardInfo.getKeyLength() == null) { + setErrorMessage("Key Length is not available. Please redo all the request generation procedure. "); + return false; + } + rawData = rawData+"&"+Constants.PR_KEY_LENGTH+"="+wizardInfo.getKeyLength(); + if (wizardInfo.getKeyType() == null) { + setErrorMessage("Key Type is not available. Please redo all the request generation procedure. "); + return false; + } + rawData = rawData+"&"+Constants.PR_KEY_TYPE+"="+wizardInfo.getKeyType(); + if (wizardInfo.getCertType() == null) { + setErrorMessage("CertType is not available. Please redo all the request generation procedure. "); + return false; + } + rawData = rawData+"&"+Constants.PR_CERTIFICATE_TYPE+"="+wizardInfo.getCertType(); + + NameValuePairs nvps = wizardInfo.getAllCertInfo();//extensions + if (nvps != null) { + for (String name : nvps.keySet()) { + String value = nvps.get(name); + if (name != null && value != null) + rawData = rawData+"&"+name+"="+value; + } + } + + if (mSigningCert != null) { + rawData = rawData+"&"+"signing_cert="+mSigningCert; + } + + if (mPKCS10.isSelected()) { + rawData = rawData+"&"+wizardInfo.getCertType()+ConfigConstants.PR_REQUEST_FORMAT+ + "="+ConfigConstants.PR_REQUEST_PKCS10; + } else if (mCMC.isSelected()) { + rawData = rawData+"&"+wizardInfo.getCertType()+ConfigConstants.PR_REQUEST_FORMAT+"="+ConfigConstants.PR_REQUEST_CMC; + } + + startProgressStatus(); + //CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CREATEREQ"); + boolean ready = send(rawData, wizardInfo); + if (ready) { + String pkcs = wizardInfo.getCertRequest(); + wizardInfo.setCertRequest(reformat(pkcs)); + } + //dlg.setVisible(false); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + private String reformat(String pkcs) { + int beginIndex = CERTREQ_BEGIN_HEADING.length(); + int endIndex = CERTREQ_END_HEADING.length(); + int totalLen = pkcs.length(); + String content = pkcs.substring(beginIndex, totalLen-endIndex); + String result = CERTREQ_BEGIN_HEADING+"\n"; + int index = 0; + while (content.length() >= LINE_COUNT) { + result = result+content.substring(0, LINE_COUNT)+"\n"; + content = content.substring(LINE_COUNT); + } + if (content.length() > 0) { + result = result+content+"\n"+CERTREQ_END_HEADING; + } else { + result = result+CERTREQ_END_HEADING; + } + + return result; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + +/* + desc = new JTextArea(2, 80); + desc.setBackground(getBackground()); + desc.setEditable(false); + desc.setCaretColor(getBackground()); +*/ + desc = createTextArea(""); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + //gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mPKCS10 = makeJRadioButton("PKCS10", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mPKCS10, gbc); + + mCMC = makeJRadioButton("CMC", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mCMC, gbc); + + ButtonGroup group = new ButtonGroup(); + group.add(mCMC); + group.add(mPKCS10); + + CMSAdminUtil.resetGBC(gbc); + JLabel d1 = new JLabel(" "); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridheight = gbc.REMAINDER; + gbc.gridwidth = gbc.REMAINDER; + add(d1, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertPage.java new file mode 100644 index 000000000..2e2fbdbed --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertPage.java @@ -0,0 +1,62 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; + +/** + * Generate the OCSP signing certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.keycert + */ +class WIGenOCSPKeyCertPage extends WIGenKeyCertPage { + private static final String PANELNAME = "INSTALLGENOCSPWIZARD"; + private static final String OCSPHELPINDEX = "install-ocspcert-creation-wizard-help"; + + WIGenOCSPKeyCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIGenOCSPKeyCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + +Debug.println("+++++++++++++++++++++++++++++=WIGenOCSPKeyCertPage "); + if (!wizardInfo.isOCSPInstalled()) + return false; + + mHelpIndex = OCSPHELPINDEX; + + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertReqPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertReqPage.java new file mode 100644 index 000000000..7c27f673d --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertReqPage.java @@ -0,0 +1,77 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; + +/** + * Generate the OCSP signing certificate request + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIGenOCSPKeyCertReqPage extends WIGenKeyCertReqPage { + private static final String PANELNAME = "INSTALLGENOCSPCERTREQWIZARD"; + private static final String OCSPHELPINDEX = "install-ocspcert-request-wizard-help"; + + WIGenOCSPKeyCertReqPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIGenOCSPKeyCertReqPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isOCSPCloningDone()) + return false; + + if (wizardInfo.isOCSPCertLocalCA() || !wizardInfo.isOCSPInstalled() || + (wizardInfo.isOCSPCertRequestDone() && + !wizardInfo.isOCSPCertRequestBack()) || + wizardInfo.isOCSPLocalCertDone() || + wizardInfo.isOCSPCertInstalledDone()) + return false; + + if (wizardInfo.isOCSPCertRequestBack()) { + wizardInfo.put(ConfigConstants.STAGE_OCSP_CERT_REQUEST, + ConfigConstants.FALSE); + wizardInfo.put(ConfigConstants.OCSP_CERT_REQUEST_BACK, + ConfigConstants.FALSE); + } + + mHelpIndex = OCSPHELPINDEX; + + mTokenName = wizardInfo.getOCSPTokenName(); + wizardInfo.setCertType(Constants.PR_OCSP_SIGNING_CERT); + wizardInfo.setNewRequest(); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertPage.java new file mode 100644 index 000000000..05859e54c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertPage.java @@ -0,0 +1,67 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Generate the RA signing certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.keycert + */ +class WIGenRAKeyCertPage extends WIGenKeyCertPage { + private static final String PANELNAME = "INSTALLGENRAWIZARD"; + private static final String RAHELPINDEX = "install-racert-creation-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-creation-wizard-help"; + + WIGenRAKeyCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIGenRAKeyCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + if (!wizardInfo.isRACertLocalCA() || !wizardInfo.isRAInstalled() || + wizardInfo.isRALocalCertDone() || wizardInfo.isRACertRequestDone() || + wizardInfo.isRACertInstalledDone()) + return false; + + if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertReqPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertReqPage.java new file mode 100644 index 000000000..89aa21f14 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertReqPage.java @@ -0,0 +1,79 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Generate the RA signing certificate request + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIGenRAKeyCertReqPage extends WIGenKeyCertReqPage { + private static final String PANELNAME = "INSTALLGENRACERTREQWIZARD"; + private static final String RAHELPINDEX = "install-racert-request-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-request-wizard-help"; + + WIGenRAKeyCertReqPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIGenRAKeyCertReqPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + if (wizardInfo.isRACertLocalCA() || !wizardInfo.isRAInstalled() || + (wizardInfo.isRACertRequestDone() && + !wizardInfo.isRACertRequestBack()) || + wizardInfo.isRALocalCertDone() || + wizardInfo.isRACertInstalledDone()) + return false; + + if (wizardInfo.isRACertRequestBack()) { + wizardInfo.put(ConfigConstants.STAGE_RA_CERT_REQUEST, + ConfigConstants.FALSE); + wizardInfo.put(ConfigConstants.RA_CERT_REQUEST_BACK, + ConfigConstants.FALSE); + } + + if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + + mTokenName = wizardInfo.getRATokenName(); + wizardInfo.setCertType(Constants.PR_RA_SIGNING_CERT); + wizardInfo.setNewRequest(); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenSSLKeyCertReqPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenSSLKeyCertReqPage.java new file mode 100644 index 000000000..58a85f790 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenSSLKeyCertReqPage.java @@ -0,0 +1,76 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Generate the SSL server certificate request + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIGenSSLKeyCertReqPage extends WIGenKeyCertReqPage { + private static final String PANELNAME = "INSTALLGENSSLCERTREQWIZARD"; + private static final String HELPINDEX = "install-sslcert-request-wizard-help"; + + WIGenSSLKeyCertReqPage(JDialog parent) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + } + + WIGenSSLKeyCertReqPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isSSLCertLocalCA() || wizardInfo.isMigrationEnable() || + (wizardInfo.isSSLCertRequestDone() && + !wizardInfo.isSSLCertRequestBack()) || + wizardInfo.isSSLLocalCertDone() || + wizardInfo.isSSLCertInstalledDone()) + return false; + + + if (wizardInfo.isSSLCertRequestBack()) { + wizardInfo.put(ConfigConstants.STAGE_SSL_CERT_REQUEST, + ConfigConstants.FALSE); + wizardInfo.put(ConfigConstants.SSL_CERT_REQUEST_BACK, + ConfigConstants.FALSE); + } + + mTokenName = wizardInfo.getSSLTokenName(); + wizardInfo.setCertType(Constants.PR_SERVER_CERT); + wizardInfo.setNewRequest(); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIGenServerKeyCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenServerKeyCertPage.java new file mode 100644 index 000000000..e93c378f6 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIGenServerKeyCertPage.java @@ -0,0 +1,62 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Generate the SSL server certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.keycert + */ +class WIGenServerKeyCertPage extends WIGenKeyCertPage { + private static final String PANELNAME = "INSTALLGENSSLWIZARD"; + private static final String HELPINDEX = "install-sslcert-creation-wizard-help"; + + WIGenServerKeyCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIGenServerKeyCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (!wizardInfo.isSSLCertLocalCA() || wizardInfo.isMigrationEnable() || + wizardInfo.isSSLLocalCertDone() || wizardInfo.isSSLCertRequestDone() || + wizardInfo.isSSLCertInstalledDone()) + return false; + + mHelpIndex = HELPINDEX; + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCACertStatusPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCACertStatusPage.java new file mode 100644 index 000000000..d26b79ab0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCACertStatusPage.java @@ -0,0 +1,70 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; + +/** + * The panel asks the user to paste the certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallCACertStatusPage extends WIInstallCertStatusPage { + private static final String PANELNAME = "INSTALLCACERTSTATUSWIZARD"; + private static final String CAHELPINDEX = "install-cacert-status-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakracert-status-wizard-help"; + + WIInstallCACertStatusPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIInstallCACertStatusPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + if (wizardInfo.isCACertLocalCA() || !wizardInfo.isCACertInstalledDone() || + !wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() || + wizardInfo.isCACertChainImportDone()) + return false; + + if (wizardInfo.hasEntireCAChain()) + return false; + + wizardInfo.setCertType(Constants.PR_CA_SIGNING_CERT); + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else + mHelpIndex = CAHELPINDEX; + + return super.initializePanel(info); + } +} + + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCAIntroPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCAIntroPage.java new file mode 100644 index 000000000..033897c79 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCAIntroPage.java @@ -0,0 +1,62 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; + +/** + * The panel asks if the user wants to install the CA certificate now. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallCAIntroPage extends WIInstallIntroPage { + private static final String PANELNAME = "INSTALLCAINTROWIZARD"; + private static final String CAHELPINDEX = "install-cacert-installintro-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakracert-installintro-wizard-help"; + + WIInstallCAIntroPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIInstallCAIntroPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + + if (wizardInfo.isCACertLocalCA() || !wizardInfo.isCAInstalled() || + wizardInfo.isMigrationEnable() || wizardInfo.isCACertInstalledDone()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else + mHelpIndex = CAHELPINDEX; + + return super.initializePanel(info); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert1Page.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert1Page.java new file mode 100644 index 000000000..240134536 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert1Page.java @@ -0,0 +1,157 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * This page is to install the certificate in the internal token. The user can + * import the cert from the file or paste the Base 64 encoded blob in the + * text area. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallCert1Page extends WizardBasePanel implements IWizardPanel { + private JRadioButton mFileBtn; + private JRadioButton mBase64Btn; + private JTextField mFileText; + private JTextArea mBase64Text; + private JButton mPaste; + private static final String PANELNAME = "INSTALLCERT1WIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + + WIInstallCert1Page() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + mFileBtn = makeJRadioButton("FILE", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mFileBtn, gbc); + + mFileText = makeJTextField(50); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, 0); + add(mFileText, gbc); + + mBase64Btn = makeJRadioButton("BASE64", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mBase64Btn, gbc); + + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "INSTALLCERT1WIZARD_TEXT_DESC_LABEL"), 80), 2, 80); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mPaste = makeJButton("PASTE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mPaste, gbc); + + mBase64Text = new JTextArea(null, null, 0, 0); + mBase64Text.setLineWrap(true); + mBase64Text.setWrapStyleWord(true); + JScrollPane scrollPane = new JScrollPane(mBase64Text, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setPreferredSize(new Dimension(50, 20)); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + add(scrollPane, gbc); + + JLabel dummy = new JLabel(" "); + gbc.gridwidth = gbc.REMAINDER; + gbc.anchor = gbc.NORTHWEST; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + add(dummy, gbc); + + ButtonGroup buttonGrp = new ButtonGroup(); + buttonGrp.add(mFileBtn); + buttonGrp.add(mBase64Btn); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert2Page.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert2Page.java new file mode 100644 index 000000000..fc9eaacb0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert2Page.java @@ -0,0 +1,140 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * This page is to install the certificate in the internal token. It + * displays the certificate information. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallCert2Page extends WizardBasePanel implements IWizardPanel { + private JButton mAdd; + private static final String PANELNAME = "INSTALLCERT2WIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + + WIInstallCert2Page() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JLabel subjectDNLbl = makeJLabel("SUBJECTDN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(subjectDNLbl, gbc); + + JLabel issuerLbl = makeJLabel("ISSUE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(issuerLbl, gbc); + + JTextArea subjectText = new JTextArea(null, null, 0, 0); + JScrollPane subjectScrollPane = new JScrollPane(subjectText, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + //subjectScrollPane.setPreferredSize(new Dimension(50, 30)); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, 0 ); + gbc.weighty = 1.0; + gbc.weightx = 1.0; + gbc.fill = gbc.BOTH; + add(subjectScrollPane, gbc); + + JTextArea issueText = new JTextArea(null, null, 0, 0); + JScrollPane issueScrollPane = new JScrollPane(issueText, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + //issueScrollPane.setPreferredSize(new Dimension(50, 30)); + CMSAdminUtil.resetGBC(gbc); + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.weighty = 1.0; + gbc.weightx = 1.0; + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + add(issueScrollPane, gbc); + + JTextArea infoText = new JTextArea(null, null, 0, 0); + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + infoText.setPreferredSize(new Dimension(50, 20)); + gbc.fill = gbc.BOTH; + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weighty = 1.0; + add(infoText, gbc); + + mAdd = makeJButton("ADD"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mAdd, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCertStatusPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCertStatusPage.java new file mode 100644 index 000000000..860e5b60e --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCertStatusPage.java @@ -0,0 +1,248 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import java.io.*; +import javax.swing.*; +import javax.swing.text.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Status page of certificate installation. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallCertStatusPage extends WizardBasePanel implements IWizardPanel { + private Color mActiveColor; + private JTextArea desc; + private JRadioButton mFileBtn; + private JRadioButton mBase64Btn; + private String mPanelName; + protected JTextArea mBase64Text; + private JTextField mFileText; + protected JButton mPaste; + protected String mHelpIndex; + protected String mCertChain; + protected String mCertFilePath; + + WIInstallCertStatusPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean initializePanel(WizardInfo info) { + setBorder(makeTitledBorder(mPanelName)); + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String str = mResource.getString(mPanelName+"_TEXT_DESC_LABEL"); + desc.setText(str); + return true; + } + + public boolean isLastPage() { + return false; + } + + public boolean validatePanel() { + if (mFileBtn.isSelected()) { + mCertFilePath = mFileText.getText().trim(); + if (mCertFilePath.equals("")) { + setErrorMessage("EMPTYFILEFIELD"); + return false; + } + } else if (mBase64Btn.isSelected()) { + mCertChain = mBase64Text.getText().trim(); + if (mCertChain.equals("")) { + setErrorMessage("B64EEMPTY"); + return false; + } + } + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_IMPORT_CERT_CHAIN; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_READ; + if (mFileBtn.isSelected()) { + rawData = rawData+"&"+Constants.PR_CERT_FILEPATH+"="+mCertFilePath; + } else if (mBase64Btn.isSelected()) { + rawData = rawData+"&"+ConfigConstants.PR_CERT_CHAIN+"="+mCertChain; + } + + rawData = rawData+"&"+Constants.PR_CERTIFICATE_TYPE+"="+wizardInfo.getCertType(); + + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else if (str.equals("incompleteCertChain")) { + String errormsg = mResource.getString(mPanelName+"_INCOMPLETECERTCHAIN"); + int status = JOptionPane.showConfirmDialog(mAdminFrame, errormsg, "Information", + JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_INFO_ICON)); + if (status == JOptionPane.OK_OPTION) { + rawData = rawData+"&"+ConfigConstants.NOT_IMPORT_CHAIN+"="+ + ConfigConstants.TRUE; + ready = send(rawData, wizardInfo); + return true; + } else { + setErrorMessage(mResource.getString(mPanelName+"_ERROR1")); + return false; + } + } else + setErrorMessage(str); + } + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + desc = createTextArea(""); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + //gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mFileBtn = makeJRadioButton("FILE", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mFileBtn, gbc); + + mFileText = makeJTextField(50); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, COMPONENT_SPACE, 0); + add(mFileText, gbc); + mActiveColor = mFileText.getBackground(); + + mBase64Btn = makeJRadioButton("BASE64", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mBase64Btn, gbc); + + ButtonGroup btngroup = new ButtonGroup(); + btngroup.add(mFileBtn); + btngroup.add(mBase64Btn); + + JTextArea desc1 = createTextArea(mResource.getString( + mPanelName+"_TEXT_DESC1_LABEL")); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,4*COMPONENT_SPACE,0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc1, gbc); + + mBase64Text = new JTextArea(null, null, 0, 0); + JScrollPane scrollPane = new JScrollPane(mBase64Text, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setPreferredSize(new Dimension(50, 20)); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + add(scrollPane, gbc); + + mPaste = makeJButton("PASTE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mPaste, gbc); + + JLabel dummy = new JLabel(" "); + gbc.gridwidth = gbc.REMAINDER; + gbc.anchor = gbc.NORTHWEST; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + add(dummy, gbc); + + enableFields(mFileText, true, mActiveColor); + enableFields(mBase64Text, false, getBackground()); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mPaste)) { + mBase64Text.paste(); + } else if (e.getSource().equals(mFileBtn)) { + enableFields(mFileText, true, mActiveColor); + enableFields(mBase64Text, false, getBackground()); + } else if (e.getSource().equals(mBase64Btn)) { + enableFields(mFileText, false, getBackground()); + enableFields(mBase64Text, true, mActiveColor); + } + } + + private void enableFields(JTextComponent comp1, boolean enable, Color color) { + comp1.setEnabled(enable); + comp1.setEditable(enable); + comp1.setBackground(color); + CMSAdminUtil.repaintComp(comp1); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallIntroPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallIntroPage.java new file mode 100644 index 000000000..29ddd0a46 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallIntroPage.java @@ -0,0 +1,133 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Setup Single Signon for the installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallIntroPage extends WizardBasePanel implements IWizardPanel { + protected JRadioButton mYes; + protected JRadioButton mNo; + protected String mPanelName; + protected String mHelpIndex; + + WIInstallIntroPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + setBorder(makeTitledBorder(mPanelName)); + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea heading = createTextArea(mResource.getString( + mPanelName+"_TEXT_HEADING_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(heading, gbc); + + mNo = makeJRadioButton("NO", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mNo, gbc); + + mYes = makeJRadioButton("YES", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mYes, gbc); + + JLabel dummy = new JLabel(""); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(dummy, gbc); + + ButtonGroup buttonGrp = new ButtonGroup(); + buttonGrp.add(mYes); + buttonGrp.add(mNo); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mNo.isSelected()) + wizardInfo.setInstallCertNow(Constants.FALSE); + else + wizardInfo.setInstallCertNow(Constants.TRUE); + } + + public void actionPerformed(ActionEvent e) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRACertStatusPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRACertStatusPage.java new file mode 100644 index 000000000..d33601151 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRACertStatusPage.java @@ -0,0 +1,72 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; + +/** + * The panel asks the user to paste the certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallKRACertStatusPage extends WIInstallCertStatusPage { + private static final String PANELNAME = "INSTALLKRACERTSTATUSWIZARD"; + private static final String KRAHELPINDEX = "install-kracert-status-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakra-kracert-status-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakra-kracert-status-wizard-help"; + + WIInstallKRACertStatusPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIInstallKRACertStatusPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (wizardInfo.isKRACertLocalCA() || !wizardInfo.isKRACertInstalledDone() || + !wizardInfo.isKRAInstalled() || wizardInfo.isKRACertChainImportDone()) + return false; + + if (wizardInfo.hasEntireKRAChain()) + return false; + + wizardInfo.setCertType(Constants.PR_KRA_TRANSPORT_CERT); + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + return super.initializePanel(info); + } +} + + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRAIntroPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRAIntroPage.java new file mode 100644 index 000000000..cba792c1c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRAIntroPage.java @@ -0,0 +1,65 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; + +/** + * The panel asks if the user wants to install the KR certificate now. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallKRAIntroPage extends WIInstallIntroPage { + private static final String PANELNAME = "INSTALLKRAINTROWIZARD"; + private static final String KRAHELPINDEX = "install-kracert-installintro-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakra-kracert-installintro-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakra-kracert-installintro-wizard-help"; + + + WIInstallKRAIntroPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIInstallKRAIntroPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (wizardInfo.isKRACertLocalCA() || !wizardInfo.isKRAInstalled() || + wizardInfo.isKRACertInstalledDone()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + return super.initializePanel(info); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPCertStatusPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPCertStatusPage.java new file mode 100644 index 000000000..c98b7b045 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPCertStatusPage.java @@ -0,0 +1,67 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; +import com.netscape.management.client.util.*; + +/** + * The panel asks the user to paste the certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallOCSPCertStatusPage extends WIInstallCertStatusPage { + private static final String PANELNAME = "INSTALLOCSPCERTSTATUSWIZARD"; + private static final String OCSPHELPINDEX = "install-ocspcert-status-wizard-help"; + + WIInstallOCSPCertStatusPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIInstallOCSPCertStatusPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isOCSPCloningDone()) + return false; + + if (wizardInfo.isOCSPCertLocalCA() || !wizardInfo.isOCSPCertInstalledDone() || + !wizardInfo.isOCSPInstalled() || wizardInfo.isOCSPCertChainImportDone()) + return false; + + if (wizardInfo.hasEntireOCSPChain()) + return false; + + wizardInfo.setCertType(Constants.PR_OCSP_SIGNING_CERT); + + mHelpIndex = OCSPHELPINDEX; + + return super.initializePanel(info); + } +} + + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPIntroPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPIntroPage.java new file mode 100644 index 000000000..96c843e57 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPIntroPage.java @@ -0,0 +1,60 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; +import com.netscape.management.client.util.*; + +/** + * The panel asks if the user wants to install the RA certificate now. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallOCSPIntroPage extends WIInstallIntroPage { + + private static final String PANELNAME = "INSTALLOCSPINTROWIZARD"; + private static final String OCSPHELPINDEX = "install-ocspcert-installintro-wizard-help"; + + WIInstallOCSPIntroPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIInstallOCSPIntroPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (wizardInfo.isCloning() && wizardInfo.isOCSPCloningDone()) + return false; + if (wizardInfo.isOCSPCertLocalCA() || !wizardInfo.isOCSPInstalled() || + wizardInfo.isOCSPCertInstalledDone()) + return false; + + mHelpIndex = OCSPHELPINDEX; + + return super.initializePanel(info); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRACertStatusPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRACertStatusPage.java new file mode 100644 index 000000000..326f5067a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRACertStatusPage.java @@ -0,0 +1,69 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; + +/** + * The panel asks the user to paste the certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallRACertStatusPage extends WIInstallCertStatusPage { + private static final String PANELNAME = "INSTALLRACERTSTATUSWIZARD"; + private static final String RAHELPINDEX = "install-racert-status-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-status-wizard-help"; + + WIInstallRACertStatusPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIInstallRACertStatusPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + if (wizardInfo.isRACertLocalCA() || !wizardInfo.isRACertInstalledDone() || + !wizardInfo.isRAInstalled() || wizardInfo.isRACertChainImportDone()) + return false; + + if (wizardInfo.hasEntireRAChain()) + return false; + + wizardInfo.setCertType(Constants.PR_RA_SIGNING_CERT); + + if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + + return super.initializePanel(info); + } +} + + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRAIntroPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRAIntroPage.java new file mode 100644 index 000000000..d3d48492c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRAIntroPage.java @@ -0,0 +1,61 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; + +/** + * The panel asks if the user wants to install the RA certificate now. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallRAIntroPage extends WIInstallIntroPage { + private static final String PANELNAME = "INSTALLRAINTROWIZARD"; + private static final String RAHELPINDEX = "install-racert-installintro-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-installintro-wizard-help"; + + WIInstallRAIntroPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIInstallRAIntroPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + if (wizardInfo.isRACertLocalCA() || !wizardInfo.isRAInstalled() || + wizardInfo.isRACertInstalledDone()) + return false; + + if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + + return super.initializePanel(info); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLCertStatusPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLCertStatusPage.java new file mode 100644 index 000000000..27ca1755f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLCertStatusPage.java @@ -0,0 +1,65 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; + +/** + * The panel asks the user to paste the certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallSSLCertStatusPage extends WIInstallCertStatusPage { + private static final String PANELNAME = "INSTALLSSLCERTSTATUSWIZARD"; + private static final String HELPINDEX = "install-sslcert-status-wizard-help"; + + WIInstallSSLCertStatusPage(JDialog parent) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + } + + WIInstallSSLCertStatusPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isSSLCertLocalCA() || !wizardInfo.isSSLCertInstalledDone() || + wizardInfo.isMigrationEnable() || wizardInfo.isSSLCertChainImportDone()) + return false; + + if (wizardInfo.hasEntireSSLChain()) + return false; + + wizardInfo.setCertType(Constants.PR_SERVER_CERT); + + return super.initializePanel(info); + } +} + + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLIntroPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLIntroPage.java new file mode 100644 index 000000000..7115f96bf --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLIntroPage.java @@ -0,0 +1,58 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; + +/** + * The panel asks if the user wants to install the SSL certificate now. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInstallSSLIntroPage extends WIInstallIntroPage { + private static final String PANELNAME = "INSTALLSSLINTROWIZARD"; + private static final String HELPINDEX = "install-sslcert-installintro-wizard-help"; + + WIInstallSSLIntroPage(JDialog parent) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + } + + WIInstallSSLIntroPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + + if (wizardInfo.isSSLCertLocalCA() || wizardInfo.isMigrationEnable() || + wizardInfo.isSSLCertInstalledDone()) + return false; + + return super.initializePanel(info); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBInfoPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBInfoPage.java new file mode 100644 index 000000000..5338e820d --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBInfoPage.java @@ -0,0 +1,173 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the information of the current internal database. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInternalDBInfoPage extends WizardBasePanel implements IWizardPanel { + private JTextField mBindAsText; + private JPasswordField mPasswordText; + private JLabel mBindAsLabel, mPasswordLabel; + + private static final String PANELNAME = "INTERNALDBINFOWIZARD"; + private static final String HELPINDEX = + "install-internaldb-logon-wizard-help"; + + WIInternalDBInfoPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIInternalDBInfoPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.getInternalDBPasswd() != null) + return false; + setBorder(makeTitledBorder(PANELNAME)); + mBindAsText.setText(wizardInfo.getDBBindDN()); + return true; + } + + public boolean validatePanel() { + String passwd = mPasswordText.getText(); + if (passwd.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.setDBBindDN(mBindAsText.getText().trim()); + wizardInfo.setInternalDBPasswd(mPasswordText.getText().trim()); + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_VALIDATE_DSPASSWD; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+wizardInfo.getInternalDBPasswd(); + rawData = rawData+"&"+ConfigConstants.PR_DB_BINDDN+"="+wizardInfo.getDBBindDN(); + + startProgressStatus(); + + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + CMSAdminUtil.resetGBC(gbc); + mBindAsLabel = makeJLabel("ADMIN"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mBindAsLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mBindAsText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mBindAsText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPasswordLabel = makeJLabel("PWD"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPasswordLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPasswordText = makeJPasswordField(30); + gbc.anchor = gbc.NORTHWEST; + // gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPasswordText, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBPage.java new file mode 100644 index 000000000..936d252d8 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBPage.java @@ -0,0 +1,313 @@ +// --- 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.config.install; + +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInternalDBPage extends WizardBasePanel implements IWizardPanel { + private Color mActiveColor; + + private JCheckBox mSchema; + private JTextField mRMPortText, mRMBindAsText, mRMBaseText; + private JTextField mRMHostText,mRMDBNameAsText; + private JPasswordField mRMPasswordText; + private JLabel mRMHostLabel, mRMDBNameAsLabel; + private JLabel mRMBaseLabel, mRMBindAsLabel, mRMPasswordLabel; + + private static final String PANELNAME = "INTERNALDBWIZARD"; + private static final String HELPINDEX = + "install-internaldb-configuration-wizard-help"; + private static final String EMPTYSTR = " "; + + WIInternalDBPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIInternalDBPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mSchema)) { + if (mSchema.isSelected()) { + mRMDBNameAsText.setEnabled(true); + mRMDBNameAsText.setBackground(mActiveColor); + } else { + mRMDBNameAsText.setEnabled(false); + mRMDBNameAsText.setBackground(getBackground()); + } + } else { + super.actionPerformed(e); + } + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isDBCreateNow()) { + setBorder(makeTitledBorder(PANELNAME)); + mRMBaseText.setText("o="+wizardInfo.getDBName()+", o=netscapeCertificateServer"); + mRMBindAsText.setText(wizardInfo.getDBBindDN()); + return true; + } + + return false; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + cleanUpWizardInfo(wizardInfo); + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CREATE_INTERNALDB; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_CMS_SEED+"="+ + (new Long(WizardBasePanel.mSeed).toString()); + // remote database + rawData = rawData+"&"+ConfigConstants.PR_HOST+"=" + +mRMHostText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_LDAP_DB_NAME+"=" + +mRMDBNameAsText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_PORT+"="+mRMPortText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_BINDDN+"="+mRMBindAsText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_NAME+"="+mRMBaseText.getText(); + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+mRMPasswordText.getText(); + if (mSchema.isSelected()) { + rawData = rawData+"&"+ConfigConstants.PR_DB_SCHEMA+"="+"true"; + } else { + rawData = rawData+"&"+ConfigConstants.PR_DB_SCHEMA+"="+"false"; + } + wizardInfo.setInternalDBPasswd(mRMPasswordText.getText().trim()); + wizardInfo.setDBBindDN(mRMBindAsText.getText().trim()); + wizardInfo.setDBName(mRMBaseText.getText().trim()); + + startProgressStatus(); + //CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CREATEDB"); + + boolean ready = send(rawData, wizardInfo); + + if (ready) { + rawData = ConfigConstants.TASKID+"="+TaskId.TASK_TOKEN_INFO; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_READ; + ready = send(rawData, wizardInfo); + } + //dlg.setVisible(false); + + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc = createTextArea(mResource.getString( + "INTERNALDBWIZARD_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel instanceIDLbl = makeJLabel("REMOTEHOST"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(instanceIDLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMHostText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMHostText, gbc); + + mActiveColor = mRMHostText.getBackground(); + + CMSAdminUtil.resetGBC(gbc); + JLabel portNumber = makeJLabel("REMOTEPORT"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + add(portNumber, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMPortText = makeJTextField(10); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mRMPortText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMBaseLabel = makeJLabel("REMOTEDN"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMBaseLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMBaseText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMBaseText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMBindAsLabel = makeJLabel("REMOTEADMIN"); + //gbc.anchor = gbc.NORTHWEST; + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMBindAsLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMBindAsText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMBindAsText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMPasswordLabel = makeJLabel("REMOTEPWD"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMPasswordLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMPasswordText = makeJPasswordField(30); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMPasswordText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMDBNameAsLabel = makeJLabel("DATABASE"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMDBNameAsLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRMDBNameAsText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mRMDBNameAsText, gbc); + + JLabel dummy1 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(dummy1, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSchema = makeJCheckBox("SCHEMA", true); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mSchema, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.setDBCreated(ConfigConstants.TRUE); + wizardInfo.setDBCreateNow(ConfigConstants.FALSE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalTokenLogonPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalTokenLogonPage.java new file mode 100644 index 000000000..3bc9bd2f3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalTokenLogonPage.java @@ -0,0 +1,67 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the information of the current internal database. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIInternalTokenLogonPage extends WITokenLogonPage implements IWizardPanel { + + private static final String HELPINDEX = "install-internaltoken-logon-wizard-help"; + private static final String PANELNAME = "INTERNALTOKENLOGONWIZARD"; + + WIInternalTokenLogonPage(JDialog dialog) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = dialog; + } + + WIInternalTokenLogonPage(JDialog dialog, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = dialog; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String pwd = + (String)wizardInfo.get("TOKEN:"+Constants.PR_INTERNAL_TOKEN_NAME); + if (pwd != null) + return false; + + mTokenName = "Internal"; + mTokenText.setText(Constants.PR_INTERNAL_TOKEN_NAME); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroMigrationPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroMigrationPage.java new file mode 100644 index 000000000..616911252 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroMigrationPage.java @@ -0,0 +1,162 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Data Migration. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIIntroMigrationPage extends WizardBasePanel implements IWizardPanel { + private JRadioButton mYes; + private JRadioButton mNo; + private static final String PANELNAME = "INTROMIGRATIONWIZARD"; + private String mHelpIndex; + private static final String CAHELPINDEX = + "install-ca-migration-enable-wizard-help"; + private static final String CAKRAHELPINDEX = + "install-cakra-migration-enable-wizard-help"; + + WIIntroMigrationPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIIntroMigrationPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (!wizardInfo.isCAInstalled() || wizardInfo.isMigrationDone()) + return false; + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else + mHelpIndex = CAHELPINDEX; + setBorder(makeTitledBorder(PANELNAME)); + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + Hashtable data = new Hashtable(); + + boolean ready = false; + if (mYes.isSelected()) { + wizardInfo.setEnableMigration(ConfigConstants.TRUE); + data.put(ConfigConstants.TASKID, TaskId.TASK_TOKEN_INFO); + data.put(ConfigConstants.OPTYPE, OpDef.OP_READ); + } else { + wizardInfo.setEnableMigration(ConfigConstants.FALSE); + // do the data migration + data.put(ConfigConstants.TASKID, TaskId.TASK_MIGRATION); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + data.put(ConfigConstants.PR_ENABLE_MIGRATION, + ConfigConstants.FALSE); + } + + startProgressStatus(); + + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea label = createTextArea(mResource.getString( + PANELNAME+"_LABEL_DESC_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(label, gbc); + + mYes = makeJRadioButton("YES", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mYes, gbc); + + mNo = makeJRadioButton("NO", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(mNo, gbc); + + ButtonGroup group = new ButtonGroup(); + group.add(mYes); + group.add(mNo); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroPage.java new file mode 100644 index 000000000..208a92cb8 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroPage.java @@ -0,0 +1,217 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIIntroPage extends WizardBasePanel implements IWizardPanel { + private JRadioButton mDbButton; + private JRadioButton mNetworkButton; + private JRadioButton mAdminButton; + private JRadioButton mSubsystemButton; + private JRadioButton mMigrationButton; + private JTextArea mLabel; + private static final String PANELNAME = "INTROINSTALLWIZARD"; + private static final String HELPINDEX = + "install-general-intro-wizard-help"; + + WIIntroPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIIntroPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + setBorder(makeTitledBorder(PANELNAME)); + mAdminFrame = wizardInfo.getAdminFrame(); + mLabel.setVisible(false); + mDbButton.setVisible(false); + mNetworkButton.setVisible(false); + mAdminButton.setVisible(false); + mSubsystemButton.setVisible(false); + mMigrationButton.setVisible(false); + String stages = wizardInfo.getStages(); + + if (stages != null && !stages.equals("")) { + StringTokenizer tokenizer = new StringTokenizer(stages, ":"); + mLabel.setVisible(true); + while (tokenizer.hasMoreTokens()) { + String str = (String)tokenizer.nextToken(); + if (str.equals(ConfigConstants.STAGE_INTERNAL_DB)) { + mDbButton.setVisible(true); + } else if (str.equals(ConfigConstants.STAGE_SETUP_PORTS)) { + mNetworkButton.setVisible(true); + } else if (str.equals(ConfigConstants.STAGE_SETUP_ADMINISTRATOR)) { + mAdminButton.setVisible(true); + } + } + } + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + cleanUpWizardInfo(wizardInfo); + + startProgressStatus(); + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_GET_DEFAULT_INFO; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+ OpDef.OP_READ; + boolean ready = send(rawData, wizardInfo); + if (ready) { + rawData = ConfigConstants.TASKID+"="+TaskId.TASK_TOKEN_INFO; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_READ; + rawData = rawData+"&"+ConfigConstants.PR_CMS_SEED+"="+ + (new Long(WizardBasePanel.mSeed).toString()); + + ready = send(rawData, wizardInfo); + } + + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str == null) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea(mResource.getString( + "INTROINSTALLWIZARD_TEXT_DESC_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mLabel = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "INTROINSTALLWIZARD_TEXT_HEADING_LABEL"), 80), 2, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mLabel, gbc); + + mDbButton = makeJRadioButton("CREATEDB"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mDbButton, gbc); + + mNetworkButton = makeJRadioButton("NETWORK"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mNetworkButton, gbc); + + mAdminButton = makeJRadioButton("ADMIN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mAdminButton, gbc); + + mSubsystemButton = makeJRadioButton("SUBSYSTEMS"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSubsystemButton, gbc); + + mMigrationButton = makeJRadioButton("MIGRATION"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mMigrationButton, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroSingleSignonPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroSingleSignonPage.java new file mode 100644 index 000000000..659dd6969 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroSingleSignonPage.java @@ -0,0 +1,162 @@ +// --- 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.config.install; + +import java.io.*; +import java.net.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.comm.*; +import com.netscape.management.client.util.*; + +/** + * Setup Single Signon for the installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIIntroSingleSignonPage extends WizardBasePanel implements IWizardPanel { + private JRadioButton mYes; + private JRadioButton mNo; + private static final String HELPINDEX = + "install-single-signon-enable-wizard-help"; + private static final String PANELNAME = "INSTALLINTROSINGLESIGNON"; + + WIIntroSingleSignonPage() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + setBorder(makeTitledBorder(PANELNAME)); + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + if (mNo.isSelected()) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + Hashtable data = new Hashtable(); + ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(wizardInfo); + data.put(ConfigConstants.TASKID, TaskId.TASK_MISCELLANEOUS); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + data.put(ConfigConstants.PR_CERT_INSTANCE_NAME, + consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME)); + data.put(ConfigConstants.PR_ADMIN_PASSWD, + (String)consoleInfo.get(ConfigConstants.PR_ADMIN_PASSWD)); + + boolean ready = configCertCgi.configCert(data); + return ready; + } + + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + +/* + JTextArea heading = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL"), 80), 1, 80); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(heading, gbc); +*/ + JLabel heading = makeJLabel("HEADING"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(heading, gbc); + + mNo = makeJRadioButton("NO", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mNo, gbc); + + mYes = makeJRadioButton("YES", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mYes, gbc); + + JLabel dummy = new JLabel(""); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(dummy, gbc); + + ButtonGroup buttonGrp = new ButtonGroup(); + buttonGrp.add(mYes); + buttonGrp.add(mNo); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mNo.isSelected()) + wizardInfo.put(ConfigConstants.PR_SINGLE_SIGNON, ConfigConstants.FALSE); + else + wizardInfo.put(ConfigConstants.PR_SINGLE_SIGNON, ConfigConstants.TRUE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertDNPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertDNPage.java new file mode 100644 index 000000000..2dca713b5 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertDNPage.java @@ -0,0 +1,105 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; + +/** + * Subject DN page for KRA transport certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRACertDNPage extends WICertDNPage { + private static final String PANELNAME = "INSTALLKRACERTDNWIZARD"; + private static final String CAKRALOCALHELPINDEX = "install-cakra-kracertlocal-subjectdn-wizard-help"; + private static final String CAKRAREMOTEHELPINDEX = "install-cakra-kracertsub-subjectdn-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakra-kracertsub-subjectdn-wizard-help"; + private static final String KRAHELPINDEX = "install-kracertsub-subjectdn-wizard-help"; + + WIKRACertDNPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIKRACertDNPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (!wizardInfo.isKRAInstalled() || wizardInfo.isKRALocalCertDone() || + wizardInfo.isKRACertRequestDone() || wizardInfo.isKRACertInstalledDone()) + return false; +// dnDesc.setText(KRA_DN); + String str = wizardInfo.getKRASubjectName(); + String OComp = null; + String CComp = null; + if (wizardInfo.isCAInstalled()) { + // get O component + OComp = wizardInfo.getCAOComp(); + CComp = wizardInfo.getCACComp(); + } + + if (str == null || str.equals("")) { + if (OComp != null && !OComp.equals("")) { + if (CComp == null || CComp.equals("")) + str = KRA_CN+", O="+OComp; + else + str = KRA_CN+", O="+OComp+", C="+CComp; + } else { + if (CComp == null || CComp.equals("")) + str = KRA_CN; + else + str = KRA_CN+", C="+CComp; + } + } + wizardInfo.setKRASubjectName(str); + populateDN(str); + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + if (wizardInfo.isKRACertLocalCA()) + mHelpIndex = CAKRALOCALHELPINDEX; + else + mHelpIndex = CAKRAREMOTEHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (super.concludePanel(info)) { + wizardInfo.setKRASubjectName(mStr); + return true; + } + + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertExtensionPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertExtensionPage.java new file mode 100644 index 000000000..2b1f0dc99 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertExtensionPage.java @@ -0,0 +1,75 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.border.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Certificate Extension page for KRA transport certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRACertExtensionPage extends WICertExtensionPage { + private static final String PANELNAME = "INSTALLKRACERTEXTENSION1WIZARD"; + private static final String KRAHELPINDEX = "install-kracert-extension-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakra-kracert-extension-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-extension-wizard-help"; + + WIKRACertExtensionPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIKRACertExtensionPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (!wizardInfo.isKRAInstalled() || + wizardInfo.isKRALocalCertDone() || wizardInfo.isKRACertRequestDone() || + wizardInfo.isKRACertInstalledDone()) + return false; + + if (!mModified) + mAKICheckBox.setSelected(true); + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + return super.initializePanel(info); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertSubmitPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertSubmitPage.java new file mode 100644 index 000000000..992bd7f14 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertSubmitPage.java @@ -0,0 +1,80 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * KRA Certificate Submission. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRACertSubmitPage extends WICertSubmitPage implements IWizardPanel { + private static final String PANELNAME = "INSTALLKRACERTWIZARD"; + private static final String KRAHELPINDEX = "install-kratype-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakratype-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakratype-wizard-help"; + + WIKRACertSubmitPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_KRA_TRANSPORT_CERT); + if (!wizardInfo.isKRAInstalled() || + wizardInfo.isKRACertRequestDone() || wizardInfo.isKRACertInstalledDone() || + !wizardInfo.isCAInstalled()) { + wizardInfo.setKRACertLocalCA(Constants.FALSE); + return false; + } + + if (wizardInfo.isKRALocalCertDone()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = KRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + + return super.initializePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mSelfButton.isSelected()) + wizardInfo.setKRACertLocalCA(Constants.TRUE); + else + wizardInfo.setKRACertLocalCA(Constants.FALSE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertValidityPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertValidityPage.java new file mode 100644 index 000000000..feaa29983 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertValidityPage.java @@ -0,0 +1,77 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Validity page for KRA transport certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRACertValidityPage extends WICertValidityPage { + private static final String PANELNAME = "INSTALLKRACERTVALIDWIZARD"; + private static final String KRAHELPINDEX = "install-kracert-validity-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-validity-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakra-kracert-validity-wizard-help"; + + WIKRACertValidityPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIKRACertValidityPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (!wizardInfo.isKRAInstalled() || wizardInfo.isKRALocalCertDone() || + wizardInfo.isKRACertRequestDone() || wizardInfo.isKRACertInstalledDone()) + return false; + if (super.initializePanel(info)) { + if (!wizardInfo.isKRACertLocalCA()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + return true; + } + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAKeyPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAKeyPage.java new file mode 100644 index 000000000..00b12d43c --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAKeyPage.java @@ -0,0 +1,100 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Setup key information for KRA transport certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRAKeyPage extends WIKeyPage implements IWizardPanel { + private static final String PANELNAME = "INSTALLKRAKEYWIZARD"; + private static final String KRAHELPINDEX = + "install-krakeysub-configuration-wizard-help"; + private static final String CAKRALOCALHELPINDEX = + "install-cakra-krakeylocal-configuration-wizard-help"; + private static final String CAKRAREMOTEHELPINDEX = + "install-cakra-krakeysub-configuration-wizard-help"; + private static final String RAKRAHELPINDEX = + "install-rakra-krakeysub-configuration-wizard-help"; + + WIKRAKeyPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIKRAKeyPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + mWizardInfo = (InstallWizardInfo)info; + if (mWizardInfo.isCloning() && mWizardInfo.isKRACloningDone()) + return false; + if (!mWizardInfo.isKRAInstalled() || mWizardInfo.isKRALocalCertDone() || + mWizardInfo.isKRACertRequestDone() || mWizardInfo.isKRACertInstalledDone()) + return false; + if (super.initializePanel(info)) { + String kraTokenName = mWizardInfo.getKRATokenName(); + if (kraTokenName == null || kraTokenName.equals("")) { + mTokenBox.setSelectedIndex(0); + } else { + if (kraTokenName.equals(Constants.PR_INTERNAL_TOKEN_NAME)) + mTokenBox.setSelectedIndex(0); + else + mTokenBox.setSelectedItem(kraTokenName); + } + } + + if (mWizardInfo.isCAInstalled() && mWizardInfo.isKRAInstalled()) { + if (mWizardInfo.isKRACertLocalCA()) + mHelpIndex = CAKRALOCALHELPINDEX; + else + mHelpIndex = CAKRAREMOTEHELPINDEX; + } else if (mWizardInfo.isRAInstalled() && mWizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + enableFields(); + mIsCAKey = false; + return true; + } + + public void getUpdateInfo(WizardInfo info) { + super.getUpdateInfo(info); + mWizardInfo.setKRATokenName(mWizardInfo.getTokenName()); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAMessageDigestPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAMessageDigestPage.java new file mode 100644 index 000000000..38941ec7b --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAMessageDigestPage.java @@ -0,0 +1,79 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Setup the message digest information for the installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRAMessageDigestPage extends WMessageDigestPage { + + private static final String PANELNAME = "INSTALLKRAMESSAGEDIGESTWIZARD"; + + WIKRAMessageDigestPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIKRAMessageDigestPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (!wizardInfo.isKRAInstalled() || !wizardInfo.isKRACertLocalCA() || + wizardInfo.isKRALocalCertDone() || wizardInfo.isKRACertRequestDone() || + wizardInfo.isKRACertInstalledDone()) + return false; + + mCAKeyType = wizardInfo.getCAKeyType(); + + return super.initializePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mDSAHashTypeBox.isVisible()) + wizardInfo.setHashType((String)mDSAHashTypeBox.getSelectedItem()); + else + wizardInfo.setHashType((String)mRSAHashTypeBox.getSelectedItem()); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRANumberPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRANumberPage.java new file mode 100644 index 000000000..000b3eb9f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRANumberPage.java @@ -0,0 +1,378 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import java.math.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the starting serial number that the CA issues + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRANumberPage extends WizardBasePanel implements IWizardPanel { + private JTextArea mDesc; + + private String mSerialNumber; + private JTextField mSerialNumberText; + private JLabel mSerialNumberLabel; + + private String mEndSerialNumber = null; + private JTextField mEndSerialNumberText; + private JLabel mEndSerialNumberLabel; + + private String mbeginRequestNumber; + private JTextField mbeginRequestNumberText; + private JLabel mbeginRequestNumberLabel; + + private String mEndRequestNumber = null; + private JTextField mEndRequestNumberText; + private JLabel mEndRequestNumberLabel; + + private static final String DEFAULT_SERIAL_NUMBER = "1"; + private static final String PANELNAME = "KRAREQUESTNUMBERWIZARD"; + private static final String HELPINDEX = + "install-ca-serialnumber-wizard-help"; + + WIKRANumberPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIKRANumberPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + String serial; + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + setBorder(makeTitledBorder(PANELNAME)); + if (//wizardInfo.isKRACertLocalCA() || !wizardInfo.isInstallCertNow() || + !wizardInfo.isKRAInstalled() || wizardInfo.isKRACertInstalledDone()|| + wizardInfo.isNumberPageDone()) + return false; + + if (wizardInfo.isCloning()) + mDesc.setText(mResource.getString(PANELNAME+"_TEXT_HEADING_LABEL") + + mResource.getString(PANELNAME+"_TEXT_MORE_LABEL")); + else + mDesc.setText(mResource.getString(PANELNAME+"_TEXT_HEADING_LABEL")); + + + if ((serial = wizardInfo.getCASerialNumber()) != null) + mSerialNumberText.setText(serial); + else + mSerialNumberText.setText(DEFAULT_SERIAL_NUMBER); + + if ((serial = wizardInfo.getRequestNumber()) != null) + mbeginRequestNumberText.setText(serial); + else + mbeginRequestNumberText.setText(DEFAULT_SERIAL_NUMBER); + + if ((serial = wizardInfo.getCAEndSerialNumber()) != null) + mEndSerialNumberText.setText(serial); + + if ((serial = wizardInfo.getEndRequestNumber()) != null) + mEndRequestNumberText.setText(serial); + return true; + } + + private String hexToDecimal(String hex, boolean isHex) + { + //String newHex = hex.substring(2); + BigInteger bi; + if(isHex) + bi = new BigInteger(hex, 16); + else + bi = new BigInteger(hex, 10); + return bi.toString(); + } + + private String DecToHex(String dec) + { + BigInteger bi; + bi = new BigInteger(dec, 10); + return bi.toString(16); + } + + private boolean validateNumber(JTextField beginNumberField, JTextField endNumberField,String beginText, String endText,boolean isSerialNumber) + { + BigInteger num = null; + BigInteger endNum = null; + String serial = null; + beginText = beginNumberField.getText().trim(); + if (beginText != null && !beginText.equals("")) { + try { + if (beginText.startsWith("0x")) { + serial = hexToDecimal(beginText.substring(2),true); + } else { + serial = beginText; + } + num = new BigInteger(serial); + if (num.compareTo(new BigInteger("0")) < 0) { + setErrorMessage("You must specify a positive value."); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("You must specify a numeric value."); + return false; + } + if(isSerialNumber) + mSerialNumber = DecToHex(serial); + else + mbeginRequestNumber = serial; + } else { + if(isSerialNumber) + mSerialNumber = ""; + else + mbeginRequestNumber = ""; + } + + endText = endNumberField.getText().trim(); + if (endText != null && !endText.equals("")) { + try { + if (endText.startsWith("0x")) { + serial = hexToDecimal(endText.substring(2),true); + } else { + serial = endText; + } + endNum = new BigInteger(serial); + if (endNum.compareTo(new BigInteger("0")) < 0) { + setErrorMessage("You must specify a positive value."); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("You must specify a numeric value."); + return false; + } + if(isSerialNumber) + mEndSerialNumber = DecToHex(serial); + else + mEndRequestNumber = serial; + } else { + if(isSerialNumber) + mEndSerialNumber = ""; + else + mEndRequestNumber = ""; + } + + if (num != null && endNum != null && num.compareTo(endNum) > 0) { + setErrorMessage("Ending number must be greater than starting number."); + return false; + } + return true; + } + + public boolean validatePanel() { + if(validateNumber(mSerialNumberText,mEndSerialNumberText,mSerialNumber,mEndSerialNumber,true)==false) + return false; + if(validateNumber(mbeginRequestNumberText,mEndRequestNumberText,mbeginRequestNumber,mEndRequestNumber,false)==false) + return false; + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mSerialNumber != null && !mSerialNumber.equals("")) + wizardInfo.setCASerialNumber(mSerialNumber); + else { + wizardInfo.setCASerialNumber(DEFAULT_SERIAL_NUMBER); + mSerialNumber = DEFAULT_SERIAL_NUMBER; + } + if (mbeginRequestNumber != null && !mbeginRequestNumber.equals("")) + wizardInfo.setRequestNumber(mbeginRequestNumber); + else { + wizardInfo.setRequestNumber(DEFAULT_SERIAL_NUMBER); + mbeginRequestNumber = DEFAULT_SERIAL_NUMBER; + } + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_SET_KRA_NUMBER; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + if (mSerialNumber != null && !mSerialNumber.equals("")) + rawData = rawData+"&"+ConfigConstants.PR_CA_SERIAL_NUMBER+"="+ + mSerialNumber; + if (mEndSerialNumber != null && !mEndSerialNumber.equals("")) + rawData = rawData+"&"+ConfigConstants.PR_CA_ENDSERIAL_NUMBER+"="+ + mEndSerialNumber; + if (mbeginRequestNumber != null && !mbeginRequestNumber.equals("")) + rawData = rawData+"&"+ConfigConstants.PR_REQUEST_NUMBER+"="+ + mbeginRequestNumber; + if (mEndRequestNumber != null && !mEndSerialNumber.equals("")) + rawData = rawData+"&"+ConfigConstants.PR_ENDREQUEST_NUMBER+"="+ + mEndRequestNumber; + if (wizardInfo.getInternalDBPasswd() != null) + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+ + wizardInfo.getInternalDBPasswd(); + rawData = rawData+"&"+ConfigConstants.PR_SERIAL_REQUEST_NUMBER+"="+ + ConfigConstants.TRUE; + + startProgressStatus(); + + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + }else { + wizardInfo.setNumberPageDone(ConfigConstants.TRUE); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + mDesc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mDesc, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSerialNumberLabel = makeJLabel("SERIALNUMBER"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mSerialNumberLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSerialNumberText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; +// gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mSerialNumberText, gbc); + + + CMSAdminUtil.resetGBC(gbc); + mEndSerialNumberLabel = makeJLabel("ENDSERIALNUMBER"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEndSerialNumberLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEndSerialNumberText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; +// gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEndSerialNumberText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mbeginRequestNumberLabel = makeJLabel("REQUESTNUMBER"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mbeginRequestNumberLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mbeginRequestNumberText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; +// gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mbeginRequestNumberText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEndRequestNumberLabel = makeJLabel("ENDREQUESTNUMBER"); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEndRequestNumberLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEndRequestNumberText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; +// gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEndRequestNumberText, gbc); + + /* + CMSAdminUtil.resetGBC(gbc); + mSerialNumberLabel = makeJLabel("PWD"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mSerialNumberLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSerialNumberText = makeJSerialNumberField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mSerialNumberText, gbc); +*/ + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRARequestResultPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRARequestResultPage.java new file mode 100644 index 000000000..1580b7101 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRARequestResultPage.java @@ -0,0 +1,58 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Display the KRA transport certificate request result + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRARequestResultPage extends WIRequestResultPage { + + WIKRARequestResultPage(JDialog parent) { + super(parent); + } + + WIKRARequestResultPage(JDialog parent, JFrame adminFrame) { + super( parent, adminFrame); + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (wizardInfo.isKRACertLocalCA() || !wizardInfo.isKRAInstalled() || + wizardInfo.isKRALocalCertDone() || + (wizardInfo.isKRACertRequestSucc() && wizardInfo.isKRAReqResultDisplayed()) || + wizardInfo.isKRACertInstalledDone()) + return false; + + wizardInfo.setKRAReqResultDisplayed(Constants.TRUE); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme1Page.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme1Page.java new file mode 100644 index 000000000..d6171e651 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme1Page.java @@ -0,0 +1,188 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * KRA Key recovery for installation wizard: specify number of required and + * available agents + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRAScheme1Page extends WizardBasePanel implements IWizardPanel { + private JTextField mRequiredText; + private JTextField mAvailText; + private String mHelpIndex; + private static final String PANELNAME = "KRASCHEME1WIZARD"; + private static final String KRAHELPINDEX = + "install-kra-mnscheme-wizard-help"; + private static final String CAKRAHELPINDEX = + "install-cakra-mnscheme-wizard-help"; + private static final String RAKRAHELPINDEX = + "install-rakra-mnscheme-wizard-help"; + private int mRequired, mAvail; + + WIKRAScheme1Page(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIKRAScheme1Page(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (!wizardInfo.doKeySplitting()) + return false; + if (wizardInfo.isCloning()) + return false; + if (!wizardInfo.isKRAInstalled() || wizardInfo.isKRANMSchemeDone()) + return false; + setBorder(makeTitledBorder(PANELNAME)); + mRequiredText.setText(wizardInfo.getRequiredAgents()); + mAvailText.setText(wizardInfo.getTotalAgents()); + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + return true; + } + + public boolean validatePanel() { + String str = mRequiredText.getText().trim(); + if (str.equals("")) { + setErrorMessage("CANNOTBEBLANK"); + return false; + } + + try { + mRequired = Integer.parseInt(str); + str = mAvailText.getText().trim(); + if (str.equals("")) { + setErrorMessage("CANNOTBEBLANK"); + return false; + } + mAvail = Integer.parseInt(str); + } catch (NumberFormatException e) { + setErrorMessage("NOTINTEGER"); + return false; + } + + if (mRequired <= 0 || mAvail <= 0) { + setErrorMessage("NONZERO"); + return false; + } + + if (mRequired > mAvail) { + setErrorMessage("LARGER"); + return false; + } + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JLabel requiredLbl = makeJLabel("REQUIRED"); + gbc.anchor = gbc.NORTHEAST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(requiredLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mRequiredText = makeJTextField(5); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mRequiredText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea dummy = createTextArea(" ", 1, 15); + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(dummy, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel availLbl = makeJLabel("AVAILABLE"); + gbc.anchor = gbc.NORTHEAST; + gbc.insets = new Insets(0,COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.weighty = 1.0; + gbc.fill = gbc.NONE; + add(availLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mAvailText = makeJTextField(5); + gbc.insets = new Insets(0,COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.anchor = gbc.NORTHWEST; + gbc.weighty = 1.0; + gbc.fill = gbc.NONE; + add(mAvailText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea dummy1 = createTextArea(" ", 1, 15); + gbc.weighty = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(dummy1, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.setRequiredAgents(mRequiredText.getText().trim()); + wizardInfo.setTotalAgents(mAvailText.getText()); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme2Page.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme2Page.java new file mode 100644 index 000000000..f8c9c9f8e --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme2Page.java @@ -0,0 +1,309 @@ +// --- 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.config.install; + +import java.util.*; +import java.awt.*; +import javax.swing.*; +import javax.swing.text.*; +import javax.swing.table.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.console.*; + +/** + * KRA Key recovery for installation wizard: specify the uid and password + * for all the available agents + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRAScheme2Page extends WizardBasePanel implements IWizardPanel { + private JTable mTable; + private NewAgentModel mDataModel; + private String mHelpIndex; + private static final String PANELNAME = "KRASCHEME2WIZARD"; + private static final String KRAHELPINDEX = + "install-kra-scheme-usrpwds-wizard-help"; + private static final String CAKRAHELPINDEX = + "install-cakra-scheme-usrpwds-wizard-help"; + private static final String RAKRAHELPINDEX = + "install-rakra-scheme-usrpwds-wizard-help"; + + WIKRAScheme2Page(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIKRAScheme2Page(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (!wizardInfo.doKeySplitting()) + return false; + if (wizardInfo.isCloning()) + return false; + if (!wizardInfo.isKRAInstalled() || wizardInfo.isKRANMSchemeDone()) + return false; + + String val = wizardInfo.getTotalAgents(); + int M = Integer.parseInt(val); + mDataModel.removeAllRows(); + + Vector[] data = new Vector[M]; + for (int i=0; i-1)&&(row>-1)) { + String str = ((JTextComponent)component).getText(); + mTable.setValueAt(str, row, col); + } + } + + if(!checkBlank()) { + setErrorMessage("CANNOTBEBLANK"); + return false; + } + + if(!checkConfirm()) { + setErrorMessage("PASSWORDERROR"); + return false; + } + + if (!checkDuplicate()) { + setErrorMessage("DUPLICATEERROR"); + return false; + } + + return true; + } + + private boolean checkBlank() { + for (int i=0; i= 1) + return true; + return false; + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAStorageKeyPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAStorageKeyPage.java new file mode 100644 index 000000000..6cce19d95 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAStorageKeyPage.java @@ -0,0 +1,356 @@ +// --- 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.config.install; + +import java.util.*; +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.console.*; +import javax.swing.event.*; +import java.awt.event.*; + +/** + * Install KRA storage key. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRAStorageKeyPage extends WizardBasePanel implements IWizardPanel { + private String mHelpIndex; + private static final String PANELNAME = "INSTALLKRASTORAGEKEYWIZARD"; + private static final String KRAHELPINDEX = + "install-kra-storagekey-wizard-help"; + private static final String CAKRAHELPINDEX = + "install-cakra-storagekey-wizard-help"; + private static final String RAKRAHELPINDEX = + "install-rakra-storagekey-wizard-help"; + + protected JComboBox mKeyTypeBox, mKeyLengthBox, mDSAKeyLengthBox, mTokenBox; + protected JPasswordField mPassword, mPasswordAgain, mSOPPassword; + protected JLabel keyTypeLbl, keyLengthCustomText, keyLengthLbl, unitLbl, + keyLengthCustomLbl, unit1Lbl, mTokenLbl; + protected JLabel mPasswdLbl, mPasswdAgainLbl, mSOPLbl; + protected JCheckBox mHardwareSplit; + protected String[] mTokenInitialized; + protected String[] mTokenLogin; + private Color mActiveColor; + + WIKRAStorageKeyPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIKRAStorageKeyPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (!wizardInfo.isKRAInstalled() || wizardInfo.isKRANMSchemeDone()) + return false; + setBorder(makeTitledBorder(PANELNAME)); + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + wizardInfo = (InstallWizardInfo)info; + setBorder(makeTitledBorder(mPanelName)); + if (mTokenBox.getItemCount() > 0) { + mTokenBox.removeAllItems(); + } + + String tokenList = wizardInfo.getTokensList(); + StringTokenizer tokenizer = new StringTokenizer(tokenList, ":"); + int count = tokenizer.countTokens(); + while (tokenizer.hasMoreTokens()) { + mTokenBox.addItem((String)tokenizer.nextToken()); + } + + String initializedList = wizardInfo.getTokensInit(); + tokenizer = new StringTokenizer(initializedList, ":"); + int i=0; + mTokenInitialized = new String[count]; + while (tokenizer.hasMoreElements()) { + mTokenInitialized[i] = (String)tokenizer.nextToken(); + i++; + } + + String loginList = wizardInfo.getTokensLogin(); + tokenizer = new StringTokenizer(loginList, ":"); + i=0; + mTokenLogin = new String[count]; + while (tokenizer.hasMoreElements()) { + mTokenLogin[i] = (String)tokenizer.nextToken(); + i++; + } + + //mTokenBox.setSelectedIndex(0); + mTokenBox.addItemListener(this); + + return true; + } + + public boolean validatePanel() { + return true; + } + + public void actionPerformed(ActionEvent e) { + int index = mTokenBox.getSelectedIndex(); + if (index > 0) { + mPassword.setEnabled(true); + mPassword.setBackground(mActiveColor); + } else { + // Internal Token + mPassword.setEnabled(false); + mPassword.setBackground(getBackground()); + } + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(wizardInfo); + Hashtable data = new Hashtable(); + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_STORAGE_KEY; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + wizardInfo.setKeyLength((String)mKeyLengthBox.getSelectedItem()); + rawData = rawData+"&"+ConfigConstants.PR_KEY_LEN+"="+wizardInfo.getKeyLength(); + rawData = rawData+"&"+ConfigConstants.PR_TOKEN_NAME+"="+(String)mTokenBox.getSelectedItem(); + rawData = rawData+"&"+ConfigConstants.PR_TOKEN_PASSWD+"="+ + (String)mPassword.getText().trim(); + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JPanel panel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); + + JPanel panel2 = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + panel2.setLayout(gb3); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(panel, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(panel2, gbc); + + JTextArea selectTokenLbl = createTextArea(mResource.getString( + mPanelName+"_LABEL_SELECTTOKEN_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE,0); + panel.add(selectTokenLbl, gbc); + + JLabel tokenLbl = makeJLabel("TOKEN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.CENTER; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + panel.add(tokenLbl, gbc); + + mTokenBox = new JComboBox(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + //gbc.weightx = 1.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel.add(mTokenBox, gbc); + mTokenBox.addActionListener(this); + + JTextArea dummy2 = createTextArea(" ", 1, 5); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + panel.add(dummy2, gbc); + + mTokenLbl = new JLabel(""); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + panel2.add(mTokenLbl, gbc); + + mPasswdLbl = makeJLabel("PASSWD"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + panel2.add(mPasswdLbl, gbc); + + mPassword = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel2.add(mPassword, gbc); + mActiveColor = mPassword.getBackground(); + +/** + mPasswdAgainLbl = makeJLabel("PASSWDAGAIN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + panel2.add(mPasswdAgainLbl, gbc); + + mPasswordAgain = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel2.add(mPasswordAgain, gbc); + + mSOPLbl = makeJLabel("SOP"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + panel2.add(mSOPLbl, gbc); + + mSOPPassword = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, + COMPONENT_SPACE); + panel2.add(mSOPPassword, gbc); + **/ + + CMSAdminUtil.resetGBC(gbc); + JTextArea label = createTextArea(mResource.getString( + PANELNAME+"_LABEL_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.weightx = 1.0; + add(label, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel keyLengthLbl = makeJLabel("KEYLENGTH"); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(keyLengthLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mKeyLengthBox = makeJComboBox("KEYLENGTH"); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mKeyLengthBox, gbc); + +/** + CMSAdminUtil.resetGBC(gbc); + mHardwareSplit = makeJCheckBox("HARDWARE_SPLIT"); + gbc.anchor = gbc.NORTHWEST; + //gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE - COMPONENT_SPACE,0,COMPONENT_SPACE); + add(mHardwareSplit, gbc); + mHardwareSplit.setEnabled(false); + mHardwareSplit.setSelected(false); + **/ + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy = new JLabel(" "); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKRATokenLogonPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRATokenLogonPage.java new file mode 100644 index 000000000..82857a154 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKRATokenLogonPage.java @@ -0,0 +1,74 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the information of the current internal database. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKRATokenLogonPage extends WITokenLogonPage implements IWizardPanel { + + private static final String HELPINDEX = "install-kratoken-logon-wizard-help"; + private static final String PANELNAME = "KRATOKENLOGONWIZARD"; + + WIKRATokenLogonPage(JDialog dialog) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = dialog; + } + + WIKRATokenLogonPage(JDialog dialog, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = dialog; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String tokenname = wizardInfo.getKRATokenName(); + String pwd = (String)wizardInfo.get("TOKEN:"+tokenname); + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) { + if (pwd != null && !pwd.equals("")) + return false; + } + if (wizardInfo.isKRACertLocalCA() || !wizardInfo.isInstallCertNow() || + !wizardInfo.isKRAInstalled() || wizardInfo.isKRACertInstalledDone()) + return false; + if (pwd != null) + return false; + + mTokenText.setText(tokenname); + mTokenName = tokenname; + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIKeyPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIKeyPage.java new file mode 100644 index 000000000..d67d0e339 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIKeyPage.java @@ -0,0 +1,641 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Setup key information for certificate setup wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { + protected Color mActiveColor; + protected JComboBox mKeyTypeBox, mKeyLengthBox, mDSAKeyLengthBox, mTokenBox; + protected JTextField mKeyLengthText; + protected JPasswordField mPassword, mPasswordAgain, mSOPPassword; + protected JLabel keyTypeLbl, keyLengthCustomText, keyLengthLbl, unitLbl, + keyLengthCustomLbl, unit1Lbl, mTokenLbl; + protected JTextArea keyHeading; + protected JLabel mPasswdLbl, mPasswdAgainLbl, mSOPLbl; + private String mPanelName; + protected String[] mTokenInitialized; + protected String[] mTokenLogin; + protected InstallWizardInfo mWizardInfo; + protected String mHelpIndex; + protected boolean mIsCAKey; + + WIKeyPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + mWizardInfo = (InstallWizardInfo)info; + setBorder(makeTitledBorder(mPanelName)); + if (mTokenBox.getItemCount() > 0) { + mTokenBox.removeAllItems(); + } + + String tokenList = mWizardInfo.getTokensList(); + StringTokenizer tokenizer = new StringTokenizer(tokenList, ":"); + int count = tokenizer.countTokens(); + while (tokenizer.hasMoreTokens()) { + mTokenBox.addItem((String)tokenizer.nextToken()); + } + + String initializedList = mWizardInfo.getTokensInit(); + tokenizer = new StringTokenizer(initializedList, ":"); + int i=0; + mTokenInitialized = new String[count]; + while (tokenizer.hasMoreElements()) { + mTokenInitialized[i] = (String)tokenizer.nextToken(); + i++; + } + + String loginList = mWizardInfo.getTokensLogin(); + tokenizer = new StringTokenizer(loginList, ":"); + i=0; + mTokenLogin = new String[count]; + while (tokenizer.hasMoreElements()) { + mTokenLogin[i] = (String)tokenizer.nextToken(); + i++; + } + + //mTokenBox.setSelectedIndex(0); + mTokenBox.addItemListener(this); + + String type = (String)mKeyTypeBox.getSelectedItem(); + if (type.equals("RSA")) { + mDSAKeyLengthBox.setVisible(false); + mKeyLengthBox.setVisible(true); + } else { + mKeyLengthBox.setVisible(false); + mDSAKeyLengthBox.setVisible(true); + } + + enableKeyLengthFields(); + return true; + } + + public boolean validatePanel() { + int index = mTokenBox.getSelectedIndex(); + + if (mKeyLengthText.isEnabled()) { + String str = mKeyLengthText.getText().trim(); + if (str.equals("")) { + setErrorMessage("BLANKLEN"); + return false; + } else { + try { + int num = Integer.parseInt(str); + if (num <= 0) { + setErrorMessage("INVALIDKEYLEN"); + return false; + }else if (mKeyTypeBox.isVisible()) { + String type = (String)mKeyTypeBox.getSelectedItem(); + if (type.equals("RSA")) { + float fraction = (float)num / (float)8.0; + int wholeNumber = (int)fraction; + if((fraction - wholeNumber)!=0) { + setErrorMessage("RSAINVALID"); + return false; + } + }else { + float fraction = (float)num / (float)64.0; + int wholeNumber = (int)fraction; + if(num < 512 || num > 1024 || (fraction - wholeNumber)!=0){ + setErrorMessage("DSAINVALID"); + return false; + } + } + } + } catch (NumberFormatException e) { + setErrorMessage("NONINTEGER"); + return false; + } + } + } + + if (index > 0) + return validateHardwareToken(index); + else + return validateInternalToken(index); + } + + private boolean validateHardwareToken(int index) { + String passwd = mPassword.getText(); + String passwdAgain = mPasswordAgain.getText(); + String sopPasswd = mSOPPassword.getText(); + if (mTokenLogin[index].equals(ConfigConstants.TRUE)) { + return true; + } + + if (mTokenInitialized[index].equals(ConfigConstants.TRUE)) { + if (passwd.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + return true; + } + + if (passwd.equals("") || passwdAgain.equals("") || sopPasswd.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + if (!passwd.equals(passwdAgain)) { + setErrorMessage("NOTSAMEPASSWD"); + return false; + } + return true; + } + + private boolean validateInternalToken(int index) { + String passwd = mPassword.getText(); + String passwdAgain = mPasswordAgain.getText(); + if (mTokenLogin[index].equals(ConfigConstants.TRUE)) { + return true; + } + + if (mTokenInitialized[index].equals(ConfigConstants.TRUE)) { + if (passwd.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + return true; + } + + if (passwd.equals("") || passwdAgain.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + if (!passwd.equals(passwdAgain)) { + setErrorMessage("NOTSAMEPASSWD"); + return false; + } + return true; + } + + public boolean concludePanel(WizardInfo info) { + mWizardInfo = (InstallWizardInfo)info; + + String customLen = ""; + if (mKeyLengthText.isEnabled()) + customLen = mKeyLengthText.getText(); + + if (customLen != null && (!customLen.trim().equals(""))) { + mWizardInfo.put(ConfigConstants.PR_KEY_LEN, customLen); + } else { + if (mKeyLengthBox.isVisible()) { + mWizardInfo.put(ConfigConstants.PR_KEY_LEN, + mKeyLengthBox.getSelectedItem()); + } else if (mDSAKeyLengthBox.isVisible()) { + mWizardInfo.put(ConfigConstants.PR_KEY_LEN, + mDSAKeyLengthBox.getSelectedItem()); + } + } + + if (mIsCAKey) { + mWizardInfo.put(ConfigConstants.PR_CA_KEYTYPE, mKeyTypeBox.getSelectedItem()); + mWizardInfo.put(ConfigConstants.PR_CA_KEYTYPE, mKeyTypeBox.getSelectedItem()); + } + + mWizardInfo.put(ConfigConstants.PR_KEY_TYPE, mKeyTypeBox.getSelectedItem()); + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_INIT_TOKEN; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_TOKEN_NAME+"="+(String)mTokenBox.getSelectedItem(); + rawData = rawData+"&"+ConfigConstants.PR_TOKEN_PASSWD+"="+mPassword.getText().trim(); + String sop = mSOPPassword.getText().trim(); + if (sop != null) { + rawData = rawData+"&"+ConfigConstants.PR_TOKEN_SOP+"="+sop; + } + rawData = rawData+"&"+ConfigConstants.PR_KEY_LEN+"="+mWizardInfo.getKeyLength(); + rawData = rawData+"&"+ConfigConstants.PR_KEY_TYPE+"="+mWizardInfo.getKeyType(); + rawData = rawData+"&"+ConfigConstants.PR_CERTIFICATE_TYPE+"="+mWizardInfo.getCertType(); + + startProgressStatus(); +// CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "INITTOKEN"); + + boolean ready = send(rawData, mWizardInfo); + + if (ready) { + rawData = rawData+"&"+ConfigConstants.TASKID+"="+TaskId.TASK_TOKEN_INFO; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_READ; + ready = send(rawData, mWizardInfo); + } + + if (ready) { + rawData = rawData+"&"+ConfigConstants.TASKID+"="+TaskId.TASK_CHECK_KEYLENGTH; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + ready = send(rawData, mWizardInfo); + } + + //dlg.setVisible(false); + + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JPanel panel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); + + JPanel panel2 = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + panel2.setLayout(gb3); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(panel, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(panel2, gbc); + + JTextArea selectTokenLbl = createTextArea(mResource.getString( + mPanelName+"_LABEL_SELECTTOKEN_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE,0); + panel.add(selectTokenLbl, gbc); + + JLabel tokenLbl = makeJLabel("TOKEN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.CENTER; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + panel.add(tokenLbl, gbc); + + mTokenBox = new JComboBox(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + //gbc.weightx = 1.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel.add(mTokenBox, gbc); + + JTextArea dummy2 = createTextArea(" ", 1, 5); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + panel.add(dummy2, gbc); + + mTokenLbl = new JLabel(""); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + panel2.add(mTokenLbl, gbc); + + mPasswdLbl = makeJLabel("PASSWD"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + panel2.add(mPasswdLbl, gbc); + + mPassword = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel2.add(mPassword, gbc); + + mPasswdAgainLbl = makeJLabel("PASSWDAGAIN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + panel2.add(mPasswdAgainLbl, gbc); + + mPasswordAgain = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel2.add(mPasswordAgain, gbc); + + mSOPLbl = makeJLabel("SOP"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + panel2.add(mSOPLbl, gbc); + + mSOPPassword = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel2.add(mSOPPassword, gbc); + + keyHeading = createTextArea(mResource.getString( + mPanelName+"_LABEL_KEY_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(keyHeading, gbc); + + keyTypeLbl = makeJLabel("KEYTYPE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(keyTypeLbl, gbc); + + mKeyTypeBox = makeJComboBox("KEYTYPE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mKeyTypeBox, gbc); + + keyLengthLbl = makeJLabel("KEYLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + add(keyLengthLbl, gbc); + + mDSAKeyLengthBox = makeJComboBox("DSAKEYLENGTH"); + mDSAKeyLengthBox.setVisible(false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + add(mDSAKeyLengthBox, gbc); + + mKeyLengthBox = makeJComboBox("KEYLENGTH"); + mKeyLengthBox.setVisible(true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + add(mKeyLengthBox, gbc); + + unitLbl = makeJLabel("UNITS"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.CENTER; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 0,COMPONENT_SPACE, COMPONENT_SPACE); + add(unitLbl, gbc); + + JPanel panel1 = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + panel1.setLayout(gb2); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 0, 0, 0); + add(panel1, gbc); + + keyLengthCustomText = makeJLabel("CUSTOMKEY"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel1.add(keyLengthCustomText, gbc); + +/* + keyLengthCustomLbl = makeJLabel("KEYLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.CENTER; + gbc.fill = gbc.NONE; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE,0,COMPONENT_SPACE); + add(keyLengthCustomLbl, gbc); +*/ + + mKeyLengthText = makeJTextField(7); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE, 0); + panel1.add(mKeyLengthText, gbc); + mActiveColor = mKeyLengthText.getBackground(); + + unit1Lbl = makeJLabel("UNITS"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE); + panel1.add(unit1Lbl, gbc); + + JLabel dummy1 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy1, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + mWizardInfo = (InstallWizardInfo)info; + String name = (String)mTokenBox.getSelectedItem(); + if (name.equalsIgnoreCase(Constants.PR_INTERNAL_TOKEN)) + name = Constants.PR_INTERNAL_TOKEN_NAME; + mWizardInfo.put(ConfigConstants.PR_TOKEN_NAME, name); + if (mPassword.isEditable()) { + // this is used for single signon. The key is the token name with + // the prefix "TOKEN:" and the value is the token password. + mWizardInfo.put("TOKEN:"+name, mPassword.getText().trim()); + } + + mTokenBox.removeItemListener(this); + } + + public void actionPerformed(ActionEvent e) { + } + + public void itemStateChanged(ItemEvent e){ + //super.itemStateChanged(e); + if (e.getSource().equals(mTokenBox)) { + JComboBox c = (JComboBox)(e.getSource()); + if (c.getItemCount() > 0) + enableFields(); + } else if (e.getSource().equals(mKeyLengthBox) || + e.getSource().equals(mDSAKeyLengthBox)) { + enableKeyLengthFields(); + } else if (e.getSource().equals(mKeyTypeBox)) { + String type = (String)mKeyTypeBox.getSelectedItem(); + if (type.equals("RSA")) { + mDSAKeyLengthBox.setVisible(false); + mKeyLengthBox.setVisible(true); + } else { + mDSAKeyLengthBox.setVisible(true); + mKeyLengthBox.setVisible(false); + } + enableKeyLengthFields(); + CMSAdminUtil.repaintComp(this); + } + } + + protected void enableKeyLengthFields() { + String value = ""; + if (mKeyLengthBox.isVisible()) + value = (String)mKeyLengthBox.getSelectedItem(); + else + value = (String)mDSAKeyLengthBox.getSelectedItem(); + + if (value.equals("Custom")) { + enableFields(keyLengthCustomText, mKeyLengthText, true, mActiveColor); + enableFields(unit1Lbl, null, true, mActiveColor); + } else { + enableFields(keyLengthCustomText, mKeyLengthText, false, + getBackground()); + enableFields(unit1Lbl, null, false, getBackground()); + } + } + + protected void enableFields(JComponent comp1, JTextComponent comp2, boolean enable, + Color color) { + if (comp1 != null) { + comp1.setEnabled(enable); + CMSAdminUtil.repaintComp(comp1); + } + if (comp2 != null) { + comp2.setEnabled(enable); + comp2.setBackground(color); + comp2.setEditable(enable); + CMSAdminUtil.repaintComp(comp2); + } + } + + + protected void enableFields() { + int index = mTokenBox.getSelectedIndex(); + + if (mTokenLogin[index].equals(ConfigConstants.TRUE)) { + mTokenLbl.setText(""); + enableFields(mTokenLbl, null, false, null); + enableFields(mSOPLbl, mSOPPassword, false, getBackground()); + enableFields(mPasswdLbl, mPassword, false, getBackground()); + enableFields(mPasswdAgainLbl, mPasswordAgain, false, getBackground()); + } else { + if (mTokenInitialized[index].equals(ConfigConstants.TRUE)) { + String str = mResource.getString(mPanelName+"_LABEL_LOGIN_LABEL"); + mTokenLbl.setText(str); + enableFields(mTokenLbl, null, true, null); + enableFields(mPasswdAgainLbl, mPasswordAgain, false, getBackground()); + enableFields(mPasswdLbl, mPassword, true, mActiveColor); + enableFields(mSOPLbl, mSOPPassword, false, getBackground()); +/* + if (index == 0) { + enableFields(mSOPLbl, mSOPPassword, false, getBackground()); + } else { + enableFields(mSOPLbl, mSOPPassword, true, mActiveColor); + } +*/ + } else { + String str = mResource.getString(mPanelName+"_LABEL_INITIALIZE_LABEL"); + mTokenLbl.setText(str); + enableFields(mTokenLbl, null, true, null); + enableFields(mTokenLbl, null, true, null); + enableFields(mPasswdAgainLbl, mPasswordAgain, true, mActiveColor); + enableFields(mPasswdLbl, mPassword, true, mActiveColor); + if (index == 0) { + enableFields(mSOPLbl, mSOPPassword, false, getBackground()); + } else { + enableFields(mSOPLbl, mSOPPassword, true, mActiveColor); + } + } + } + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WILDAPPublishingPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WILDAPPublishingPage.java new file mode 100644 index 000000000..5cb6b3db3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WILDAPPublishingPage.java @@ -0,0 +1,279 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WILDAPPublishingPage extends WizardBasePanel implements IWizardPanel { + private JTextField mHostNameText, mPortText, mBindAsText; + private JCheckBox mSecurePort, mEnable; + private JLabel mBindAsLabel, mCertLabel; + private JComboBox mAuthBox, mCertBox, mVersionBox; + + private static final String PANELNAME = "LDAPPUBLISHINGWIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + private static final String EMPTYSTR = " "; + private static final String DELIMITER = ","; + private final static String[] AUTHTYPE = {Constants.PR_BASIC_AUTH, + Constants.PR_SSL_AUTH}; + + WILDAPPublishingPage() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "INTERNALDBWIZARD_TEXT_HEADING_LABEL"), 80), 2, 80); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mEnable = makeJCheckBox("ENABLE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mEnable, gbc); + + JPanel panel = new JPanel(); + panel.setBorder(CMSAdminUtil.makeTitledBorder(mResource, + PANELNAME, "DESTINATION")); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.weighty = 1.0; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(panel, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel hostName = makeJLabel("HOST"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel.add(hostName, gbc); + + CMSAdminUtil.resetGBC(gbc); + mHostNameText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + panel.add(mHostNameText, gbc); + +/* + CMSAdminUtil.resetGBC(gbc); + JTextArea dummy = createTextArea(" ", 2, 5); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(dummy, gbc); +*/ + + CMSAdminUtil.resetGBC(gbc); + JLabel portNumber = makeJLabel("PORT"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel.add(portNumber, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPortText = makeJTextField(10); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel.add(mPortText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mSecurePort = makeJCheckBox("SECUREPORT"); + gbc.anchor = gbc.NORTHWEST; + //gbc.weightx = 0.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, + DIFFERENT_COMPONENT_SPACE - COMPONENT_SPACE,0,COMPONENT_SPACE); + panel.add(mSecurePort, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel versionLbl = makeJLabel("VERSION"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(versionLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mVersionBox = makeJComboBox("VERSION"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(mVersionBox, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy = new JLabel(" "); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(dummy, gbc); + + CMSAdminUtil.resetGBC(gbc); + mBindAsLabel = makeJLabel("BINDAS"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(mBindAsLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mBindAsText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(mBindAsText, gbc); + + CMSAdminUtil.resetGBC(gbc); + mCertLabel = makeJLabel("CERTLIST"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(mCertLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mCertBox = new JComboBox(); + mCertBox.addItem("internal"); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(mCertBox, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy1 = new JLabel(" "); + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(dummy1, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel authLbl = makeJLabel("AUTHTYPE"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.gridheight = gbc.REMAINDER; + //gbc.weighty = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(authLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mAuthBox = makeJComboBox("AUTHTYPE"); + //gbc.weighty = 1.0; + gbc.anchor = gbc.NORTHWEST; + gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(mAuthBox, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy2 = new JLabel(" "); + gbc.gridwidth = gbc.REMAINDER; + gbc.anchor = gbc.NORTHWEST; + gbc.gridheight = gbc.REMAINDER; + gbc.weightx = 1.0; + //gbc.weighty = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel.add(dummy2, gbc); + +/* + CMSAdminUtil.resetGBC(gbc); + JTextArea dummy1 = createTextArea(" ", 2, 30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(dummy1, gbc); +*/ + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WILoggingPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WILoggingPage.java new file mode 100644 index 000000000..a28a4795d --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WILoggingPage.java @@ -0,0 +1,202 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WILoggingPage extends WizardBasePanel implements IWizardPanel { + private JCheckBox mEnableSysLog; + private JCheckBox mEnableErrorLog; + private JCheckBox mEnableAuditLog; + private JComboBox mlogFQC, mLogLevel; + private JTextField mlogMaxSizText, mlogBufSizText; + private static final String PANELNAME = "LOGGINGWIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + private static final String EMPTYSTR = " "; + + protected final static int YEAR = 31536000; + protected final static int MONTH = 2592000; + protected final static int WEEK = 604800; + protected final static int DAY = 86400; + protected final static int HOUR = 3600; + + WILoggingPage() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + mEnableSysLog = makeJCheckBox("SYSLOG"); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mEnableSysLog, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEnableErrorLog = makeJCheckBox("ERRORLOG"); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mEnableErrorLog, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEnableAuditLog = makeJCheckBox("AUDITLOG"); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEnableAuditLog, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel logFQC = makeJLabel("LOGFQC"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + add(logFQC, gbc); + + CMSAdminUtil.resetGBC(gbc); + mlogFQC = makeJComboBox("LOGFQC"); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 0.0; + add(mlogFQC, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea dummy1 = new JTextArea(EMPTYSTR, 1, 20); + dummy1.setBackground(getBackground()); + dummy1.setEditable(false); + dummy1.setCaretColor(getBackground()); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(dummy1, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel logMaxSiz = makeJLabel("LOGMAXSIZ"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + add(logMaxSiz, gbc); + + CMSAdminUtil.resetGBC(gbc); + mlogMaxSizText = makeJTextField(10); + gbc.anchor = gbc.NORTHWEST; + add(mlogMaxSizText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel maxLabel = makeJLabel("SIZEUNIT"); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(maxLabel, gbc); + //mActiveColor = mlogMaxSizText.getBackground(); + + CMSAdminUtil.resetGBC(gbc); + JLabel logBufSiz = makeJLabel("LOGBUFSIZ"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + add(logBufSiz, gbc); + + CMSAdminUtil.resetGBC(gbc); + mlogBufSizText = makeJTextField(10); + gbc.anchor = gbc.NORTHWEST; + add(mlogBufSizText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel bufferLabel = makeJLabel("SIZEUNIT"); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + add(bufferLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel logLevel = makeJLabel("LOGLEVEL"); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.NORTHEAST; + add(logLevel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mLogLevel = makeJComboBox("LOGLEVEL"); + gbc.anchor = gbc.NORTHWEST; + add(mLogLevel, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy4 = new JLabel(EMPTYSTR); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy4, gbc); + +/* + CMSAdminUtil.resetGBC(gbc); + JLabel dummy = new JLabel(" "); + JLabel dummy5 = new JLabel(" "); + gbc.weighty = 0.1; + CMSAdminUtil.addEntryField(this, dummy, dummy5, gbc); +*/ + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WILogonAllTokensPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WILogonAllTokensPage.java new file mode 100644 index 000000000..9a8060b30 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WILogonAllTokensPage.java @@ -0,0 +1,264 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import javax.swing.table.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the information of the current internal database. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WILogonAllTokensPage extends WizardBasePanel implements IWizardPanel { + private ProfileDataTable mTable; + private static final String EMPTYSTR = " "; + private static final String PANELNAME = "LOGONALLTOKENSWIZARD"; + private static final String HELPINDEX = "install-internaldb-configuration-wizard-help"; + + WILogonAllTokensPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WILogonAllTokensPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + setBorder(makeTitledBorder(PANELNAME)); + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + String tokenList = wizardInfo.getTokensList(); + String tokenLoggedIn = wizardInfo.getTokensLogin(); + String tokenInits = wizardInfo.getTokensInit(); + StringTokenizer tokenizer = new StringTokenizer(tokenList, ":"); + StringTokenizer tokenizerLoggedIn = new StringTokenizer(tokenLoggedIn, ":"); + StringTokenizer tokenizerInits = new StringTokenizer(tokenInits, ":"); + String loggedIn = ""; + String inits = ""; + + boolean logon = false; + Vector defcolNames = new Vector(); + defcolNames.addElement("Token Name"); + defcolNames.addElement("Password"); + Vector defdata = new Vector(); + + while (tokenizer.hasMoreElements()) { + String token = (String)tokenizer.nextElement(); + loggedIn = (String)tokenizerLoggedIn.nextElement(); + inits = (String)tokenizerInits.nextElement(); + + // if (loggedIn.equals("false")) { + // always logon to the token. + if (inits.equals("true")) { + Vector v = new Vector(); + v.addElement(new JLabel(token)); + v.addElement(new JPasswordField()); + defdata.addElement(v); + logon = true; + } + //} + } + + ProfilePolicyEditDataModel defmodel = new ProfilePolicyEditDataModel(); + defmodel.setInfo(defdata, defcolNames); + mTable.setModel(defmodel); + + return logon; + } + + public boolean validatePanel() { + for (int i=0; i 0) + mSSLTokenBox.removeAllItems(); + for (int i=0; i 0) + tokenBox.removeAllItems(); + + String tokenList = mWizardInfo.getTokensList(); + StringTokenizer tokenizer = new StringTokenizer(tokenList, ":"); + int count = tokenizer.countTokens(); + while (tokenizer.hasMoreTokens()) { + tokenBox.addItem((String)tokenizer.nextToken()); + } + + String initializedList = mWizardInfo.getTokensInit(); + tokenizer = new StringTokenizer(initializedList, ":"); + int i=0; + mTokenInitialized = new String[count]; + while (tokenizer.hasMoreElements()) { + mTokenInitialized[i] = (String)tokenizer.nextToken(); + i++; + } + + String loginList = mWizardInfo.getTokensLogin(); + tokenizer = new StringTokenizer(loginList, ":"); + i=0; + mTokenLogin = new String[count]; + while (tokenizer.hasMoreElements()) { + mTokenLogin[i] = (String)tokenizer.nextToken(); + i++; + } + } + + public boolean validatePanel() { + int caindex = mCATokenBox.getSelectedIndex(); + boolean status = false; + + if (caindex > 0) { + status = validateHardwareToken(caindex, mCAPassword, mCAPasswordAgain, + mCASOPPassword); + } else { + status = validateInternalToken(caindex, mCAPassword, mCAPasswordAgain); + } + + if (!status) + return false; + + int sslindex = mSSLTokenBox.getSelectedIndex(); + if (sslindex != caindex) { + if (sslindex > 0) { + status = validateHardwareToken(sslindex, mSSLPassword, mSSLPasswordAgain, + mSSLSOPPassword); + } else { + status = validateInternalToken(sslindex, mSSLPassword, mSSLPasswordAgain); + } + } + + return status; + } + + private boolean validateHardwareToken(int index, JPasswordField passwdField, + JPasswordField passwdAgainField, JPasswordField sopPasswdField) { + String caPasswd = mCAPassword.getText().trim(); + String caPasswdAgain = mCAPasswordAgain.getText().trim(); + String sslPasswd = mSSLPassword.getText().trim(); + String sslPasswdAgain = mSSLPasswordAgain.getText().trim(); + String sopPasswd = sopPasswdField.getText(); + if (mTokenLogin[index].equals(ConfigConstants.TRUE)) { + return true; + } + + if (mTokenInitialized[index].equals(ConfigConstants.TRUE)) { + if (caPasswd.equals("")) { + //if (caPasswd.equals("") || sopPasswd.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + return true; + } + + if (caPasswd.equals("") || caPasswdAgain.equals("") || sopPasswd.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + if (!caPasswd.equals(caPasswdAgain)) { + setErrorMessage("NOTSAMEPASSWD"); + return false; + } + return true; + } + + private boolean validateInternalToken(int index, JPasswordField passwdField, + JPasswordField passwdAgainField) { + String passwd = passwdField.getText(); + String passwdAgain = passwdAgainField.getText(); + if (mTokenLogin[index].equals(ConfigConstants.TRUE)) { + return true; + } + + if (mTokenInitialized[index].equals(ConfigConstants.TRUE)) { + if (passwd.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + return true; + } + + if (passwd.equals("") || passwdAgain.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + if (!passwd.equals(passwdAgain)) { + setErrorMessage("NOTSAMEPASSWD"); + return false; + } + return true; + } + + public boolean concludePanel(WizardInfo info) { + Hashtable data = new Hashtable(); + String caTokenName = ""; + String sslTokenName = ""; + if (mCATokenBox.getSelectedIndex() == 0) { + caTokenName = Constants.PR_INTERNAL_TOKEN_NAME; + } else { + caTokenName = (String)mCATokenBox.getSelectedItem(); + } + if (mSSLTokenBox.getSelectedIndex() == 0) { + sslTokenName = Constants.PR_INTERNAL_TOKEN_NAME; + } else { + sslTokenName = (String)mSSLTokenBox.getSelectedItem(); + } + + mWizardInfo.setCATokenName(caTokenName); + mWizardInfo.setSSLTokenName(sslTokenName); + mWizardInfo.setMigrationOutputPath(mPathText.getText().trim()); + //mWizardInfo.setInternalDBPasswd(mDBPassword.getText().trim()); + mWizardInfo.setMigrationPasswd(mTransportPassword.getText().trim()); + mWizardInfo.setSigningKeyMigrationToken(caTokenName); + mWizardInfo.setSigningKeyMigrationPasswd(mCAPassword.getText().trim()); + if (mCATokenBox.getSelectedIndex() > 0) { + mWizardInfo.setSigningKeyMigrationSOPPasswd(mCASOPPassword.getText().trim()); + data.put(ConfigConstants.PR_SIGNING_KEY_MIGRATION_TOKEN_SOPPASSWD, + mWizardInfo.getSigningKeyMigrationSOPPasswd()); + } + mWizardInfo.setSSLKeyMigrationToken(sslTokenName); + + if (caTokenName.equals(sslTokenName)) + mWizardInfo.setSSLKeyMigrationPasswd(mCAPassword.getText().trim()); + else + mWizardInfo.setSSLKeyMigrationPasswd(mSSLPassword.getText().trim()); + + if (mSSLTokenBox.getSelectedIndex() > 0) { + mWizardInfo.setSSLKeyMigrationSOPPasswd(mSSLSOPPassword.getText().trim()); + data.put(ConfigConstants.PR_SSL_KEY_MIGRATION_TOKEN_SOPPASSWD, + mWizardInfo.getSSLKeyMigrationSOPPasswd()); + } + ConsoleInfo consoleInfo = mWizardInfo.getAdminConsoleInfo(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(mWizardInfo); + data.put(ConfigConstants.PR_CERT_INSTANCE_NAME, + consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME)); + + data.put(ConfigConstants.TASKID, TaskId.TASK_MIGRATION); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + if (mWizardInfo.isMigrationEnable()) + data.put(ConfigConstants.PR_ENABLE_MIGRATION, ConfigConstants.TRUE); + else + data.put(ConfigConstants.PR_ENABLE_MIGRATION, ConfigConstants.FALSE); + data.put(ConfigConstants.PR_OUTPUT_PATH, + mWizardInfo.getMigrationOutputPath()); + if (mWizardInfo.getInternalDBPasswd() != null) + data.put(ConfigConstants.PR_DB_PWD, + mWizardInfo.getInternalDBPasswd()); + data.put(ConfigConstants.PR_MIGRATION_PASSWORD, + mWizardInfo.getMigrationPasswd()); + data.put(ConfigConstants.PR_SIGNING_KEY_MIGRATION_TOKEN, + mWizardInfo.getSigningKeyMigrationToken()); + data.put(ConfigConstants.PR_SIGNING_KEY_MIGRATION_TOKEN_PASSWD, + mWizardInfo.getSigningKeyMigrationPasswd()); + data.put(ConfigConstants.PR_SSL_KEY_MIGRATION_TOKEN, + mWizardInfo.getSSLKeyMigrationToken()); + data.put(ConfigConstants.PR_SSL_KEY_MIGRATION_TOKEN_PASSWD, + mWizardInfo.getSSLKeyMigrationPasswd()); + + startProgressStatus(); + boolean ready = configCertCgi.configCert(data); + endProgressStatus(); + + mWizardInfo.put("TOKEN:"+caTokenName, mCAPassword.getText().trim()); + mWizardInfo.put("TOKEN:"+sslTokenName, + mSSLPassword.getText().trim()); + + if (!ready) { + String str = configCertCgi.getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void itemStateChanged(ItemEvent e) { + super.itemStateChanged(e); + int index = 0; + if (e.getSource().equals(mCATokenBox)) { + index = mCATokenBox.getSelectedIndex(); + mWizardInfo.setMigrateCACertTokenName((String)mCATokenBox.getSelectedItem()); + enableFields(index, mLogonInitCATokenLbl, mCAPasswdLbl, mCAPassword, + mCAPasswdAgainLbl, mCAPasswordAgain, mCASOPLbl, mCASOPPassword); + enablePasswordFields(); + } else if (e.getSource().equals(mSSLTokenBox)) { + index = mSSLTokenBox.getSelectedIndex(); + mWizardInfo.setMigrateSSLCertTokenName((String)mSSLTokenBox.getSelectedItem()); + enableFields(index, mLogonInitSSLTokenLbl, mSSLPasswdLbl, mSSLPassword, + mSSLPasswdAgainLbl, mSSLPasswordAgain, mSSLSOPLbl, mSSLSOPPassword); + enablePasswordFields(); + } + } + + private void enableFields(int index, JLabel logonInitLbl, JLabel passwdLbl, + JPasswordField passwd, JLabel passwdAgainLbl, JPasswordField passwdAgain, + JLabel sopLbl, JPasswordField sopPasswd) { + if (mTokenLogin[index].equals(ConfigConstants.TRUE)) { + logonInitLbl.setText(""); + enableFields(logonInitLbl, null, false, null); + enableFields(sopLbl, sopPasswd, false, getBackground()); + enableFields(passwdLbl, passwd, false, getBackground()); + enableFields(passwdAgainLbl, passwdAgain, false, getBackground()); + } else { + if (mTokenInitialized[index].equals(ConfigConstants.TRUE)) { + String str = mResource.getString(PANELNAME+"_LABEL_LOGIN_LABEL"); + logonInitLbl.setText(str); + enableFields(logonInitLbl, null, true, null); + enableFields(passwdAgainLbl, passwdAgain, false, getBackground()); + enableFields(passwdLbl, passwd, true, mActiveColor); + enableFields(sopLbl, sopPasswd, false, getBackground()); + } else { + String str = mResource.getString(PANELNAME+"_LABEL_INITIALIZE_LABEL") +; + logonInitLbl.setText(str); + enableFields(logonInitLbl, null, true, null); + enableFields(logonInitLbl, null, true, null); + enableFields(passwdAgainLbl, passwdAgain, true, mActiveColor); + enableFields(passwdLbl, passwd, true, mActiveColor); + if (index == 0) { + enableFields(sopLbl, sopPasswd, false, getBackground()); + } else { + enableFields(sopLbl, sopPasswd, true, mActiveColor); + } + } + } + } + + protected void enableFields(JComponent comp1, JTextComponent comp2, + boolean enable, Color color) { + if (comp1 != null) { + comp1.setEnabled(enable); + CMSAdminUtil.repaintComp(comp1); + } + if (comp2 != null) { + comp2.setEnabled(enable); + comp2.setBackground(color); + comp2.setEditable(enable); + CMSAdminUtil.repaintComp(comp2); + } + } + + protected void enablePasswordFields() { + String caTokenStr = (String)mCATokenBox.getSelectedItem(); + String sslTokenStr = (String)mSSLTokenBox.getSelectedItem(); + if (caTokenStr.equals(sslTokenStr)) { + enableFields(mSSLPasswdLbl, mSSLPassword, false, getBackground()); + enableFields(mSSLPasswdAgainLbl, mSSLPasswordAgain, false, getBackground()); + } else { + enableFields(mSSLPasswdLbl, mSSLPassword, true, mActiveColor); + enableFields(mSSLPasswdAgainLbl, mSSLPasswordAgain, true, mActiveColor); + } + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + +/* + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "MIGRATIONWIZARD_TEXT_DESC_LABEL"), 80), 1, 80); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); +*/ + + CMSAdminUtil.resetGBC(gbc); + mPathLbl = makeJLabel("PATH"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mPathLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPathText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mPathText, gbc); + + mTransportLbl = makeJLabel("TRANSPORTPASSWORD"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mTransportLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mTransportPassword = makeJPasswordField(20); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mTransportPassword, gbc); + mActiveColor = mTransportPassword.getBackground(); + +/* + mDBLbl = makeJLabel("DBPASSWORD"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mDBLbl, gbc); + + mDBPassword = makeJPasswordField(20); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mDBPassword, gbc); +*/ + + JPanel panel1 = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel1.setLayout(gb1); + + mCATokenHeading = makeJLabel("SELECTCATOKEN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + panel1.add(mCATokenHeading, gbc); + + mCATokenLbl = makeJLabel("TOKEN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + panel1.add(mCATokenLbl, gbc); + + mCATokenBox = new JComboBox(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + //gbc.weightx = 1.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel1.add(mCATokenBox, gbc); + + JTextArea dummy1 = createTextArea(" ", 1, 5); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + panel1.add(dummy1, gbc); + + JPanel panel1a = new JPanel(); + GridBagLayout gb1a = new GridBagLayout(); + panel1a.setLayout(gb1a); + + mLogonInitCATokenLbl = new JLabel("Initialize the selected token:"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 0, 0, COMPONENT_SPACE); + panel1a.add(mLogonInitCATokenLbl, gbc); + + mCAPasswdLbl = makeJLabel("PASSWD"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + panel1a.add(mCAPasswdLbl, gbc); + + mCAPassword = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel1a.add(mCAPassword, gbc); + + mCAPasswdAgainLbl = makeJLabel("PASSWDAGAIN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + panel1a.add(mCAPasswdAgainLbl, gbc); + + mCAPasswordAgain = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel1a.add(mCAPasswordAgain, gbc); + + mCASOPLbl = makeJLabel("SOP"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + panel1a.add(mCASOPLbl, gbc); + + mCASOPPassword = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel1a.add(mCASOPPassword, gbc); + + JPanel panel2 = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + panel2.setLayout(gb2); + + mSSLTokenHeading = makeJLabel("SELECTSSLTOKEN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + panel2.add(mSSLTokenHeading, gbc); + + mSSLTokenLbl = makeJLabel("TOKEN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + panel2.add(mSSLTokenLbl, gbc); + + mSSLTokenBox = new JComboBox(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + //gbc.weightx = 1.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel2.add(mSSLTokenBox, gbc); + + JTextArea dummy1a = createTextArea(" ", 1, 5); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + panel2.add(dummy1a, gbc); + + JPanel panel2a = new JPanel(); + GridBagLayout gb2a = new GridBagLayout(); + panel2a.setLayout(gb2a); + + mLogonInitSSLTokenLbl = new JLabel("Initialize the SSL token"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 0, 0, COMPONENT_SPACE); + panel2a.add(mLogonInitSSLTokenLbl, gbc); + + mSSLPasswdLbl = makeJLabel("PASSWD"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + panel2a.add(mSSLPasswdLbl, gbc); + + mSSLPassword = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel2a.add(mSSLPassword, gbc); + + mSSLPasswdAgainLbl = makeJLabel("PASSWDAGAIN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + panel2a.add(mSSLPasswdAgainLbl, gbc); + + mSSLPasswordAgain = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + panel2a.add(mSSLPasswordAgain, gbc); + + mSSLSOPLbl = makeJLabel("SOP"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + panel2a.add(mSSLSOPLbl, gbc); + + mSSLSOPPassword = new JPasswordField(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + panel2a.add(mSSLSOPPassword, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.weightx = 1.0; + add(panel1, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.weightx = 1.0; + add(panel1a, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.weightx = 1.0; + add(panel2, gbc); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.weightx = 1.0; + add(panel2a, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel dumLbl = new JLabel(""); + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(dumLbl, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java new file mode 100644 index 000000000..823980d56 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java @@ -0,0 +1,499 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Network panel for configurating the admin and EE port. + * + * @author Christine Ho + * @version $Revision$, $Date$ + */ +class WINetworkPage extends WizardBasePanel implements IWizardPanel { + private Color mActiveColor; + + // TextField for port + private JTextField mAdminSSLPortText; + private JTextField mAgentSSLPortText; + private JTextField mGatewayPortText; + private JTextField mGatewaySSLPortText; + private JCheckBox mEnable; + + private JTextArea mAgentDesc; + private JLabel mAgentPortLbl; + private JTextField mPortText; + + protected AdminConnection mAdmin; + private boolean mBlankFieldError = false; + private boolean mNumberError = false; + private JLabel mPortLabel, mSSLPortLabel; + + private static final String HELPINDEX = + "install-network-configuration-wizard-help"; + private static final String PANELNAME = "NETWORKWIZARD"; + private static final int MAX_PORT = 65535; + private static final int MIN_PORT = 1; + private boolean mEnableEEPorts; + private InstallWizardInfo mWizardInfo; + private boolean mWarning; + + WINetworkPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WINetworkPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + mWizardInfo = wizardInfo; + if (wizardInfo.isNetworkDone()) + return false; + setBorder(makeTitledBorder(PANELNAME)); + boolean cloning = mWizardInfo.isCloning(); + String selected_sub = mWizardInfo.getCloneSubsystem(); + if (!cloning || + (cloning && (selected_sub != null && !selected_sub.equals("ca")))) { + mAgentDesc.setVisible(false); + mAgentPortLbl.setVisible(false); + mPortText.setVisible(false); + } + + if (wizardInfo.isOCSPInstalled() || wizardInfo.isOCSPServiceAdded()) { + mEnable.setSelected(true); + } else { + mEnable.setSelected(wizardInfo.isEEEnabled()); + } + + if (wizardInfo.isRAInstalled()) + mEnable.setSelected(true); + mAdminSSLPortText.setText(wizardInfo.getAdminPort()); + mAgentSSLPortText.setText(wizardInfo.getAgentPort()); + if (!wizardInfo.isCAInstalled() && !wizardInfo.isRAInstalled() && + wizardInfo.isKRAInstalled()) { + enableFields(mPortLabel, mGatewayPortText, false, getBackground()); + enableFields(mSSLPortLabel, mGatewaySSLPortText, false, getBackground()); + mEnable.setEnabled(false); + mEnableEEPorts = false; + } else { + mGatewaySSLPortText.setText(wizardInfo.getEESecurePort()); + mGatewayPortText.setText(wizardInfo.getEEPort()); + mEnable.setEnabled(true); + if (mEnable.isSelected()) { + enableFields(true, mActiveColor); + enableFields(mPortLabel, mGatewayPortText, true, mActiveColor); + } else { + enableFields(false, getBackground()); + enableFields(mPortLabel, mGatewayPortText, false, getBackground()); + } + enableFields(mSSLPortLabel, mGatewaySSLPortText, true, mActiveColor); + mEnableEEPorts = true; + } + + return true; + } + + private void enableFields(JComponent comp1, JTextComponent comp2, + boolean enable, Color color) { + if (comp1 != null) { + comp1.setEnabled(enable); + CMSAdminUtil.repaintComp(comp1); + } + if (comp2 != null) { + comp2.setEnabled(enable); + comp2.setBackground(color); + comp2.setEditable(enable); + CMSAdminUtil.repaintComp(comp2); + } + } + + public boolean validatePanel() { + String adminPort = mAdminSSLPortText.getText().trim(); + String agentPort = mAgentSSLPortText.getText().trim(); + String eePort = mGatewayPortText.getText().trim(); + String sslEEPort = mGatewaySSLPortText.getText().trim(); + String masteragentport = mPortText.getText().trim(); + + if (adminPort.equals("") || agentPort.equals("")) { + setErrorMessage("BLANKFIELD"); + return false; + } + + if (mEnableEEPorts) { + if (sslEEPort.equals("") || (mEnable.isSelected() && eePort.equals(""))) { + setErrorMessage("BLANKFIELD"); + return false; + } + } + + boolean cloning = mWizardInfo.isCloning(); + String selected_sub = mWizardInfo.getCloneSubsystem(); + if (cloning && (selected_sub != null && selected_sub.equals("ca"))) { + if (masteragentport.equals("")) { + setErrorMessage("BLANKFIELD"); + return false; + } + } + + int num = 0; + try { + num = Integer.parseInt(adminPort); + if (num < MIN_PORT || num > MAX_PORT) { + setErrorMessage("PORTRANGE"); + return false; + } + num = Integer.parseInt(agentPort); + if (num < MIN_PORT || num > MAX_PORT) { + setErrorMessage("PORTRANGE"); + return false; + } + if (mEnableEEPorts) { + num = Integer.parseInt(sslEEPort); + if (num < MIN_PORT || num > MAX_PORT) { + setErrorMessage("PORTRANGE"); + return false; + } + if (mEnable.isSelected()) { + num = Integer.parseInt(eePort); + if (num < MIN_PORT || num > MAX_PORT) { + setErrorMessage("PORTRANGE"); + return false; + } + } + } + if (cloning && (selected_sub != null && selected_sub.equals("ca"))) + num = Integer.parseInt(masteragentport); + } catch (NumberFormatException e) { + setErrorMessage("NUMBERFORMAT"); + return false; + } + + if (adminPort.equals(agentPort) || agentPort.equals(sslEEPort) || + (mEnable.isSelected() && eePort.equals(sslEEPort))) { + setErrorMessage("SAMEPORT"); + return false; + } + + if (mEnableEEPorts) { + if (agentPort.equals(sslEEPort) || + (mEnable.isSelected() && eePort.equals(sslEEPort))) { + setErrorMessage("SAMEPORT"); + return false; + } + } + setErrorMessage(""); + return true; + } + + private void setEEPorts(InstallWizardInfo wizardInfo, Hashtable data) { + String eePort = mGatewayPortText.getText().trim(); + String eeSSLPort = mGatewaySSLPortText.getText().trim(); + wizardInfo.setEEPort(eePort); + wizardInfo.setEESecurePort(eeSSLPort); + data.put(ConfigConstants.PR_EE_PORT, eePort); + data.put(ConfigConstants.PR_EE_SECURE_PORT, eeSSLPort); + if (mEnable.isSelected()) { + data.put(ConfigConstants.PR_EE_PORT_ENABLE, + ConfigConstants.TRUE); + wizardInfo.setEEEnable(ConfigConstants.TRUE); + } else { + data.put(ConfigConstants.PR_EE_PORT_ENABLE, + ConfigConstants.FALSE); + wizardInfo.setEEEnable(ConfigConstants.FALSE); + } + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(wizardInfo); + Hashtable data = new Hashtable(); + data.put(ConfigConstants.TASKID, TaskId.TASK_CONFIGURE_NETWORK); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + String agentPort = mAgentSSLPortText.getText().trim(); + String radmPort = mAdminSSLPortText.getText().trim(); + wizardInfo.setAgentPort(agentPort); + wizardInfo.setAdminPort(radmPort); + data.put(ConfigConstants.PR_AGENT_PORT, agentPort); + data.put(ConfigConstants.PR_RADM_PORT, radmPort); + data.put(ConfigConstants.PR_CERT_INSTANCE_NAME, + consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME)); + boolean cloning = mWizardInfo.isCloning(); + String selected_sub = mWizardInfo.getCloneSubsystem(); + if (cloning && (selected_sub != null && selected_sub.equals("ca"))) + data.put(Constants.PR_MASTER_AGENT_PORT, mPortText.getText().trim()); + + if (mEnableEEPorts) { + setEEPorts(wizardInfo, data); + data.put(ConfigConstants.PR_EE_PORTS_ENABLE, ConfigConstants.TRUE); + } else + data.put(ConfigConstants.PR_EE_PORTS_ENABLE, ConfigConstants.FALSE); + + startProgressStatus(); + boolean ready = configCertCgi.configCert(data); + endProgressStatus(); + + if (!ready) { + String str = configCertCgi.getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea heading = createTextArea(mResource.getString( + "NETWORKWIZARD_TEXT_DESC_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(heading, gbc); + + JLabel adminSSLport = makeJLabel("ADMINSSLPORT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(COMPONENT_SPACE, 0, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(adminSSLport, gbc); + + mAdminSSLPortText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + //gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mAdminSSLPortText, gbc); + mActiveColor = mAdminSSLPortText.getBackground(); + + JLabel dummy2a = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(dummy2a, gbc); + + JLabel agentPort = makeJLabel("AGENTSSLPORT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE,COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(agentPort, gbc); + + mAgentSSLPortText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + //gbc.gridwidth = gbc.REMAINDER; + add(mAgentSSLPortText, gbc); + + JLabel dummy2b = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(dummy2b, gbc); + + mSSLPortLabel = makeJLabel("GATEWAYSSLPORT"); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE,COMPONENT_SPACE); + gbc.anchor = gbc.EAST; + add(mSSLPortLabel, gbc); + + mGatewaySSLPortText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + //gbc.fill = gbc.NONE; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.anchor = gbc.WEST; + //gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mGatewaySSLPortText, gbc); + + JLabel dummy2c = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(dummy2c, gbc); + + mPortLabel = makeJLabel("GATEWAYPORT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE,COMPONENT_SPACE); + add(mPortLabel, gbc); + + mGatewayPortText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + //gbc.fill = gbc.NONE; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.anchor = gbc.WEST; + add(mGatewayPortText, gbc); + + // 610632 - remove the enable button + + JLabel enableLbl = makeJLabel("ENABLED"); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.CENTER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + // add(enableLbl, gbc); + + mEnable = new JCheckBox(); + mEnable.addActionListener(this); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + // add(mEnable, gbc); + + JLabel dummy1 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(dummy1, gbc); + + CMSAdminUtil.resetGBC(gbc); + mAgentDesc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING1_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(2*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mAgentDesc, gbc); + + CMSAdminUtil.resetGBC(gbc); + mAgentPortLbl = makeJLabel("AGENTPORT"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mAgentPortLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPortText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.HORIZONTAL; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPortText, gbc); + + JLabel dummy2 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(dummy2, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.NORTHWEST; + gbc.weighty = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void actionPerformed(ActionEvent e) { + if (mEnable.isSelected()) { + enableFields(true, mActiveColor); + } else { + if (!mWarning && (mWizardInfo.isOCSPInstalled() || mWizardInfo.isOCSPServiceAdded())) { + mWarning = true; + String errormsg = mResource.getString(mPanelName+"_WARNING"); + JOptionPane.showMessageDialog(mAdminFrame, errormsg, "Warning", + JOptionPane.WARNING_MESSAGE, + CMSAdminUtil.getImage(CMSAdminResources.IMAGE_WARN_ICON)); + } else { + enableFields(false, getBackground()); + } + } + } + + private void enableFields(boolean enable, Color color) { + mPortLabel.setEnabled(enable); + mGatewayPortText.setEnabled(enable); + mGatewayPortText.setEditable(enable); + mGatewayPortText.setBackground(color); + CMSAdminUtil.repaintComp(mPortLabel); + CMSAdminUtil.repaintComp(mGatewayPortText); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertDNPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertDNPage.java new file mode 100644 index 000000000..d13124de6 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertDNPage.java @@ -0,0 +1,83 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; +import com.netscape.management.client.util.*; + +/** + * Subject DN page for RA signing certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIOCSPCertDNPage extends WICertDNPage { + private static final String PANELNAME = "INSTALLOCSPCERTDNWIZARD"; + private static final String OCSPHELPINDEX = "install-ocspcert-subjectdn-wizard-help"; + + WIOCSPCertDNPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIOCSPCertDNPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isOCSPCloningDone()) + return false; + + if (!wizardInfo.isOCSPInstalled() || wizardInfo.isOCSPLocalCertDone() || + wizardInfo.isOCSPCertRequestDone() || wizardInfo.isOCSPCertInstalledDone()) + return false; + String str = wizardInfo.getOCSPSubjectName(); + if (str == null || str.equals("")) + str = OCSP_CN+", "+OCSP_C; + wizardInfo.setOCSPSubjectName(str); + populateDN(str); + mHelpIndex = OCSPHELPINDEX; + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (super.concludePanel(info)) { + wizardInfo.setOCSPSubjectName(mStr); + return true; + } + + return false; + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String str = mOText.getText().trim(); + wizardInfo.setOCSPOComp(str); + str = mCText.getText().trim(); + wizardInfo.setOCSPCComp(str); + } + +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertSubmitPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertSubmitPage.java new file mode 100644 index 000000000..dd58b5f1a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertSubmitPage.java @@ -0,0 +1,76 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * OCSP Certificate Submission. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIOCSPCertSubmitPage extends WICertSubmitPage implements IWizardPanel { + private static final String PANELNAME = "INSTALLOCSPCERTWIZARD"; + private static final String OCSPHELPINDEX = "install-ocsptype-wizard-help"; + + WIOCSPCertSubmitPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isOCSPCloningDone()) + return false; + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_OCSP_SIGNING_CERT); + + if (!wizardInfo.isOCSPInstalled() || + wizardInfo.isOCSPCertRequestDone() || wizardInfo.isOCSPCertInstalledDone() + || + !wizardInfo.isCAInstalled()) { + wizardInfo.setOCSPCertLocalCA(Constants.FALSE); + return false; + } + if (wizardInfo.isOCSPLocalCertDone()) + return false; + + mHelpIndex = OCSPHELPINDEX; + return super.initializePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mSelfButton.isSelected()) + wizardInfo.setOCSPCertLocalCA(Constants.TRUE); + else + wizardInfo.setOCSPCertLocalCA(Constants.FALSE); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPKeyPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPKeyPage.java new file mode 100644 index 000000000..a49b428a7 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPKeyPage.java @@ -0,0 +1,90 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.management.client.util.*; + +/** + * Setup key information for RA signing certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIOCSPKeyPage extends WIKeyPage implements IWizardPanel { + private static final String PANELNAME = "INSTALLOCSPKEYWIZARD"; + private static final String OCSPHELPINDEX = + "install-ocspkey-configuration-wizard-help"; + + WIOCSPKeyPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIOCSPKeyPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + mWizardInfo = (InstallWizardInfo)info; + + if (mWizardInfo.isCloning() && mWizardInfo.isOCSPCloningDone()) + return false; + if (!mWizardInfo.isOCSPInstalled() || mWizardInfo.isOCSPLocalCertDone() || + mWizardInfo.isOCSPCertRequestDone() || mWizardInfo.isOCSPCertInstalledDone()) + return false; + + if (super.initializePanel(info)) { + String ocspTokenName = mWizardInfo.getOCSPTokenName(); + if (ocspTokenName == null || ocspTokenName.equals("")) { + mTokenBox.setSelectedIndex(0); + } else { + if (ocspTokenName.equals(Constants.PR_INTERNAL_TOKEN_NAME)) + mTokenBox.setSelectedIndex(0); + else + mTokenBox.setSelectedItem(ocspTokenName); + } + } + + mHelpIndex = OCSPHELPINDEX; + + enableFields(); + mIsCAKey = false; + mWizardInfo.setCertType(Constants.PR_OCSP_SIGNING_CERT); + return true; + } + + public void getUpdateInfo(WizardInfo info) { + super.getUpdateInfo(info); + mWizardInfo.setOCSPTokenName(mWizardInfo.getTokenName()); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPMessageDigestPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPMessageDigestPage.java new file mode 100644 index 000000000..ec250dcd1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPMessageDigestPage.java @@ -0,0 +1,80 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Setup the message digest information for the installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIOCSPMessageDigestPage extends WMessageDigestPage { + + private static final String PANELNAME = "INSTALLOCSPMESSAGEDIGESTWIZARD"; + + WIOCSPMessageDigestPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIOCSPMessageDigestPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isOCSPCloningDone()) + return false; + + if (!wizardInfo.isOCSPInstalled() || !wizardInfo.isOCSPCertLocalCA() || + wizardInfo.isOCSPLocalCertDone() || wizardInfo.isOCSPCertRequestDone() || + wizardInfo.isOCSPCertInstalledDone()) + return false; + + mCAKeyType = wizardInfo.getCAKeyType(); + + return super.initializePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mDSAHashTypeBox.isVisible()) + wizardInfo.setHashType((String)mDSAHashTypeBox.getSelectedItem()); + else + wizardInfo.setHashType((String)mRSAHashTypeBox.getSelectedItem()); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPRequestResultPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPRequestResultPage.java new file mode 100644 index 000000000..a94fbf6e3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPRequestResultPage.java @@ -0,0 +1,63 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.management.client.util.*; + +/** + * Display the OCSP signing certificate request result + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIOCSPRequestResultPage extends WIRequestResultPage { + + WIOCSPRequestResultPage(JDialog parent) { + super(parent); + } + + WIOCSPRequestResultPage(JDialog parent, JFrame adminFrame) { + super( parent, adminFrame); + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isOCSPCloningDone()) + return false; + + if (wizardInfo.isOCSPCertLocalCA() || !wizardInfo.isOCSPInstalled() || + wizardInfo.isOCSPLocalCertDone() || + (wizardInfo.isOCSPCertRequestSucc() && wizardInfo.isOCSPReqResultDisplayed()) || + wizardInfo.isOCSPCertInstalledDone()) + return false; + + wizardInfo.setOCSPReqResultDisplayed(Constants.TRUE); + return super.initializePanel(info); + } + +} + + + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPTokenLogonPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPTokenLogonPage.java new file mode 100644 index 000000000..aa4be933a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPTokenLogonPage.java @@ -0,0 +1,73 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * This panel asks for the information of the current internal database. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIOCSPTokenLogonPage extends WITokenLogonPage implements IWizardPanel { + + private static final String OCSPHELPINDEX = "install-ocsptoken-logon-wizard-help"; + private static final String PANELNAME = "OCSPTOKENLOGONWIZARD"; + + WIOCSPTokenLogonPage(JDialog dialog) { + super(PANELNAME); + mHelpIndex = OCSPHELPINDEX; + mParent = dialog; + } + + WIOCSPTokenLogonPage(JDialog dialog, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = OCSPHELPINDEX; + mParent = dialog; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String tokenname = wizardInfo.getOCSPTokenName(); + String pwd = (String)wizardInfo.get("TOKEN:"+tokenname); + + if (wizardInfo.isOCSPCertLocalCA() || !wizardInfo.isInstallCertNow() + || !wizardInfo.isOCSPInstalled() || wizardInfo.isOCSPCertInstalledDone()) + return false; + + if (pwd != null) + return false; + + mTokenText.setText(tokenname); + mTokenName = tokenname; + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCACertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCACertPage.java new file mode 100644 index 000000000..816554588 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCACertPage.java @@ -0,0 +1,67 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; + +/** + * The panel asks the user to paste the certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIPasteCACertPage extends WIPasteCertPage { + private static final String PANELNAME = "INSTALLPASTECACERTWIZARD"; + private static final String CAHELPINDEX = "install-cacert-paste-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakracert-paste-wizard-help"; + + WIPasteCACertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIPasteCACertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isCACloningDone()) + return false; + + if (wizardInfo.isCACertLocalCA() || !wizardInfo.isInstallCertNow() + || !wizardInfo.isCAInstalled() || wizardInfo.isMigrationEnable() + || wizardInfo.isCACertInstalledDone()) + return false; + + wizardInfo.setCertType(Constants.PR_CA_SIGNING_CERT); + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else + mHelpIndex = CAHELPINDEX; + + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCertPage.java new file mode 100644 index 000000000..063382f32 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCertPage.java @@ -0,0 +1,500 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.io.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * This page is to install the certificate in the internal token. The user can + * import the cert from the file, paste the Base 64 encoded blob in the + * text area or get the cert from the CMS where the request was sent. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIPasteCertPage extends WizardBasePanel implements IWizardPanel { + static private int transId = 1; + private JRadioButton mFileBtn; + private JRadioButton mBase64Btn; + private JTextField mFileText; + private JTextArea mBase64Text; + private JButton mPaste; + private String mCertContent = ""; + private String mCertFilePath = ""; + protected String mPanelName; + protected String mHelpIndex; + protected Color mActiveColor; + protected JTextArea introLbl; + + protected JTextField mHostText, mPortText, mRIDText; + protected JLabel mHostLbl, mPortLbl, mRIDLbl; + protected String mHost, mPort, mRID; + protected JLabel mSSLText; + protected JCheckBox mSSL; // ssl or not + protected JLabel mQueryText; + protected JRadioButton mQueryBtn; + + public static final int MAX_PORT = 65535; + public static final int MIN_PORT = 1; + + WIPasteCertPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mQueryBtn.isSelected()) + enableFields(true, mActiveColor); + else + enableFields(false, getBackground()); + + String host = wizardInfo.getCMHost(); + if (host != null && !host.equals("")) + mHostText.setText(host); + String port = wizardInfo.getCMEEPort(); + if (port != null && !port.equals("")) + mPortText.setText(port); + + String portType = wizardInfo.getCMEEType(); + if (portType != null && portType.equals("http")) + mSSL.setSelected(false); + + String rid = wizardInfo.getRequestID(); + if (rid != null && !rid.equals("")) + mRIDText.setText(rid); + + setBorder(makeTitledBorder(mPanelName)); + return true; + } + + public boolean validatePanel() { + if (mBase64Btn.isSelected()) { + mCertContent = mBase64Text.getText().trim(); + if (mCertContent.equals("")) { + setErrorMessage("B64EEMPTY"); + return false; + } + } else if (mFileBtn.isSelected()) { + mCertFilePath = mFileText.getText().trim(); + if (mCertFilePath.equals("")) { + setErrorMessage("EMPTYFILE"); + return false; + } + } else if (mQueryBtn.isSelected()) { + mHost = mHostText.getText().trim(); + mPort = mPortText.getText().trim(); + mRID = mRIDText.getText().trim(); + + if (mRID.equals("")) { + setErrorMessage("BLANKRID"); + return false; + } + try { + int ridnumber = Integer.parseInt(mRID); + } catch (NumberFormatException e) { + setErrorMessage("INVALIDRID"); + return false; + } + + if (mHost.equals("")) { + setErrorMessage("BLANKHOST"); + return false; + } + if (mPort.equals("")) { + setErrorMessage("BLANKPORT"); + return false; + } + + try { + int portnumber = Integer.parseInt(mPort); + if (portnumber < MIN_PORT || portnumber > MAX_PORT) { + setErrorMessage("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("INVALIDPORT"); + return false; + } + return true; + } + return true; + + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_GET_CERT_CONTENT; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_READ; + String reqType = wizardInfo.getCertType(); + rawData = rawData+"&"+Constants.PR_CERTIFICATE_TYPE+"="+reqType; + if (mFileBtn.isSelected()) { + rawData = rawData+"&"+Constants.PR_CERT_FILEPATH+"="+mCertFilePath; + wizardInfo.setCertFilePath(mCertFilePath); + wizardInfo.setPKCS10(""); + } else if (mBase64Btn.isSelected()) { + rawData = rawData+"&"+Constants.PR_PKCS10+"="+mCertContent; + //xxx It's not pkcs10, it's certificate. + wizardInfo.setPKCS10(mCertContent); + wizardInfo.setCertFilePath(""); + } else if (mQueryBtn.isSelected()) { + if (mRID != null && !mRID.equals("")) + wizardInfo.setRequestID(mRID); + if (mHost != null && !mHost.equals("")) + wizardInfo.setCMHost(mHost); + if (mPort != null && !mPort.equals("")) + wizardInfo.setCMEEPort(mPort); + if (mSSL.isSelected()) + wizardInfo.setCMEEType("https"); + else + wizardInfo.setCMEEType("http"); + + String rawData1 = "importCert=true"; + rawData1=rawData1+"&"+"requestId="+mRID; +/* + CMSImportCert importCertCgi = new CMSImportCert(); + importCertCgi.initialize(wizardInfo); + Hashtable data1 = new Hashtable(); + data1.put("importCert", "true"); + data1.put("requestId", mRID); +*/ + + startProgressStatus(); + boolean ready = send(mHost, Integer.parseInt(mPort), "/checkRequest", + rawData1, wizardInfo); + + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + return ready; + } + String certS= wizardInfo.getPKCS10(); + // Break the long single line:header,64 byte lines,trailer + // Assuming this is the only format we generate. + String CERT_NEW_HEADER = "-----BEGIN CERTIFICATE-----"; + String CERT_NEW_TRAILER = "-----END CERTIFICATE-----"; + String str = CERT_NEW_HEADER + "\n"; + int len = certS.length(); + for (int i = 0; i < len; i=i+64){ + if (i+64 < len) + str = str + certS.substring(i,i+64) +"\n"; + else + str = str + certS.substring(i,len) +"\n"; + } + str = str + CERT_NEW_TRAILER; + certS = str; + rawData = rawData+"&"+Constants.PR_PKCS10+"="+certS; + wizardInfo.setPKCS10(certS); + wizardInfo.setCertFilePath(""); + } + + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + introLbl = createTextArea(mResource.getString( + mPanelName+"_LABEL_INTRO_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(introLbl, gbc); + + mFileBtn = makeJRadioButton("FILE", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mFileBtn, gbc); + + mFileText = makeJTextField(50); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, COMPONENT_SPACE, 0); + add(mFileText, gbc); + mActiveColor = mFileText.getBackground(); + + mBase64Btn = makeJRadioButton("BASE64", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mBase64Btn, gbc); + + JTextArea desc = createTextArea(mResource.getString( + "PASTECERTWIZARD_TEXT_DESC_LABEL")); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,4*COMPONENT_SPACE,0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + mBase64Text = new JTextArea(null, null, 6, 10); + JScrollPane scrollPane = new JScrollPane(mBase64Text, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane.setPreferredSize(new Dimension(30, 50)); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.5; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.fill = gbc.BOTH; + gbc.gridwidth = gbc.REMAINDER; + add(scrollPane, gbc); + + mPaste = makeJButton("PASTE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mPaste, gbc); + + JLabel dummy = new JLabel(" "); + gbc.gridwidth = gbc.REMAINDER; + gbc.anchor = gbc.NORTHWEST; + gbc.weighty = 1.0; + gbc.fill = gbc.BOTH; + add(dummy, gbc); + + mQueryBtn = makeJRadioButton("QUERY", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mQueryBtn, gbc); + + mQueryText = new JLabel(mResource.getString( + mPanelName + "_TEXT_QUERY_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mQueryText, gbc); + + mHostLbl = makeJLabel("HOST"); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mHostLbl, gbc); + + mHostText = makeJTextField(23); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mHostText, gbc); + mActiveColor = mHostText.getBackground(); + + mPortLbl = makeJLabel("PORT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mPortLbl, gbc); + + mPortText = makeJTextField(23); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mPortText, gbc); + + mSSLText = new JLabel(mResource.getString( + mPanelName+"_TEXT_SSL_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + //gbc.gridwidth = gbc.REMAINDER; + add(mSSLText, gbc); + + mSSL = makeJCheckBox("SSL", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSSL, gbc); + + mRIDLbl = makeJLabel("RID"); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mRIDLbl, gbc); + + mRIDText = makeJTextField(23); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mRIDText, gbc); + + JLabel label = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(label, gbc); + + ButtonGroup buttonGrp = new ButtonGroup(); + buttonGrp.add(mFileBtn); + buttonGrp.add(mBase64Btn); + buttonGrp.add(mQueryBtn); + + enableFields(mFileText, true, mActiveColor); + enableFields(mBase64Text, false, getBackground()); + enableFields(false,getBackground()); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mPaste)) { + mBase64Text.paste(); + } else if (e.getSource().equals(mFileBtn)) { + enableFields(mFileText, true, mActiveColor); + enableFields(mBase64Text, false, getBackground()); + enableFields(false, getBackground()); + } else if (e.getSource().equals(mBase64Btn)) { + enableFields(mFileText, false, getBackground()); + enableFields(mBase64Text, true, mActiveColor); + enableFields(false, getBackground()); + } else if (e.getSource().equals(mQueryBtn)) { + enableFields(mFileText, false, getBackground()); + enableFields(mBase64Text, false, getBackground()); + enableFields(true, mActiveColor); + } + } + + private void enableFields(JTextComponent comp1, boolean enable, Color color) { + comp1.setEnabled(enable); + comp1.setEditable(enable); + comp1.setBackground(color); + CMSAdminUtil.repaintComp(comp1); + } + + protected void enableFields(boolean enabled, Color color) { + mQueryText.setEnabled(enabled); + //mQueryText.setEditable(enabled); + CMSAdminUtil.repaintComp(mQueryText); + mHostLbl.setEnabled(enabled); + mPortLbl.setEnabled(enabled); + mRIDLbl.setEnabled(enabled); + mHostText.setEnabled(enabled); + mHostText.setEditable(enabled); + mHostText.setBackground(color); + mPortText.setEnabled(enabled); + mPortText.setEditable(enabled); + mPortText.setBackground(color); + mRIDText.setEnabled(enabled); + mRIDText.setEditable(enabled); + mRIDText.setBackground(color); + CMSAdminUtil.repaintComp(mHostLbl); + CMSAdminUtil.repaintComp(mHostText); + CMSAdminUtil.repaintComp(mPortLbl); + CMSAdminUtil.repaintComp(mPortText); + CMSAdminUtil.repaintComp(mRIDLbl); + CMSAdminUtil.repaintComp(mRIDText); + mSSLText.setEnabled(enabled); + //mSSLText.setEditable(enabled); + CMSAdminUtil.repaintComp(mSSLText); + mSSL.setEnabled(enabled); + //mSSL.setEditable(enabled); + //mSSL.setBackground(color); + CMSAdminUtil.repaintComp(mSSL); + + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteKRACertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteKRACertPage.java new file mode 100644 index 000000000..7166d64bf --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteKRACertPage.java @@ -0,0 +1,68 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; + +/** + * The panel asks the user to paste the certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIPasteKRACertPage extends WIPasteCertPage { + private static final String PANELNAME = "INSTALLPASTEKRACERTWIZARD"; + private static final String KRAHELPINDEX = "install-kracert-paste-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakra-kracert-paste-wizard-help"; + private static final String CAKRAHELPINDEX = "install-cakra-kracert-paste-wizard-help"; + + WIPasteKRACertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIPasteKRACertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isKRACloningDone()) + return false; + if (wizardInfo.isKRACertLocalCA() || !wizardInfo.isInstallCertNow() || + !wizardInfo.isKRAInstalled() || wizardInfo.isKRACertInstalledDone()) + return false; + + wizardInfo.setCertType(Constants.PR_KRA_TRANSPORT_CERT); + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = CAKRAHELPINDEX; + else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = KRAHELPINDEX; + + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteOCSPCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteOCSPCertPage.java new file mode 100644 index 000000000..783d87da7 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteOCSPCertPage.java @@ -0,0 +1,63 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; +import com.netscape.management.client.util.*; + +/** + * The panel asks the user to paste the certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIPasteOCSPCertPage extends WIPasteCertPage { + + private static final String PANELNAME = "INSTALLPASTEOCSPCERTWIZARD"; + private static final String OCSPHELPINDEX = "install-ocspcert-paste-wizard-help"; + + WIPasteOCSPCertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIPasteOCSPCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (wizardInfo.isCloning() && wizardInfo.isOCSPCloningDone()) + return false; + if (wizardInfo.isOCSPCertLocalCA() || !wizardInfo.isInstallCertNow() + || !wizardInfo.isOCSPInstalled() || wizardInfo.isOCSPCertInstalledDone()) + return false; + + wizardInfo.setCertType(Constants.PR_OCSP_SIGNING_CERT); + + mHelpIndex = OCSPHELPINDEX; + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteRACertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteRACertPage.java new file mode 100644 index 000000000..584c375d4 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteRACertPage.java @@ -0,0 +1,64 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; + +/** + * The panel asks the user to paste the certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIPasteRACertPage extends WIPasteCertPage { + private static final String PANELNAME = "INSTALLPASTERACERTWIZARD"; + private static final String RAHELPINDEX = "install-racert-paste-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-paste-wizard-help"; + + WIPasteRACertPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIPasteRACertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + if (wizardInfo.isRACertLocalCA() || !wizardInfo.isInstallCertNow() + || !wizardInfo.isRAInstalled() || wizardInfo.isRACertInstalledDone()) + return false; + + wizardInfo.setCertType(Constants.PR_RA_SIGNING_CERT); + + if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteSSLCertPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteSSLCertPage.java new file mode 100644 index 000000000..bf133bc15 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteSSLCertPage.java @@ -0,0 +1,60 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; + +/** + * The panel asks the user to paste the certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIPasteSSLCertPage extends WIPasteCertPage { + private static final String PANELNAME = "INSTALLPASTESSLCERTWIZARD"; + private static final String HELPINDEX = "install-sslcert-paste-wizard-help"; + + WIPasteSSLCertPage(JDialog parent) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + } + + WIPasteSSLCertPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isSSLCertLocalCA() || !wizardInfo.isInstallCertNow() || + wizardInfo.isMigrationEnable() || wizardInfo.isSSLCertInstalledDone()) + return false; + + wizardInfo.setCertType(Constants.PR_SERVER_CERT); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertDNPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertDNPage.java new file mode 100644 index 000000000..788fab869 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertDNPage.java @@ -0,0 +1,86 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; + +/** + * Subject DN page for RA signing certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIRACertDNPage extends WICertDNPage { + private static final String PANELNAME = "INSTALLRACERTDNWIZARD"; + private static final String RAHELPINDEX = "install-racert-subjectdn-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-subjectdn-wizard-help"; + + WIRACertDNPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIRACertDNPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + if (!wizardInfo.isRAInstalled() || wizardInfo.isRALocalCertDone() || + wizardInfo.isRACertRequestDone() || wizardInfo.isRACertInstalledDone()) + return false; + String str = wizardInfo.getRASubjectName(); + if (str == null || str.equals("")) + str = RA_CN+", "+RA_C; + wizardInfo.setRASubjectName(str); + populateDN(str); + if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (super.concludePanel(info)) { + wizardInfo.setRASubjectName(mStr); + return true; + } + + return false; + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String str = mOText.getText().trim(); + wizardInfo.setRAOComp(str); + str = mCText.getText().trim(); + wizardInfo.setRACComp(str); + } + +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertExtensionPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertExtensionPage.java new file mode 100644 index 000000000..85553c5c7 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertExtensionPage.java @@ -0,0 +1,75 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.border.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Certificate Extension page for RA signing Certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIRACertExtensionPage extends WICertExtensionPage { + private static final String PANELNAME = "INSTALLRACERTEXTENSION1WIZARD"; + private static final String RAHELPINDEX = "install-racert-extension-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-extension-wizard-help"; + + WIRACertExtensionPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIRACertExtensionPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + if (!wizardInfo.isRAInstalled() || + wizardInfo.isRALocalCertDone() || wizardInfo.isRACertRequestDone() || + wizardInfo.isRACertInstalledDone()) + return false; + + if (!mModified) { + mAKICheckBox.setSelected(true); + mExtendedKeyCheckBox.setSelected(true); + mSSLClient.setSelected(true); + } + + if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + + return super.initializePanel(info); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertSubmitPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertSubmitPage.java new file mode 100644 index 000000000..771aa51b3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertSubmitPage.java @@ -0,0 +1,76 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * RA Certificate Submission. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIRACertSubmitPage extends WICertSubmitPage implements IWizardPanel { + private static final String PANELNAME = "INSTALLRACERTWIZARD"; + private static final String RAHELPINDEX = "install-ratype-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakratype-wizard-help"; + + WIRACertSubmitPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_RA_SIGNING_CERT); + if (!wizardInfo.isRAInstalled() || + wizardInfo.isRACertRequestDone() || wizardInfo.isRACertInstalledDone() || + !wizardInfo.isCAInstalled()) { + wizardInfo.setRACertLocalCA(Constants.FALSE); + return false; + } + if (wizardInfo.isRALocalCertDone()) + return false; + if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + return super.initializePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mSelfButton.isSelected()) + wizardInfo.setRACertLocalCA(Constants.TRUE); + else + wizardInfo.setRACertLocalCA(Constants.FALSE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertValidityPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertValidityPage.java new file mode 100644 index 000000000..fec7619df --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertValidityPage.java @@ -0,0 +1,74 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Validity page for RA signing certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIRACertValidityPage extends WICertValidityPage { + private static final String PANELNAME = "INSTALLRACERTVALIDWIZARD"; + private static final String RAHELPINDEX = "install-racert-validity-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakracert-validity-wizard-help"; + + WIRACertValidityPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIRACertValidityPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + if (!wizardInfo.isRAInstalled() || wizardInfo.isRALocalCertDone() || + wizardInfo.isRACertRequestDone() || wizardInfo.isRACertInstalledDone()) + return false; + if (super.initializePanel(info)) { + if (!wizardInfo.isRACertLocalCA()) + return false; + + if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + + return true; + } + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRAKeyPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRAKeyPage.java new file mode 100644 index 000000000..9abb9e0ac --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRAKeyPage.java @@ -0,0 +1,94 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Setup key information for RA signing certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIRAKeyPage extends WIKeyPage implements IWizardPanel { + private static final String PANELNAME = "INSTALLRAKEYWIZARD"; + private static final String RAHELPINDEX = + "install-rakey-configuration-wizard-help"; + private static final String RAKRAHELPINDEX = + "install-rakrakey-configuration-wizard-help"; + + WIRAKeyPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIRAKeyPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + mWizardInfo = (InstallWizardInfo)info; + + if (mWizardInfo.isCloning() && mWizardInfo.isRACloningDone()) + return false; + + if (!mWizardInfo.isRAInstalled() || mWizardInfo.isRALocalCertDone() || + mWizardInfo.isRACertRequestDone() || mWizardInfo.isRACertInstalledDone()) + return false; + + if (super.initializePanel(info)) { + String raTokenName = mWizardInfo.getRATokenName(); + if (raTokenName == null || raTokenName.equals("")) { + mTokenBox.setSelectedIndex(0); + } else { + if (raTokenName.equals(Constants.PR_INTERNAL_TOKEN_NAME)) + mTokenBox.setSelectedIndex(0); + else + mTokenBox.setSelectedItem(raTokenName); + } + } + + if (mWizardInfo.isRAInstalled() && mWizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + + enableFields(); + mIsCAKey = false; + return true; + } + + public void getUpdateInfo(WizardInfo info) { + super.getUpdateInfo(info); + mWizardInfo.setRATokenName(mWizardInfo.getTokenName()); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRAMessageDigestPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRAMessageDigestPage.java new file mode 100644 index 000000000..ef843ba37 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRAMessageDigestPage.java @@ -0,0 +1,79 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Setup the message digest information for the installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIRAMessageDigestPage extends WMessageDigestPage { + + private static final String PANELNAME = "INSTALLRAMESSAGEDIGESTWIZARD"; + + WIRAMessageDigestPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIRAMessageDigestPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) + return false; + if (!wizardInfo.isRAInstalled() || !wizardInfo.isRACertLocalCA() || + wizardInfo.isRALocalCertDone() || wizardInfo.isRACertRequestDone() || + wizardInfo.isRACertInstalledDone()) + return false; + + mCAKeyType = wizardInfo.getCAKeyType(); + + return super.initializePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mDSAHashTypeBox.isVisible()) + wizardInfo.setHashType((String)mDSAHashTypeBox.getSelectedItem()); + else + wizardInfo.setHashType((String)mRSAHashTypeBox.getSelectedItem()); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRARequestResultPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRARequestResultPage.java new file mode 100644 index 000000000..36c81b7d9 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRARequestResultPage.java @@ -0,0 +1,58 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Display the RA signing certificate request result + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIRARequestResultPage extends WIRequestResultPage { + + WIRARequestResultPage(JDialog parent) { + super(parent); + } + + WIRARequestResultPage(JDialog parent, JFrame adminFrame) { + super( parent, adminFrame); + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isRACertLocalCA() || !wizardInfo.isRAInstalled() || + wizardInfo.isRALocalCertDone() || + (wizardInfo.isRACertRequestSucc() && wizardInfo.isRAReqResultDisplayed()) || + wizardInfo.isRACertInstalledDone()) + return false; + + wizardInfo.setRAReqResultDisplayed(Constants.TRUE); + return super.initializePanel(info); + } +} + + + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRATokenLogonPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRATokenLogonPage.java new file mode 100644 index 000000000..d6f9dbafe --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRATokenLogonPage.java @@ -0,0 +1,75 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the information of the current internal database. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIRATokenLogonPage extends WITokenLogonPage implements IWizardPanel { + + private static final String HELPINDEX = "install-ratoken-logon-wizard-help"; + private static final String PANELNAME = "RATOKENLOGONWIZARD"; + + WIRATokenLogonPage(JDialog dialog) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = dialog; + } + + WIRATokenLogonPage(JDialog dialog, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = dialog; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String tokenname = wizardInfo.getRATokenName(); + String pwd = (String)wizardInfo.get("TOKEN:"+tokenname); + if (wizardInfo.isCloning() && wizardInfo.isRACloningDone()) { + if (pwd != null && !pwd.equals("")) + return false; + } + + if (wizardInfo.isRACertLocalCA() || !wizardInfo.isInstallCertNow() + || !wizardInfo.isRAInstalled() || wizardInfo.isRACertInstalledDone()) + return false; + if (pwd != null) + return false; + + mTokenText.setText(tokenname); + mTokenName = tokenname; + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRecreateDBPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRecreateDBPage.java new file mode 100644 index 000000000..f07de3134 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRecreateDBPage.java @@ -0,0 +1,139 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIRecreateDBPage extends WizardBasePanel implements IWizardPanel { + protected JRadioButton mYes; + protected JRadioButton mNo; + protected JTextArea mLabel; + private static final String PANELNAME = "INSTALLDBAGAIN"; + private static final String HELPINDEX = + "install-internaldb-createdbagain-help"; + + WIRecreateDBPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIRecreateDBPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isDBCreated()) { + setBorder(makeTitledBorder(PANELNAME)); + return true; + } + + return false; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + mLabel = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mLabel, gbc); + + mYes = makeJRadioButton("YES", false); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mYes, gbc); + + mNo = makeJRadioButton("NO", true); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mNo, gbc); + + ButtonGroup buttonGroup = new ButtonGroup(); + buttonGroup.add(mYes); + buttonGroup.add(mNo); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mYes.isSelected()) { + wizardInfo.setDBCreateNow(ConfigConstants.TRUE); + } else { + wizardInfo.setDBCreateNow(ConfigConstants.FALSE); + } + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteCASubsystem.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteCASubsystem.java new file mode 100644 index 000000000..890c8ce4b --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteCASubsystem.java @@ -0,0 +1,291 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.certsrv.common.*; +import javax.swing.*; +import java.awt.*; +import java.util.*; + +/** + * Remote subsystems. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ + +class WIRemoteCASubsystem extends WizardBasePanel implements IWizardPanel { + protected JTextField mHostText; + protected JTextField mPortText; + protected JTextField mTimeoutText; + protected String mHost; + protected String mPort; + protected String mTimeout; + private String mHelpIndex; + public static final int MAX_PORT = 65535; + public static final int MIN_PORT = 1; + private static final String PANELNAME = "REMOTECAWIZARD"; + private static final String RAHELPINDEX = "install-remote-ca-wizard-help"; + private static final String RAKRAHELPINDEX = "install-rakra-remote-ca-wizard-help"; + + WIRemoteCASubsystem(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIRemoteCASubsystem(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isServicesDone()) + return false; + if (wizardInfo.isRAInstalled() && !wizardInfo.isCAInstalled()) { + setBorder(makeTitledBorder(PANELNAME)); + if (wizardInfo.isKRAInstalled()) + mHelpIndex = RAKRAHELPINDEX; + else + mHelpIndex = RAHELPINDEX; + + return true; + } + + return false; + } + + public boolean validatePanel() { + mHost = mHostText.getText().trim(); + mPort = mPortText.getText().trim(); + mTimeout = mTimeoutText.getText().trim(); + if (mHost.equals("")) { + setErrorMessage("BLANKHOST"); + return false; + } + if (mPort.equals("")) { + setErrorMessage("BLANKPORT"); + return false; + } + if (mTimeout.equals("")) { + setErrorMessage("BLANKTIMEOUT"); + return false; + } + + try { + int portnumber = Integer.parseInt(mPort); + if (portnumber < MIN_PORT || portnumber > MAX_PORT) { + setErrorMessage("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("INVALIDPORT"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.setCMHost(mHost); + wizardInfo.setCMPort(mPort); + wizardInfo.setCMTimeout(mTimeout); + + if ((wizardInfo.isCAInstalled() || wizardInfo.isRAInstalled()) + && !wizardInfo.isKRAInstalled()) { + return true; + } + + ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(wizardInfo); + Hashtable data = new Hashtable(); + + data.put(ConfigConstants.TASKID,TaskId.TASK_SELECT_SUBSYSTEMS); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + data.put(ConfigConstants.PR_CERT_INSTANCE_NAME, + consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME)); + if (wizardInfo.getDBBindDN() != null) + data.put(ConfigConstants.PR_DB_BINDDN, wizardInfo.getDBBindDN()); + if (wizardInfo.getInternalDBPasswd() != null) + data.put(ConfigConstants.PR_DB_PWD, wizardInfo.getInternalDBPasswd()); + if (wizardInfo.isCAInstalled()) + data.put(ConfigConstants.PR_CA, ConfigConstants.TRUE); + else + data.put(ConfigConstants.PR_CA, ConfigConstants.FALSE); + + if (wizardInfo.isRAInstalled()) + data.put(ConfigConstants.PR_RA, ConfigConstants.TRUE); + else + data.put(ConfigConstants.PR_RA, ConfigConstants.FALSE); + + if (wizardInfo.isKRAInstalled()) + data.put(ConfigConstants.PR_KRA, ConfigConstants.TRUE); + else + data.put(ConfigConstants.PR_KRA, ConfigConstants.FALSE); + + String services = ""; + if (wizardInfo.isCAInstalled()) { + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_CA; + } + if (wizardInfo.isRAInstalled()) { + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_RA; + //data.put(ConfigConstants.CA_HOST, wizardInfo.getCMHost()); + //data.put(ConfigConstants.CA_PORT, wizardInfo.getCMPort()); + } + if (wizardInfo.isKRAInstalled()) { + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_KRA; + } + data.put(ConfigConstants.PR_SUBSYSTEMS, services); + data.put(ConfigConstants.REMOTE_KRA_ENABLED, ConfigConstants.FALSE); + data.put(ConfigConstants.CA_HOST, wizardInfo.getCMHost()); + data.put(ConfigConstants.CA_PORT, wizardInfo.getCMPort()); + data.put(ConfigConstants.CA_TIMEOUT, wizardInfo.getCMTimeout()); + wizardInfo.enableRemoteDRM(ConfigConstants.FALSE); + wizardInfo.setSubsystems(services); + startProgressStatus(); + + CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CONFIGDB"); + + boolean ready = configCertCgi.configCert(data); + + dlg.setVisible(false); + + endProgressStatus(); + + if (!ready) { + String str = configCertCgi.getErrorMessage(); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea heading = createTextArea(mResource.getString( + "REMOTECAWIZARD_TEXT_HEADING_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading, gbc); + + JLabel hostLbl = makeJLabel("HOST"); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + add(hostLbl, gbc); + + mHostText = makeJTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mHostText, gbc); + + JLabel portLbl = makeJLabel("PORT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(portLbl, gbc); + + mPortText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPortText, gbc); + + JLabel timeoutLbl = makeJLabel("TIMEOUT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + add(timeoutLbl, gbc); + + mTimeoutText = makeJTextField("30", 10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mTimeoutText, gbc); + + /*JLabel timeunitLbl = makeJLabel("TIMEUNIT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + add(timeunitLbl, gbc); + */ + + JLabel label = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(label, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteKRASubsystem.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteKRASubsystem.java new file mode 100644 index 000000000..29beb04af --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteKRASubsystem.java @@ -0,0 +1,371 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import javax.swing.*; +import java.awt.*; +import java.util.*; +import java.awt.event.*; + +/** + * Remote subsystems. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ + +class WIRemoteKRASubsystem extends WizardBasePanel implements IWizardPanel { + protected JTextField mHostText, mPortText, mTimeoutText; + protected JLabel mHostLbl, mPortLbl, mTimeoutLbl, mTimeunitLbl; + protected JRadioButton mYes, mNo; + protected String mHost, mPort, mTimeout; + protected JTextArea mHeading; + protected Color mActiveColor; + public static final int MAX_PORT = 65535; + public static final int MIN_PORT = 1; + private static final String PANELNAME = "REMOTEKRAWIZARD"; + private static final String HELPINDEX1 = "install-ca-remote-kra-wizard-help"; + private static final String HELPINDEX2 = "install-ra-remote-kra-wizard-help"; + private InstallWizardInfo mWizardInfo; + + WIRemoteKRASubsystem(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIRemoteKRASubsystem(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + mWizardInfo = wizardInfo; + if (wizardInfo.isServicesDone()) + return false; + if ((wizardInfo.isCAInstalled() || wizardInfo.isRAInstalled()) + && !wizardInfo.isKRAInstalled()) { + setBorder(makeTitledBorder(PANELNAME)); + if (mYes.isSelected()) + enableFields(true, mActiveColor); + else + enableFields(false, getBackground()); + return true; + } + return false; + } + + public boolean validatePanel() { + if (mNo.isSelected()) { + mHost = ""; + mPort = ""; + mTimeout = ""; + return true; + } + + mHost = mHostText.getText().trim(); + mPort = mPortText.getText().trim(); + mTimeout = mTimeoutText.getText().trim(); + if (mHost.equals("")) { + setErrorMessage("BLANKHOST"); + return false; + } + if (mPort.equals("")) { + setErrorMessage("BLANKPORT"); + return false; + } + if (mTimeout.equals("")) { + setErrorMessage("BLANKTIMEOUT"); + return false; + } + + try { + int portnumber = Integer.parseInt(mPort); + if (portnumber < MIN_PORT || portnumber > MAX_PORT) { + setErrorMessage("OUTOFRANGE"); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("INVALIDPORT"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.setDRMHost(mHost); + wizardInfo.setDRMPort(mPort); + wizardInfo.setDRMTimeout(mTimeout); + ConsoleInfo consoleInfo = wizardInfo.getAdminConsoleInfo(); + CMSConfigCert configCertCgi = new CMSConfigCert(); + configCertCgi.initialize(wizardInfo); + Hashtable data = new Hashtable(); + data.put(ConfigConstants.TASKID,TaskId.TASK_SELECT_SUBSYSTEMS); + data.put(ConfigConstants.OPTYPE, OpDef.OP_MODIFY); + data.put(ConfigConstants.PR_CERT_INSTANCE_NAME, + consoleInfo.get(ConfigConstants.PR_CERT_INSTANCE_NAME)); + if (wizardInfo.getDBBindDN() != null) + data.put(ConfigConstants.PR_DB_BINDDN, wizardInfo.getDBBindDN()); + if (wizardInfo.getInternalDBPasswd() != null) + data.put(ConfigConstants.PR_DB_PWD, wizardInfo.getInternalDBPasswd()); + + if (wizardInfo.isCAInstalled()) + data.put(ConfigConstants.PR_CA, ConfigConstants.TRUE); + else + data.put(ConfigConstants.PR_CA, ConfigConstants.FALSE); + + if (wizardInfo.isRAInstalled()) + data.put(ConfigConstants.PR_RA, ConfigConstants.TRUE); + else + data.put(ConfigConstants.PR_RA, ConfigConstants.FALSE); + + if (wizardInfo.isKRAInstalled()) + data.put(ConfigConstants.PR_KRA, ConfigConstants.TRUE); + else + data.put(ConfigConstants.PR_KRA, ConfigConstants.FALSE); + + String services = ""; + if (wizardInfo.isCAInstalled()) { + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_CA; + } else { + data.put(ConfigConstants.CA_HOST, wizardInfo.getCMHost()); + data.put(ConfigConstants.CA_PORT, wizardInfo.getCMPort()); + data.put(ConfigConstants.CA_TIMEOUT, wizardInfo.getCMTimeout()); + } + + if (wizardInfo.isRAInstalled()) { + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_RA; + } + if (wizardInfo.isKRAInstalled()) { + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_KRA; + } else { + // connect to the remote KRA subystem + if (mYes.isSelected()) { + data.put(ConfigConstants.KRA_HOST, wizardInfo.getDRMHost()); + data.put(ConfigConstants.KRA_PORT, wizardInfo.getDRMPort()); + data.put(ConfigConstants.KRA_TIMEOUT, wizardInfo.getDRMTimeout()); + data.put(ConfigConstants.REMOTE_KRA_ENABLED, + ConfigConstants.TRUE); + wizardInfo.enableRemoteDRM(ConfigConstants.TRUE); + } else { + data.put(ConfigConstants.REMOTE_KRA_ENABLED, + ConfigConstants.FALSE); + wizardInfo.enableRemoteDRM(ConfigConstants.FALSE); + } + } + + data.put(ConfigConstants.PR_SUBSYSTEMS, services); + wizardInfo.setSubsystems(services); + startProgressStatus(); + CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CONFIGDB"); + boolean ready = configCertCgi.configCert(data); + dlg.setVisible(false); + + endProgressStatus(); + + if (!ready) { + String str = configCertCgi.getErrorMessage(); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + if (mWizardInfo.isCAInstalled()) { + CMSAdminUtil.help(HELPINDEX1); + } else { + CMSAdminUtil.help(HELPINDEX2); + } + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea heading = createTextArea(mResource.getString( + "REMOTEKRAWIZARD_TEXT_ISREMOTEKRA_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(heading, gbc); + + mNo = makeJRadioButton("NO", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mNo, gbc); + + mYes = makeJRadioButton("YES", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mYes, gbc); + + ButtonGroup btnGroup = new ButtonGroup(); + btnGroup.add(mNo); + btnGroup.add(mYes); + + mHeading = createTextArea(mResource.getString( + "REMOTEKRAWIZARD_TEXT_HEADING_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0,4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mHeading, gbc); + + mHostLbl = makeJLabel("HOST"); + CMSAdminUtil.resetGBC(gbc); + gbc.fill = gbc.NONE; + gbc.anchor = gbc.EAST; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + add(mHostLbl, gbc); + + mHostText = makeJTextField(30); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mHostText, gbc); + mActiveColor = mHostText.getBackground(); + + mPortLbl = makeJLabel("PORT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + add(mPortLbl, gbc); + + mPortText = makeJTextField(10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPortText, gbc); + + mTimeoutLbl = makeJLabel("TIMEOUT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.EAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + add(mTimeoutLbl, gbc); + + mTimeoutText = makeJTextField("30", 10); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mTimeoutText, gbc); + + /*mTimeunitLbl = makeJLabel("TIMEUNIT"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, + COMPONENT_SPACE); + add(mTimeunitLbl, gbc); + */ + + JLabel label = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(label, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void actionPerformed(ActionEvent e) { + if (mYes.isSelected()) { + enableFields(true, mActiveColor); + } else { + enableFields(false, getBackground()); + } + } + + private void enableFields(boolean enabled, Color color) { + mHeading.setEnabled(enabled); + mHostLbl.setEnabled(enabled); + mPortLbl.setEnabled(enabled); + mTimeoutLbl.setEnabled(enabled); + mHostText.setEnabled(enabled); + mHostText.setEditable(enabled); + mHostText.setBackground(color); + mPortText.setEnabled(enabled); + mPortText.setEditable(enabled); + mPortText.setBackground(color); + mTimeoutText.setEnabled(enabled); + mTimeoutText.setEditable(enabled); + mTimeoutText.setBackground(color); + CMSAdminUtil.repaintComp(mHeading); + CMSAdminUtil.repaintComp(mHostLbl); + CMSAdminUtil.repaintComp(mHostText); + CMSAdminUtil.repaintComp(mPortLbl); + CMSAdminUtil.repaintComp(mPortText); + CMSAdminUtil.repaintComp(mTimeoutLbl); + CMSAdminUtil.repaintComp(mTimeoutText); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIReplAgreementPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIReplAgreementPage.java new file mode 100644 index 000000000..df9bb1ab0 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIReplAgreementPage.java @@ -0,0 +1,417 @@ +// --- 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.config.install; + +import java.awt.event.*; +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Replication Agreeemnt + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIReplAgreementPage extends WizardBasePanel implements IWizardPanel { + private Color mActiveColor; + private JCheckBox mEnable; + private JTextField mAgreementText1, mAgreementText2; + private JPasswordField mManagerPwd1, mManagerPwdAgain1; + private JPasswordField mManagerPwd2, mManagerPwdAgain2; + + private static final String PANELNAME = "REPLDBWIZARD"; + private static final String HELPINDEX = + "install-internaldb-configuration-wizard-help"; + private static final String EMPTYSTR = " "; + + WIReplAgreementPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIReplAgreementPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mEnable)) { + enableAgreement(mEnable.isSelected()); + } + } + + private void enableAgreement(boolean e) { + Color c; + if (e) { + c = mActiveColor; + } else { + c = getBackground(); + } + mAgreementText1.setEditable(e); + mAgreementText1.setEnabled(e); + mAgreementText1.setBackground(c); + mManagerPwd1.setEditable(e); + mManagerPwd1.setEnabled(e); + mManagerPwd1.setBackground(c); + mManagerPwdAgain1.setEditable(e); + mManagerPwdAgain1.setEnabled(e); + mManagerPwdAgain1.setBackground(c); + mAgreementText2.setEditable(e); + mAgreementText2.setEnabled(e); + mAgreementText2.setBackground(c); + mManagerPwd2.setEditable(e); + mManagerPwd2.setEnabled(e); + mManagerPwd2.setBackground(c); + mManagerPwdAgain2.setEditable(e); + mManagerPwdAgain2.setEnabled(e); + mManagerPwdAgain2.setBackground(c); + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (!wizardInfo.isCloneDBCreated()) + return false; + + if (wizardInfo.isCloning() && !wizardInfo.isAgreementDone()) { + setBorder(makeTitledBorder(PANELNAME)); + mAgreementText1.setText("masterToconsumer"); + mAgreementText2.setText("consumerTomaster"); + return true; + } + return false; + } + + public boolean validatePanel() { + if (!mEnable.isSelected()) + return true; + String passwd1 = mManagerPwd1.getText().trim(); + String passwdAgain1 = mManagerPwdAgain1.getText().trim(); + String name1 = mAgreementText1.getText().trim(); + + if (passwd1.equals("") || passwdAgain1.equals("")) { + setErrorMessage("EMPTYPASSWORD"); + return false; + } + + if (!passwdAgain1.equals(passwd1)) { + setErrorMessage("NOTSAMEPASSWORD"); + return false; + } + + if (name1.equals("")) { + setErrorMessage("EMPTYNAME"); + return false; + } + + String passwd2 = mManagerPwd2.getText().trim(); + String passwdAgain2 = mManagerPwdAgain2.getText().trim(); + String name2 = mAgreementText2.getText().trim(); + + if (passwd2.equals("") || passwdAgain2.equals("")) { + setErrorMessage("EMPTYPASSWORD"); + return false; + } + + if (!passwdAgain2.equals(passwd2)) { + setErrorMessage("NOTSAMEPASSWORD"); + return false; + } + + if (name2.equals("")) { + setErrorMessage("EMPTYNAME"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_CREATE_REPLICATION_AGREEMENT; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + boolean ready = false; + if (!mEnable.isSelected()) { + rawData = rawData+"&"+ConfigConstants.PR_ENABLE_REPLICATION+"="+ + ConfigConstants.FALSE; + ready = send(rawData, wizardInfo); + } else { + rawData = rawData+"&"+ConfigConstants.PR_ENABLE_REPLICATION+"="+ + ConfigConstants.TRUE; + rawData = rawData+"&"+ConfigConstants.PR_AGREEMENT_NAME_1+"="+ + mAgreementText1.getText().trim(); + rawData = rawData+"&"+ConfigConstants.PR_REPLICATION_MANAGER_PASSWD_1+"="+mManagerPwd1.getText().trim(); + rawData = rawData+"&"+ConfigConstants.PR_AGREEMENT_NAME_2+"="+mAgreementText2.getText().trim(); + rawData = rawData+"&"+ConfigConstants.PR_REPLICATION_MANAGER_PASSWD_2+"="+mManagerPwd2.getText().trim(); + + startProgressStatus(); +/* + CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, + "CGITASK", "CREATEREPLICATIONAGREEMENT"); +*/ + ready = send(rawData, wizardInfo); + // dlg.setVisible(false); + endProgressStatus(); + } + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + CMSAdminUtil.resetGBC(gbc); + mEnable = makeJCheckBox("ENABLE"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mEnable, gbc); + mEnable.setSelected(true); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc1 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_MASTER1_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc1, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel passwdLbl1 = makeJLabel("PASSWORD"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(passwdLbl1, gbc); + + CMSAdminUtil.resetGBC(gbc); + mManagerPwd1 = makeJPasswordField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mManagerPwd1, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel passwdAgainLbl1 = makeJLabel("PASSWORDAGAIN"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(passwdAgainLbl1, gbc); + + CMSAdminUtil.resetGBC(gbc); + mManagerPwdAgain1 = makeJPasswordField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mManagerPwdAgain1, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel desc2 = makeJLabel("MASTER2"); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc2, gbc); +/* + JTextArea desc2 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_MASTER2_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc2, gbc); +*/ + + CMSAdminUtil.resetGBC(gbc); + JLabel passwdLbl2 = makeJLabel("PASSWORD"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(passwdLbl2, gbc); + + CMSAdminUtil.resetGBC(gbc); + mManagerPwd2 = makeJPasswordField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mManagerPwd2, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel passwdAgainLbl2 = makeJLabel("PASSWORDAGAIN"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(passwdAgainLbl2, gbc); + + CMSAdminUtil.resetGBC(gbc); + mManagerPwdAgain2 = makeJPasswordField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mManagerPwdAgain2, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc3 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_AGREEMENT_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(2*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc3, gbc); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc4 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_AGREEMENT1_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc4, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel agreementLbl1 = makeJLabel("NAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(agreementLbl1, gbc); + + CMSAdminUtil.resetGBC(gbc); + mAgreementText1 = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mAgreementText1, gbc); + mActiveColor = mAgreementText1.getBackground(); + + CMSAdminUtil.resetGBC(gbc); + JTextArea desc5 = createTextArea(mResource.getString( + PANELNAME+"_TEXT_AGREEMENT2_LABEL")); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc5, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel agreementLbl2 = makeJLabel("NAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(agreementLbl2, gbc); + + CMSAdminUtil.resetGBC(gbc); + mAgreementText2 = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + //gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mAgreementText2, gbc); + mActiveColor = mAgreementText2.getBackground(); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.setAgreementDone(ConfigConstants.TRUE); + if (!mEnable.isSelected()) + wizardInfo.setReplicationEnabled(ConfigConstants.FALSE); + else + wizardInfo.setReplicationEnabled(ConfigConstants.TRUE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIRequestResultPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIRequestResultPage.java new file mode 100644 index 000000000..e3f9c53f3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIRequestResultPage.java @@ -0,0 +1,148 @@ +// --- 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.config.install; + +import java.util.*; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.border.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.install.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.util.*; + +/** + * Certificate wizard request result page + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +public class WIRequestResultPage extends WizardBasePanel implements IWizardPanel { + private static final String PANELNAME = "REQUESTRESULTWIZARD"; + private static final String HELPINDEX = + "install-request-result-wizard-help"; + + protected String mPanelName = PANELNAME; + protected String mHelpIndex = HELPINDEX; + protected JTextArea mDesc; + protected boolean print2RequestIDs = false; + + protected String mRequestId; + + WIRequestResultPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIRequestResultPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (!wizardInfo.requestSent()) + return false; + + setBorder(makeTitledBorder(PANELNAME)); + + String status = wizardInfo.getX509RequestStatus(); + String str = wizardInfo.getX509RequestID(); + String error = wizardInfo.getX509RequestError(); + + if (str != null && !str.equals("")) { + if (status != null && status.equals(Constants.PR_REQUEST_REJECTED)) { + // rejected + mDesc.setText(mResource.getString(mPanelName+"_TEXT_REJECT_LABEL") + + error + "\n\n"+ mResource.getString(mPanelName+"_TEXT_ID_LABEL") + str + + mResource.getString(mPanelName+"_TEXT_REJECTEND_LABEL")); + } else { + mDesc.setText(mResource.getString(mPanelName+"_TEXT_DESC_LABEL") + + mResource.getString(mPanelName+"_TEXT_ID_LABEL") + str + + mResource.getString(mPanelName+"_TEXT_END_LABEL")); + } + } else if (error != null && !error.equals("")) + mDesc.setText(error); + else + mDesc.setText(mResource.getString(mPanelName+"_TEXT_DESC_LABEL") + + mResource.getString(mPanelName+"_TEXT_NOID_LABEL")); + + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + mDesc = createTextArea(mResource.getString( + mPanelName+"_TEXT_DESC_LABEL")); + //mDesc = createTextArea("request id"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mDesc, gbc); + + JLabel label = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(label, gbc); + + super.init(); + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + public void getUpdateInfo(WizardInfo info) { + } + + public void actionPerformed(ActionEvent event) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WISMTPPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WISMTPPage.java new file mode 100644 index 000000000..3b7ba9d00 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WISMTPPage.java @@ -0,0 +1,129 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * SMTP page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WISMTPPage extends WizardBasePanel implements IWizardPanel { + private JTextField mServerTxt, mPortTxt; + private static final String PANELNAME = "SMTPWIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + + WISMTPPage() { + super(PANELNAME); + init(); + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean isLastPage() { + return false; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + JLabel headingLbl = makeJLabel("HEADING"); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + add(headingLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel serverLbl = makeJLabel("SERVERNAME"); + gbc.anchor = gbc.NORTHEAST; + gbc.weightx = 0.0; + gbc.weighty = 0.0; + gbc.fill = gbc.NONE; + add(serverLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mServerTxt = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 0.0; + gbc.weighty = 0.0; + add(mServerTxt, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy2 = new JLabel(" "); + gbc.anchor = gbc.NORTHEAST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(dummy2, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel portLbl = makeJLabel("PORT"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + add(portLbl, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPortTxt = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 0.0; + gbc.weighty = 1.0; + add(mPortTxt, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel dummy3 = new JLabel(" "); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.gridwidth = gbc.REMAINDER; + add(dummy3, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WISSLMessageDigestPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WISSLMessageDigestPage.java new file mode 100644 index 000000000..820c17646 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WISSLMessageDigestPage.java @@ -0,0 +1,79 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Setup the message digest information for the installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WISSLMessageDigestPage extends WMessageDigestPage { + + private static final String PANELNAME = "INSTALLSSLMESSAGEDIGESTWIZARD"; + + WISSLMessageDigestPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WISSLMessageDigestPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isMigrationEnable() || !wizardInfo.isSSLCertLocalCA() || + wizardInfo.isSSLLocalCertDone() || wizardInfo.isSSLCertRequestDone() || + wizardInfo.isSSLCertInstalledDone()) + return false; + + mCAKeyType = wizardInfo.getCAKeyType(); + + return super.initializePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mDSAHashTypeBox.isVisible()) + wizardInfo.setHashType((String)mDSAHashTypeBox.getSelectedItem()); + else + wizardInfo.setHashType((String)mRSAHashTypeBox.getSelectedItem()); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WISSLRequestResultPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WISSLRequestResultPage.java new file mode 100644 index 000000000..119221105 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WISSLRequestResultPage.java @@ -0,0 +1,58 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Display the SSL certificate request result + * + * @author Michelle Zhao + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WISSLRequestResultPage extends WIRequestResultPage { + + WISSLRequestResultPage(JDialog parent) { + super(parent); + } + + WISSLRequestResultPage(JDialog parent, JFrame adminFrame) { + super( parent, adminFrame); + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isSSLCertLocalCA() || wizardInfo.isMigrationEnable() || + wizardInfo.isSSLLocalCertDone()|| + (wizardInfo.isSSLCertRequestSucc() && wizardInfo.isSSLReqResultDisplayed()) || + wizardInfo.isSSLCertInstalledDone()) + return false; + + wizardInfo.setSSLReqResultDisplayed(Constants.TRUE); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WISSLTokenLogonPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WISSLTokenLogonPage.java new file mode 100644 index 000000000..ff1ed7826 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WISSLTokenLogonPage.java @@ -0,0 +1,72 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the information of the current internal database. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WISSLTokenLogonPage extends WITokenLogonPage implements IWizardPanel { + + private static final String HELPINDEX = "install-ssltoken-logon-wizard-help"; + private static final String PANELNAME = "SSLTOKENLOGONWIZARD"; + + WISSLTokenLogonPage(JDialog dialog) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = dialog; + } + + WISSLTokenLogonPage(JDialog dialog, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = dialog; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String tokenname = wizardInfo.getSSLTokenName(); + String pwd = (String)wizardInfo.get("TOKEN:"+tokenname); + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isSSLCertLocalCA() || !wizardInfo.isInstallCertNow() || + wizardInfo.isMigrationEnable() || wizardInfo.isSSLCertInstalledDone()) + return false; + if (pwd != null) + return false; + + mTokenName = tokenname; + mTokenText.setText(tokenname); + return super.initializePanel(info); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertDNPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertDNPage.java new file mode 100644 index 000000000..b6ee85acc --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertDNPage.java @@ -0,0 +1,116 @@ +// --- 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.config.install; + +import com.netscape.admin.certsrv.wizard.*; +import javax.swing.*; + +/** + * Subject DN page for SSL server certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIServerCertDNPage extends WICertDNPage { + private static final String PANELNAME = "INSTALLSSLCERTDNWIZARD"; + private static final String LOCALHELPINDEX = "install-sslcertlocal-subjectdn-wizard-help"; + private static final String REMOTEHELPINDEX = "install-sslcertsub-subjectdn-wizard-help"; + + WIServerCertDNPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIServerCertDNPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isMigrationEnable() || wizardInfo.isSSLLocalCertDone() || + wizardInfo.isSSLCertRequestDone() || wizardInfo.isSSLCertInstalledDone()) + return false; + String machineName = wizardInfo.getMachineName(); +// dnDesc.setText("CN="+machineName+", O=Netscape Communications, C=US"); + String str = wizardInfo.getSSLSubjectName(); +/* + if (wizardInfo.isCAInstalled()) { // It is for SSL Server cert for CA + // get O component + OComp = wizardInfo.getCAOComp(); + CComp = wizardInfo.getCACComp(); + } + else if (wizardInfo.isRAInstalled()) { // It is for SSL Server cert for RA + OComp = wizardInfo.getRAOComp(); + CComp = wizardInfo.getRACComp(); + } +*/ + + String OUComp = wizardInfo.getOUComponent(); + String OComp = wizardInfo.getOComponent(); + String LComp = wizardInfo.getLComponent(); + String STComp = wizardInfo.getSTComponent(); + String CComp = wizardInfo.getCComponent(); + + if (str == null || str.equals("")) { + str = "CN="+machineName; + if (OUComp != null && !OUComp.equals("")) { + str = str+", OU="+OUComp; + } + if (OComp != null && !OComp.equals("")) { + str = str+", O="+OComp; + } + if (LComp != null && !LComp.equals("")) { + str = str+", L="+LComp; + } + if (STComp != null && !STComp.equals("")) { + str = str+", ST="+STComp; + } + if (CComp != null && !CComp.equals("")) { + str = str+", C="+CComp; + } else { + str = str+", "+SERVER_C; + } + } + wizardInfo.setSSLSubjectName(str); + populateDN(str); + + if (wizardInfo.isSSLCertLocalCA()) + mHelpIndex = LOCALHELPINDEX; + else + mHelpIndex = REMOTEHELPINDEX; + + return super.initializePanel(info); + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + if (super.concludePanel(info)) { + wizardInfo.setSSLSubjectName(mStr); + return true; + } + + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertExtensionPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertExtensionPage.java new file mode 100644 index 000000000..f958c88a1 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertExtensionPage.java @@ -0,0 +1,71 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.border.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Certificate Extension page for SSL server Certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIServerCertExtensionPage extends WICertExtensionPage { + private static final String PANELNAME = "INSTALLSERVERCERTEXTENSION1WIZARD"; + private static final String HELPINDEX = "install-sslcert-extension-wizard-help"; + + WIServerCertExtensionPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + mHelpIndex = HELPINDEX; + } + + WIServerCertExtensionPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mHelpIndex = HELPINDEX; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isMigrationEnable() || + wizardInfo.isSSLLocalCertDone() || wizardInfo.isSSLCertRequestDone() || + wizardInfo.isSSLCertInstalledDone()) + return false; + + if (!mModified) { + mExtendedKeyCheckBox.setSelected(true); + mAKICheckBox.setSelected(true); + mSSLServer.setSelected(true); + mSSLClient.setSelected(true); + } + return super.initializePanel(info); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertSubmitPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertSubmitPage.java new file mode 100644 index 000000000..417e706a5 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertSubmitPage.java @@ -0,0 +1,89 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * Server Certificate Submission. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIServerCertSubmitPage extends WICertSubmitPage implements IWizardPanel { + private static final String PANELNAME = "INSTALLSERVERCERTWIZARD"; + private static final String CALOCALHELPINDEX = "install-cassltypelocal-wizard-help"; + private static final String CAREMOTEHELPINDEX = "install-cassltypesub-wizard-help"; + private static final String CAKRALOCALHELPINDEX = "install-cakrassltypelocal-wizard-help"; + private static final String CAKRAREMOTEHELPINDEX = "install-cakrassltypesub-wizard-help"; + + WIServerCertSubmitPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + wizardInfo.put(Constants.PR_CERTIFICATE_TYPE, + Constants.PR_SERVER_CERT); + + if (wizardInfo.isCloning()) + return false; + + if (wizardInfo.isMigrationEnable() || + wizardInfo.isSSLCertRequestDone() || wizardInfo.isSSLCertInstalledDone() || + !wizardInfo.isCAInstalled()) { + wizardInfo.setSSLCertLocalCA(Constants.FALSE); + return false; + } + + if (wizardInfo.isSSLLocalCertDone()) + return false; + + if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled()) { + if (wizardInfo.isSSLCertLocalCA()) { + mHelpIndex = CAKRALOCALHELPINDEX; + } else + mHelpIndex = CAKRAREMOTEHELPINDEX; + } else if (wizardInfo.isSSLCertLocalCA()) { + mHelpIndex = CALOCALHELPINDEX; + } else { + mHelpIndex = CAREMOTEHELPINDEX; + } + + return super.initializePanel(info); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mSelfButton.isSelected()) + wizardInfo.setSSLCertLocalCA(Constants.TRUE); + else + wizardInfo.setSSLCertLocalCA(Constants.FALSE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertValidityPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertValidityPage.java new file mode 100644 index 000000000..047b9d7e8 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertValidityPage.java @@ -0,0 +1,69 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Validity page for SSL server certificate. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIServerCertValidityPage extends WICertValidityPage { + private static final String PANELNAME = "INSTALLSERVERCERTVALIDWIZARD"; + private static final String HELPINDEX = "install-sslcert-validity-wizard-help"; + + WIServerCertValidityPage(JDialog parent) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + } + + WIServerCertValidityPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mHelpIndex = HELPINDEX; + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (wizardInfo.isCloning()) + return false; + if (wizardInfo.isMigrationEnable() || wizardInfo.isSSLLocalCertDone() || + wizardInfo.isSSLCertRequestDone() || wizardInfo.isSSLCertInstalledDone()) + return false; + if (super.initializePanel(info)) { + if (!wizardInfo.isSSLCertLocalCA()) + return false; + return true; + } + return false; + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIServerKeyPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIServerKeyPage.java new file mode 100644 index 000000000..c14d0d2b3 --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIServerKeyPage.java @@ -0,0 +1,93 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; + +/** + * Setup key information for ssl server certificate + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIServerKeyPage extends WIKeyPage implements IWizardPanel { + private static final String PANELNAME = "INSTALLSERVERKEYWIZARD"; + private static final String LOCALHELPINDEX = + "install-serverkeylocal-configuration-wizard-help"; + private static final String REMOTEHELPINDEX = + "install-serverkeysub-configuration-wizard-help"; + + WIServerKeyPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + } + + WIServerKeyPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + } + + public boolean initializePanel(WizardInfo info) { + mWizardInfo = (InstallWizardInfo)info; + + if (mWizardInfo.isCloning()) + return false; + + if (mWizardInfo.isMigrationEnable() || mWizardInfo.isSSLLocalCertDone() || + mWizardInfo.isSSLCertRequestDone() || mWizardInfo.isSSLCertInstalledDone()) + return false; + if (super.initializePanel(info)) { + String sslTokenName = mWizardInfo.getSSLTokenName(); + if (sslTokenName == null || sslTokenName.equals("")) { + mTokenBox.setSelectedIndex(0); + } else { + if (sslTokenName.equals(Constants.PR_INTERNAL_TOKEN_NAME)) + mTokenBox.setSelectedIndex(0); + else + mTokenBox.setSelectedItem(sslTokenName); + } + } + + if (mWizardInfo.isSSLCertLocalCA()) + mHelpIndex = LOCALHELPINDEX; + else + mHelpIndex = REMOTEHELPINDEX; + + enableFields(); + mIsCAKey = false; + return true; + } + + public void getUpdateInfo(WizardInfo info) { + super.getUpdateInfo(info); + mWizardInfo.setSSLTokenName(mWizardInfo.getTokenName()); + } +} + diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WIServicesPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WIServicesPage.java new file mode 100644 index 000000000..fb524e62f --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WIServicesPage.java @@ -0,0 +1,425 @@ +// --- 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.config.install; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.util.*; + +/** + * Introduction page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WIServicesPage extends WizardBasePanel implements IWizardPanel { + private JRadioButton mCACheckBox; + private JRadioButton mRACheckBox; + private JRadioButton mOCSPCheckBox; + private JRadioButton mKRACheckBox; + + private JRadioButton mTKSCheckBox; + private JTextArea mServiceLbl; + + private static final String PANELNAME = "SERVICESWIZARD"; + private static final String HELPINDEX = + "install-services-configuration-wizard-help"; + + private String mClonedSubsystem = null; + + WIServicesPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WIServicesPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + /* bug#54369 - disable RA for netkey */ + mRACheckBox.setEnabled(false); + + mClonedSubsystem = wizardInfo.getCloneSubsystem(); + + + if(mClonedSubsystem != null) + { + + mServiceLbl.setText(mResource.getString(PANELNAME +"_LABEL_INSTALL_CLONE_LABEL")); + if(mClonedSubsystem.equals(ConfigConstants.PR_CA)) + { + mCACheckBox.setSelected(true); + } + else + mCACheckBox.setEnabled(false); + + /* bug#54369 - disable RA for netkey + if(mClonedSubsystem.equals(ConfigConstants.PR_RA)) + { + mRACheckBox.setSelected(true); + } + else + mRACheckBox.setEnabled(false); + */ + + if(mClonedSubsystem.equals(ConfigConstants.PR_KRA)) + { + mKRACheckBox.setSelected(true); + } + else + mKRACheckBox.setEnabled(false); + + if(mClonedSubsystem.equals(ConfigConstants.PR_TKS)) + { + mTKSCheckBox.setSelected(true); + } + else + mTKSCheckBox.setEnabled(false); + + if(mClonedSubsystem.equals(ConfigConstants.PR_OCSP)) + { + mOCSPCheckBox.setSelected(true); + } + else + mOCSPCheckBox.setEnabled(false); + + } + + + Debug.println("WIServicesPage: initializePanel."); + Debug.println("WIServicesPage: mClonedSubsystem " + mClonedSubsystem); + + + if (wizardInfo.isServicesDone()) + return false; + + setBorder(makeTitledBorder(PANELNAME)); + String subsystemList = wizardInfo.getSubsystems(); + if (subsystemList == null || subsystemList.equals("")) { + if (!mRACheckBox.isSelected() && mClonedSubsystem == null) + mCACheckBox.setSelected(true); + + return true; + } + + + + // get the subsystems from the list + int start = 0; + int end; + do { + end = subsystemList.indexOf(':', start); + if( end == -1 ) { + end = subsystemList.length(); // last string ends at end-of-line + } + if( end-start < 1 ) { + setErrorMessage("INCORRECTRESPONSE"); + return false; + } + String sub = subsystemList.substring(start, end); + if( ConfigConstants.PR_CA.equals(sub) ) { + mCACheckBox.setSelected(true); + } else if( ConfigConstants.PR_RA.equals(sub) ) { + mRACheckBox.setSelected(true); + } else if( ConfigConstants.PR_KRA.equals(sub) ) { + mKRACheckBox.setSelected(true); + } else if( ConfigConstants.PR_TKS.equals(sub) ) { + mTKSCheckBox.setSelected(true); + } else if( ConfigConstants.PR_OCSP.equals(sub) ) { + mOCSPCheckBox.setSelected(true); + } else { + setErrorMessage("INCORRECTRESPONSE"); + return false; + } + start = end+1; + } while( start < subsystemList.length() ); + + return true; + } + + public boolean validatePanel() { + if (mCACheckBox.isSelected() && mRACheckBox.isSelected()) { + setErrorMessage("NOCOLOCATED"); + return false; + } + + if (!mCACheckBox.isSelected() && !mRACheckBox.isSelected() && + !mOCSPCheckBox.isSelected() && !mKRACheckBox.isSelected() && !mTKSCheckBox.isSelected()) { + setErrorMessage("NOSERVICESINSTALLED"); + return false; + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + Hashtable data = new Hashtable(); + String services = ""; + if (mCACheckBox.isSelected()) { + wizardInfo.setInstalledCA(ConfigConstants.TRUE); + data.put(ConfigConstants.PR_CA, ConfigConstants.TRUE); + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_CA; + } else { + wizardInfo.setInstalledCA(ConfigConstants.FALSE); + data.put(ConfigConstants.PR_CA, ConfigConstants.FALSE); + } + + if (mRACheckBox.isSelected()) { + wizardInfo.setInstalledRA(ConfigConstants.TRUE); + data.put(ConfigConstants.PR_RA, ConfigConstants.TRUE); + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_RA; + } else { + wizardInfo.setInstalledRA(ConfigConstants.FALSE); + data.put(ConfigConstants.PR_RA, ConfigConstants.FALSE); + } + if (mKRACheckBox.isSelected()) { + wizardInfo.setInstalledKRA(ConfigConstants.TRUE); + data.put(ConfigConstants.PR_KRA, ConfigConstants.TRUE); + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_KRA; + } else { + wizardInfo.setInstalledKRA(ConfigConstants.FALSE); + data.put(ConfigConstants.PR_KRA, ConfigConstants.FALSE); + } + if (mTKSCheckBox.isSelected()) { + wizardInfo.setInstalledTKS(ConfigConstants.TRUE); + data.put(ConfigConstants.PR_TKS, ConfigConstants.TRUE); + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_TKS; + } else { + wizardInfo.setInstalledTKS(ConfigConstants.FALSE); + data.put(ConfigConstants.PR_TKS, ConfigConstants.FALSE); + } + if (mOCSPCheckBox.isSelected()) { + wizardInfo.setInstalledOCSP(ConfigConstants.TRUE); + data.put(ConfigConstants.PR_OCSP, ConfigConstants.TRUE); + if (!services.equals("")) + services = services+":"; + services=services+ConfigConstants.PR_OCSP; + } else { + wizardInfo.setInstalledOCSP(ConfigConstants.FALSE); + data.put(ConfigConstants.PR_OCSP, ConfigConstants.FALSE); + } + + if (services != null && !services.equals("")) { + wizardInfo.setSubsystems(services); + } + + + String rawData = ConfigConstants.PR_SUBSYSTEMS+"="+services; + rawData = rawData+"&"+ConfigConstants.TASKID+"="+TaskId.TASK_SELECT_SUBSYSTEMS; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + if (wizardInfo.getDBBindDN() != null) + rawData = rawData+"&"+ConfigConstants.PR_DB_BINDDN+"="+wizardInfo.getDBBindDN(); + if (wizardInfo.getInternalDBPasswd() != null) + rawData = rawData+"&"+ConfigConstants.PR_DB_PWD+"="+ + wizardInfo.getInternalDBPasswd(); + + rawData = rawData+"&"+ConfigConstants.REMOTE_KRA_ENABLED+"="+ + ConfigConstants.FALSE; + wizardInfo.enableRemoteDRM(ConfigConstants.FALSE); + startProgressStatus(); + + //CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CREATESUB"); + boolean ready = send(rawData, wizardInfo); + //dlg.setVisible(false); + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource().equals(mCACheckBox)) { + mTKSCheckBox.setSelected(false); + mKRACheckBox.setSelected(false); + mOCSPCheckBox.setSelected(false); + if(mClonedSubsystem != null) + mCACheckBox.setSelected(true); + + mRACheckBox.setSelected(false); + } else if (e.getSource().equals(mOCSPCheckBox)) { + mTKSCheckBox.setSelected(false); + mKRACheckBox.setSelected(false); + mCACheckBox.setSelected(false); + mRACheckBox.setSelected(false); + if(mClonedSubsystem != null) + mOCSPCheckBox.setSelected(true); + } else if (e.getSource().equals(mRACheckBox)) { + mCACheckBox.setSelected(false); + mTKSCheckBox.setSelected(false); + mKRACheckBox.setSelected(false); + mOCSPCheckBox.setSelected(false); + if(mClonedSubsystem != null) + mRACheckBox.setSelected(true); + } else if (e.getSource().equals(mKRACheckBox)) { + mTKSCheckBox.setSelected(false); + mCACheckBox.setSelected(false); + mRACheckBox.setSelected(false); + mOCSPCheckBox.setSelected(false); + if(mClonedSubsystem != null) + mKRACheckBox.setSelected(true); + }else if (e.getSource().equals(mTKSCheckBox)) { + mCACheckBox.setSelected(false); + mRACheckBox.setSelected(false); + mOCSPCheckBox.setSelected(false); + mKRACheckBox.setSelected(false); + if(mClonedSubsystem != null) + mTKSCheckBox.setSelected(true); + } + + super.actionPerformed(e); + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + mServiceLbl = createTextArea(mResource.getString( + PANELNAME+"_LABEL_INSTALL_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mServiceLbl, gbc); + + mCACheckBox = makeJRadioButton("CA"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mCACheckBox, gbc); + + mOCSPCheckBox = makeJRadioButton("OCSP"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mOCSPCheckBox, gbc); + + mRACheckBox = makeJRadioButton("RA"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mRACheckBox, gbc); + + mKRACheckBox = makeJRadioButton("KRA"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + //gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mKRACheckBox, gbc); + + mTKSCheckBox = makeJRadioButton("TKS"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + //gbc.weighty = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mTKSCheckBox, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + if (mCACheckBox.isSelected()) + wizardInfo.setInstalledCA(ConfigConstants.TRUE); + else + wizardInfo.setInstalledCA(ConfigConstants.FALSE); + if (mRACheckBox.isSelected()) + wizardInfo.setInstalledRA(ConfigConstants.TRUE); + else + wizardInfo.setInstalledRA(ConfigConstants.FALSE); + if (mKRACheckBox.isSelected()) + wizardInfo.setInstalledKRA(ConfigConstants.TRUE); + else + wizardInfo.setInstalledKRA(ConfigConstants.FALSE); + if (mTKSCheckBox.isSelected()) + wizardInfo.setInstalledTKS(ConfigConstants.TRUE); + else + wizardInfo.setInstalledTKS(ConfigConstants.FALSE); + if (mOCSPCheckBox.isSelected()) + wizardInfo.setInstalledOCSP(ConfigConstants.TRUE); + else + wizardInfo.setInstalledOCSP(ConfigConstants.FALSE); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WISingleSignonPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WISingleSignonPage.java new file mode 100644 index 000000000..49e06ac1e --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WISingleSignonPage.java @@ -0,0 +1,532 @@ +// --- 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.config.install; + +import java.io.*; +import java.net.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import javax.swing.text.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; +import com.netscape.management.client.comm.*; +import com.netscape.management.client.util.*; + +/** + * Setup Single Signon for the installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WISingleSignonPage extends WizardBasePanel implements IWizardPanel, CommClient { + + public static final String PW_TAG_INTERNAL_LDAP_DB = "Internal LDAP Database"; + public static final String PW_TAG_INTERNAL_STORAGE_TOKEN = "internal"; + + private Color mActiveColor; + // private JPasswordField mSingleSignonPassword, mSingleSignonPasswordAgain; + private JCheckBox mPasswordConf; + private static final String HELPINDEX = "install-single-signon-wizard-help"; + private static final String PANELNAME = "INSTALLSINGLESIGNON"; + private boolean ca; + private boolean ra; + private boolean kra; + private String mDBPasswd; + private String capassword, rapassword, krapassword, sslpassword; + private JComboBox mTokenBox; + private static final String START_TASK_CGI = "Tasks/Operation/start"; + private static final String PREFIX = "CGITASK"; + private boolean mFinished = false; + protected String mCmd = null; + private String mAdminURL = null; + protected boolean mSuccess = false; + private String mReply = null; + protected String mSection = ""; + protected String mErrorMsg = ""; + private ConsoleInfo _consoleInfo = null; + + WISingleSignonPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WISingleSignonPage(JDialog parent, JFrame adminFrame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = adminFrame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + String tokenList = wizardInfo.getTokensList(); + StringTokenizer st1 = new StringTokenizer(tokenList, ":"); + + mTokenBox.removeAllItems(); + while (st1.hasMoreElements()) { + String t1 = (String)st1.nextElement(); + mTokenBox.addItem(t1); + } + + mDBPasswd = wizardInfo.getInternalDBPasswd(); + + String tokenname = ""; + String password = ""; + if (wizardInfo.isCAInstalled()) { + tokenname = wizardInfo.getCATokenName(); + password = (String)wizardInfo.get("TOKEN:"+tokenname); + if (password == null || password.equals("")) { + capassword = ""; + } else { + capassword = password; + } + ca = true; + } else { + capassword = ""; + ca = false; + } + + if (wizardInfo.isRAInstalled()) { + tokenname = wizardInfo.getRATokenName(); + password = (String)wizardInfo.get("TOKEN:"+tokenname); + if (password == null || password.equals("")) { + rapassword = ""; + } else { + rapassword = password; + } + ra = true; + } else { + rapassword = ""; + ra = false; + } + + if (wizardInfo.isKRAInstalled()) { + tokenname = wizardInfo.getKRATokenName(); + password = (String)wizardInfo.get("TOKEN:"+tokenname); + if (password == null || password.equals("")) { + krapassword = ""; + } else { + krapassword = password; + } + kra = true; + } else { + krapassword = ""; + kra = false; + } + + tokenname = wizardInfo.getSSLTokenName(); + password = (String)wizardInfo.get("TOKEN:"+tokenname); + if (password == null || password.equals("")) { + sslpassword = ""; + } else { + sslpassword = password; + } + setBorder(makeTitledBorder(PANELNAME)); + return true; + } + + public boolean validatePanel() { + return true; + } + + + /** + * Copy from CGITask.java + */ + public boolean run(String cmd) { + // get the admin URL location first + String mAdminURL = _consoleInfo.getAdminURL(); + if ( mAdminURL == null ) { + return false; + } + + // Allow specifying e.g. "slapd-install" for instance + String instance = (String)_consoleInfo.get( cmd ); + if (instance == null) + instance = (String)_consoleInfo.get( "ServerInstance" ); + String fullCmd = mAdminURL + instance + "/" + cmd; + + HttpManager h = new HttpManager(); + // tell the http manager to use UTF8 encoding + h.setSendUTF8(true); + + try { + mSuccess = false; + mFinished = false; + + // _consoleInfo.get("arguments") is a hashtable of key/value pairs + // to use as the arguments to the CGI + Hashtable args = (Hashtable)_consoleInfo.get("arguments"); + ByteArrayInputStream data = null; + if (args != null && !args.isEmpty()) + data = com.netscape.admin.certsrv.task.CGITask.encode(args); + Debug.println( "Posting " + fullCmd ); + // tell the http manager to notify us immediately of replies + // if we're using async mode + int flags = 0; + if (data == null) + h.post(new URL(fullCmd), this, null, null, 0, flags); + else + h.post(new URL(fullCmd), this, null, data, data.available(), + flags); + awaitSuccess(); + Debug.println( "Command executed: " + fullCmd ); + } catch (Exception e) { + if (e instanceof java.net.ConnectException) { + CMSAdminUtil.showMessageDialog(mResource, + PREFIX, "SERVERDOWN", CMSAdminUtil.ERROR_MESSAGE); + } + Debug.println( "Command " + fullCmd + " failed: " + e ); + } + return mSuccess; + } + + /** + * waiting for the http transaction to be finished. + */ + public synchronized void awaitSuccess() { + while (!mFinished) { + try { + wait(); + } catch (Exception e) { } + } + } + + /** + * http transaction finished, notify the process + */ + public synchronized void finish() { + mFinished = true; + notifyAll(); + } + + /** + * the operation is finished after we receive the http stream + */ + public void replyHandler(InputStream response, CommRecord cr) { + try { + int nBytes = response.available(); + if ( nBytes > 0 ) { + // the response from the DS CGIs will typically be in + // UTF8 encoding + byte[] data = new byte[nBytes]; + nBytes = response.read( data ); + mReply = new String( data, 0, nBytes, "UTF8" ); + Debug.println( "CGITask.replyHandler: Response (" + nBytes + + " bytes) = " + mReply ); + int index = 0; + if ((mReply.indexOf("NMC_") != -1) && + ((index = mReply.indexOf(":")) != -1)) { + String sName = mReply.substring(0, index).trim(); + String sValue = mReply.substring(index+1).trim(); + if (sName.equalsIgnoreCase("NMC_Status")) { + int code = Integer.parseInt(sValue); + mSuccess = (code == 0); + } else if (sName.equalsIgnoreCase("NMC_ERRINFO")) { + mErrorMsg = sValue; } + } + } + } catch ( Exception e ) { + Debug.println( "CGITask.replyHandler: " + e.toString() ); + } + finish(); + } + + /** + * this function will be called if error occurs + */ + public void errorHandler(Exception error, CommRecord cr) { + Debug.println("CGITask.errorHandler: " + error ); + + // this is a hack. now we dont know how to set the timeout period longer. + // We always assume everything is fine so that we can proceed to the next + // config-cert panel. + mSuccess = true; + finish(); + } + + /** + * pass the username to the admin server + */ + public String username(Object authObject, CommRecord cr) { + Debug.println( "username = " + + (String)_consoleInfo.getAuthenticationDN()); + return _consoleInfo.getAuthenticationDN(); + } + + /** + * pass the user password to the admin server + */ + public String password(Object authObject, CommRecord cr) { + Debug.println( "password = " + + (String)_consoleInfo.get( "AdminUserPassword" ) ); + return (String)_consoleInfo.get( "AdminUserPassword" ); + } + /** + * Starts CMS server. + */ + public boolean startServer(InstallWizardInfo info) { + _consoleInfo = info.getAdminConsoleInfo(); + + Hashtable configParams = new Hashtable(); + configParams.put("serverRoot",_consoleInfo.get("serverRoot")); + String servid = (String)_consoleInfo.get("servid"); + int index = servid.indexOf("-"); + if (index != -1) { + servid = servid.substring(index+1); + } + configParams.put("instanceID", servid); + // configParams.put("password", info.getSingleSignOnPassword()); + _consoleInfo.put( "ServerInstance", "cert-" + servid); + _consoleInfo.put("arguments", configParams); + // Debug.println("password "+dialog.getPassword()); + + if (_consoleInfo.get("AdminUsername") == null) { + _consoleInfo.put("AdminUsername", _consoleInfo.getAuthenticationDN() +); + } + Debug.println("AdminUsername = " + _consoleInfo.get("AdminUsername")); + + if (_consoleInfo.get("AdminUserPassword") == null) { + _consoleInfo.put("AdminUserPassword", _consoleInfo.getAuthenticationPassword()); + } + Debug.println("AdminUserPassword = " + _consoleInfo.get("AdminUserPassword")); + // call the CGI program + Debug.println("CMSStart: start() before run task="+START_TASK_CGI); + boolean status; + try { + status = run(START_TASK_CGI); + } catch (Exception e) { + Debug.println("Unexpected Error"+e.toString()); + status = false; + } + Debug.println("CMSStart: start() after run status="+status); + + return true; + } + + public boolean concludePanel(WizardInfo info) { + // Comment out the single signon codes for now. + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_SINGLE_SIGNON; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + String tags = PW_TAG_INTERNAL_LDAP_DB; + rawData = rawData+"&"+PW_TAG_INTERNAL_LDAP_DB+"="+mDBPasswd; + rawData = rawData+"&pwcTokenname="+(String)(mTokenBox.getSelectedItem()); + + String tokenname = ""; + if (!capassword.equals("")) { + tokenname = wizardInfo.getCATokenName(); + rawData = rawData+"&"+tokenname+"="+capassword; + tags = tags+":"+tokenname; + } + + if (!rapassword.equals("")) { + tokenname = wizardInfo.getRATokenName(); + rawData = rawData+"&"+tokenname+"="+rapassword; + tags = tags+":"+tokenname; + } + + if (!krapassword.equals("")) { + tokenname = wizardInfo.getKRATokenName(); + rawData = rawData+"&"+tokenname+"="+krapassword; + tags = tags+":"+tokenname; + } + + if (!sslpassword.equals("")) { + tokenname = wizardInfo.getSSLTokenName(); + rawData = rawData+"&"+tokenname+"="+sslpassword; + tags = tags+":"+tokenname; + } + + if (mPasswordConf.isSelected()) { + rawData = rawData+"&"+ConfigConstants.PR_DELETE_PASSWD_CONF+"="+ + ConfigConstants.TRUE; + } else { + rawData = rawData+"&"+ConfigConstants.PR_DELETE_PASSWD_CONF+"="+ + ConfigConstants.FALSE; + } + rawData = rawData+"&"+ConfigConstants.PR_SINGLE_SIGNON_PW_TAGS+"="+tags; + //data.put(ConfigConstants.PR_SINGLE_SIGNON, ConfigConstants.FALSE); + + startProgressStatus(); + //CMSMessageBox dlg = new CMSMessageBox(mAdminFrame, "CGITASK", "CREATESSON"); + + // boolean ready = send(rawData, wizardInfo); + + boolean ready = true; + if (ready) { + rawData = ConfigConstants.TASKID+"="+TaskId.TASK_MISCELLANEOUS; +/* + data.put(ConfigConstants.PR_ADMIN_PASSWD, + (String)consoleInfo.get(ConfigConstants.PR_ADMIN_PASSWD)); +*/ + ready = send(rawData, wizardInfo); + } else { + String str = getErrorMessage(); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + //dlg.setVisible(false); + + endProgressStatus(); + return false; + } + + //startServer(wizardInfo); + + //dlg.setVisible(false); + + endProgressStatus(); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) { + String errorMsg = mResource.getString( + PANELNAME+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + +/* + JPanel panel1 = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel1.setLayout(gb1); + //panel1.setBorder(new EtchedBorder()); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(panel1, gbc); +*/ + + JTextArea heading = createTextArea(mResource.getString( + PANELNAME+"_TEXT_HEADING1_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(2*COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE, 0); + add(heading, gbc); + + JLabel tokenLbl = makeJLabel("TOKEN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + //gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, 0, COMPONENT_SPACE); + add(tokenLbl, gbc); + + mTokenBox = new JComboBox(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + //gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, 0); + add(mTokenBox, gbc); + + JLabel dum = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.fill = gbc.BOTH; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, 0); + add(dum, gbc); + + JTextArea passwordConfText = createTextArea(mResource.getString( + PANELNAME+"_TEXT_PASSWDCONF_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(4*COMPONENT_SPACE,COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(passwordConfText, gbc); + + mPasswordConf = makeJCheckBox("PASSWDCONF"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,2*COMPONENT_SPACE, 0, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mPasswordConf, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.fill = gbc.BOTH; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WITokenLogonPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WITokenLogonPage.java new file mode 100644 index 000000000..b3ecdbf5a --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WITokenLogonPage.java @@ -0,0 +1,255 @@ +// --- 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.config.install; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.text.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.task.*; +import com.netscape.management.client.console.*; + +/** + * This panel asks for the information of the current internal database. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WITokenLogonPage extends WizardBasePanel implements IWizardPanel { + protected JTextField mTokenText; + protected JLabel mPasswordAgainLabel; + protected JPasswordField mPasswordText, mPasswordAgainText; + private static final String EMPTYSTR = " "; + protected String mHelpIndex; + protected String mPanelName; + protected JTextArea mDesc; + protected Color mActiveColor; + protected String mTokenName; + + WITokenLogonPage(String panelName) { + super(panelName); + mPanelName = panelName; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + setBorder(makeTitledBorder(mPanelName)); + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + + String tokenList = wizardInfo.getTokensList(); + String tokenLoggedIn = wizardInfo.getTokensLogin(); + String tokenInits = wizardInfo.getTokensInit(); + StringTokenizer tokenizer = new StringTokenizer(tokenList, ":"); + StringTokenizer tokenizerLoggedIn = new StringTokenizer(tokenLoggedIn, ":"); + StringTokenizer tokenizerInits = new StringTokenizer(tokenInits, ":"); + int index = 0; + String loggedIn = ""; + String inits = ""; + while (tokenizer.hasMoreElements()) { + String token = (String)tokenizer.nextElement(); + loggedIn = (String)tokenizerLoggedIn.nextElement(); + inits = (String)tokenizerInits.nextElement(); + if (token.equalsIgnoreCase(mTokenName)) { + break; + } + index++; + } + + if (inits.equals(Constants.FALSE)) { + mDesc.setText(mResource.getString(mPanelName+"_TEXT_INIT_LABEL")); + enableFields(mPasswordAgainLabel, mPasswordAgainText, true, mActiveColor); + } else { + mDesc.setText(mResource.getString(mPanelName+"_TEXT_HEADING_LABEL")); + enableFields(mPasswordAgainLabel, mPasswordAgainText, false, getBackground()); + } + + mTokenText.setEnabled(false); + mTokenText.setEditable(false); + mTokenText.setBackground(getBackground()); + CMSAdminUtil.repaintComp(mTokenText); + + return true; + } + + public boolean validatePanel() { + String passwd = mPasswordText.getText(); + if (passwd.equals("")) { + setErrorMessage("BLANKPASSWD"); + return false; + } + if (mPasswordAgainText.isEnabled()) { + String passwdAgain = mPasswordAgainText.getText(); + if (!passwd.equals(passwdAgain)) { + setErrorMessage("NOTSAMEPASSWD"); + return false; + } + } + + return true; + } + + public boolean concludePanel(WizardInfo info) { + InstallWizardInfo wizardInfo = (InstallWizardInfo)info; + cleanUpWizardInfo(wizardInfo); + + String tokenname = mTokenText.getText().trim(); + String pwd = mPasswordText.getText().trim(); + wizardInfo.put("TOKEN:"+tokenname, pwd); + + String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_INIT_TOKEN; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY; + rawData = rawData+"&"+ConfigConstants.PR_TOKEN_NAME+"="+tokenname; + rawData = rawData+"&"+ConfigConstants.PR_TOKEN_PASSWD+"="+pwd; + rawData = rawData+"&"+ConfigConstants.PR_CMS_SEED+"="+ + (new Long(WizardBasePanel.mSeed).toString()); + + startProgressStatus(); + boolean ready = send(rawData, wizardInfo); + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str == null) { + String errorMsg = mResource.getString( + mPanelName+"_ERRORMSG"); + setErrorMessage(errorMsg); + } else + setErrorMessage(str); + } else { + rawData = ConfigConstants.TASKID+"="+TaskId.TASK_TOKEN_INFO; + rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_READ; + ready = send(rawData, wizardInfo); + } + + if (!ready) { + String str = getErrorMessage(wizardInfo); + if (str.equals("")) + setErrorMessage("Server Error"); + else + setErrorMessage(str); + } + + endProgressStatus(); + + return ready; + } + + public void callHelp() { + CMSAdminUtil.help(mHelpIndex); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + CMSAdminUtil.resetGBC(gbc); + mDesc = createTextArea(""); +/* + mDesc = createTextArea(mResource.getString( + mPanelName+"_TEXT_HEADING_LABEL")); +*/ + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mDesc, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel tokenLabel = makeJLabel("TOKEN"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(tokenLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mTokenText = makeJTextField(30); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mTokenText, gbc); + + CMSAdminUtil.resetGBC(gbc); + JLabel passwordLabel = makeJLabel("PWD"); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE, + COMPONENT_SPACE); + add(passwordLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPasswordText = makeJPasswordField(30); + gbc.anchor = gbc.NORTHWEST; + // gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPasswordText, gbc); + mActiveColor = mPasswordText.getBackground(); + + CMSAdminUtil.resetGBC(gbc); + mPasswordAgainLabel = makeJLabel("PWDAGAIN"); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPasswordAgainLabel, gbc); + + CMSAdminUtil.resetGBC(gbc); + mPasswordAgainText = makeJPasswordField(30); + gbc.anchor = gbc.NORTHWEST; + // gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(mPasswordAgainText, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy, gbc); + } + + public void getUpdateInfo(WizardInfo info) { + } + + protected void enableFields(JComponent comp1, JTextComponent comp2, boolean enable, Color color) { + comp1.setEnabled(enable); + comp2.setEnabled(enable); + comp2.setEditable(enable); + comp2.setBackground(color); + CMSAdminUtil.repaintComp(comp1); + CMSAdminUtil.repaintComp(comp2); + } +} diff --git a/base/console/src/com/netscape/admin/certsrv/config/install/WITrustDBPage.java b/base/console/src/com/netscape/admin/certsrv/config/install/WITrustDBPage.java new file mode 100644 index 000000000..cd19963ff --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/config/install/WITrustDBPage.java @@ -0,0 +1,138 @@ +// --- 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.config.install; + +import java.awt.*; +import javax.swing.*; +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; + +/** + * Trust database page for installation wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WITrustDBPage extends WizardBasePanel implements IWizardPanel { + private JPasswordField mPassword; + private JPasswordField mPasswordAgain; + private static final String PANELNAME = "TRUSTDBWIZARD"; + private static final String HELPINDEX = + "configuration-kra-wizard-change-keyscheme-help"; + + WITrustDBPage() { + super(PANELNAME); + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + return true; + } + + public boolean validatePanel() { + return true; + } + + public boolean concludePanel(WizardInfo info) { + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JTextArea desc = createTextArea( + CMSAdminUtil.wrapText(mResource.getString( + "TRUSTDBWIZARD_TEXT_DESC_LABEL"), 80), 2, 80); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(desc, gbc); + + JLabel passwdLbl = makeJLabel("PASSWD"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(passwdLbl, gbc); + + mPassword = makeJPasswordField(20); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(mPassword, gbc); + + JTextArea dummy = createTextArea(" ", 1, 15); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + add(dummy, gbc); + + JLabel passwdAgainLbl = makeJLabel("PASSWDAGAIN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHEAST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0,COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.weighty = 1.0; + add(passwdAgainLbl, gbc); + + mPasswordAgain = makeJPasswordField(20); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.weighty = 1.0; + add(mPasswordAgain, gbc); + + JTextArea dummy1 = createTextArea(" ", 1, 15); + CMSAdminUtil.resetGBC(gbc); + gbc.insets = new Insets(0, COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(dummy1, gbc); + + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + } +} -- cgit