summaryrefslogtreecommitdiffstats
path: root/pki/base/console/src/com/netscape/admin/certsrv/config
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/console/src/com/netscape/admin/certsrv/config')
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ACIDialog.java522
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ACLDataModel.java47
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ACLEditDialog.java560
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ACLImplDataModel.java47
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ACLImplTab.java227
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ACLPanel.java231
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/AutoRecoveryModel.java57
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CACertsTab.java395
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSAccessLogPanel.java213
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSAuditLogPanel.java213
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSAutoRecovery.java267
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigDialog.java1084
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigPanel.java180
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLDAPPanel.java693
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLogPanel.java366
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseTab.java95
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSBlankPanel.java82
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCACertSettingPanel.java173
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCAConnectorPanel.java240
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCAGeneralPanel.java425
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCALDAPPanel.java44
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java374
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLFormatPanel.java450
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLIPPanel.java331
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLSettingPanel.java701
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCertSettingPanel.java150
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferenceDialog.java201
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferencePane.java112
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSEAGeneralPanel.java173
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSEncryptionPanel.java840
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSErrorLogPanel.java183
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRAAutoPanel.java222
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRAPasswdPanel.java269
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRASchemePanel.java200
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSLDAPSettingPanel.java364
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSNetworkPanel.java468
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSOCSPGeneralPanel.java220
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSPasswordDialog.java310
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSPluginInstanceTab.java444
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSRACLMPanel.java314
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSRAConnectorPanel.java254
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSRAGeneralPanel.java186
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSRALDAPPanel.java44
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSRuleDataModel.java82
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSSMTPPanel.java171
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSSNMPPanel.java297
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherPreference.java36
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherSet.java74
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherPreference.java37
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherSet.java91
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSSelfTestsPanel.java219
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSTabPanel.java349
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMSUserCertSettingPanel.java157
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CMStoAdminEncryptionPane.java67
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsConfigDialog.java76
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsInstanceTab.java114
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsPluginSelectionDialog.java67
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsRuleDataModel.java70
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java335
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ConfigTableModel.java42
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ConnectorEditor.java640
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/EvaluatorRegisterDialog.java41
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/GeneralLogPanel.java254
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/JobsConfigDialog.java62
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/JobsImplDataModel.java69
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/JobsImplTab.java323
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/JobsInstanceTab.java104
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/JobsPluginSelectionDialog.java66
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/JobsRegisterDialog.java40
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/JobsRuleDataModel.java72
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/JobsSettingPanel.java243
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/KeyCreateDialog.java300
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ListCertsModel.java56
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ListKeysModel.java56
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/LogConfigDialog.java62
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/LogImplDataModel.java69
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/LogImplTab.java315
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/LogInstanceTab.java95
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/LogPluginSelectionDialog.java69
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/LogRegisterDialog.java40
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/LogRuleDataModel.java63
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizard.java64
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizardInfo.java110
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/MapperConfigDialog.java64
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/MapperImplDataModel.java69
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/MapperImplTab.java320
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/MapperInstanceTab.java95
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/MapperPluginSelectionDialog.java74
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/MapperRegisterDialog.java40
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/MapperRuleDataModel.java63
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresConfigDialog.java60
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresInstanceTab.java135
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresPluginSelectionDialog.java67
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresRuleDataModel.java70
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PanelMapperConfigDialog.java409
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PluginSelectionDialog.java375
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PolicyConfigDialog.java64
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PolicyImplDataModel.java69
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PolicyImplTab.java322
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PolicyInstanceTab.java139
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PolicyPluginSelectionDialog.java73
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PolicyRegisterDialog.java40
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleDataModel.java72
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleOrderDialog.java331
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileComponentCellEditor.java109
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDataModel.java83
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDialog.java399
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileDataTable.java68
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDataModel.java88
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDialog.java936
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileImplDataModel.java71
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileImplTab.java382
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileInstanceTab.java161
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileListDataModel.java60
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicyNewDialog.java432
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicySelDialog.java386
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePluginSelectionDialog.java191
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDataModel.java85
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDialog.java700
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyNewDialog.java716
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicySelectionDialog.java514
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileRegisterDialog.java305
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ProfileRuleDataModel.java71
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PublisherConfigDialog.java64
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PublisherImplDataModel.java69
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PublisherImplTab.java321
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PublisherInstanceTab.java95
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PublisherPluginSelectionDialog.java74
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PublisherRegisterDialog.java40
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/PublisherRuleDataModel.java63
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/RegisterDialog.java287
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/RuleConfigDialog.java64
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/RuleImplDataModel.java69
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/RuleImplTab.java320
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/RuleInstanceTab.java97
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/RulePluginSelectionDialog.java74
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/RuleRegisterDialog.java40
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/RuleRuleDataModel.java71
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/TKSKeysTab.java372
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/UserCertsTab.java344
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ViewDialog.java189
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ViewSelfTestsDialog.java172
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/ViewTableModel.java40
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java445
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertRequestPage.java261
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java493
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNValidityPage.java207
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WBaseKeyPage.java248
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java508
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WBaseValidityPage.java258
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WMNNewAgent.java293
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WMNOldAgent.java214
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WMNResultPage.java102
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WMNSelection.java226
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java240
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/WarningDialog.java171
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/ComponentCellRenderer.java32
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizard.java202
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java1724
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIAdminPage.java266
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIAllCertsInstalledPage.java269
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1CustomPage.java72
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1Page.java218
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACert2Page.java72
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertDNPage.java97
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertExtensionPage.java80
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertPage.java172
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertSubmitPage.java79
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertValidityPage.java75
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICAKeyPage.java115
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICAMessageDigestPage.java80
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICAOCSPServicePage.java172
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICARequestResultPage.java59
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICASerialNumberPage.java381
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICATokenLogonPage.java76
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertDNPage.java153
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java176
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertRequestPage.java73
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertSetupStatusPage.java144
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertSubmitPage.java144
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertValidityPage.java141
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneCAKeyCertPage.java292
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneKRAKeyCertPage.java292
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneMasterPage.java409
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneOCSPKeyCertPage.java237
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIClonePage.java142
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneRAKeyCertPage.java242
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneTKSKeyCertPage.java182
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIConfigWebServerPage.java182
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WICreateInternalDBPage.java581
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDBEnrollPage.java211
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCACertPage.java75
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCertPage.java205
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayKRACertPage.java77
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayOCSPCertPage.java71
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayRACertPage.java73
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplaySSLCertPage.java70
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIExistingDBPage.java282
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertPage.java68
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertReqPage.java80
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertPage.java70
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertReqPage.java82
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertPage.java147
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertReqPage.java297
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertPage.java62
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertReqPage.java77
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertPage.java67
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertReqPage.java79
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenSSLKeyCertReqPage.java76
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenServerKeyCertPage.java62
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCACertStatusPage.java70
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCAIntroPage.java62
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert1Page.java157
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert2Page.java140
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCertStatusPage.java248
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallIntroPage.java133
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRACertStatusPage.java72
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRAIntroPage.java65
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPCertStatusPage.java67
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPIntroPage.java60
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRACertStatusPage.java69
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRAIntroPage.java61
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLCertStatusPage.java65
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLIntroPage.java58
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBInfoPage.java173
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBPage.java313
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalTokenLogonPage.java67
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroMigrationPage.java162
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroPage.java217
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroSingleSignonPage.java162
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertDNPage.java105
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertExtensionPage.java75
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertSubmitPage.java80
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertValidityPage.java77
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAKeyPage.java100
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAMessageDigestPage.java79
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRANumberPage.java378
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRARequestResultPage.java58
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme1Page.java188
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme2Page.java309
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAStorageKeyPage.java356
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRATokenLogonPage.java74
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKeyPage.java641
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WILDAPPublishingPage.java279
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WILoggingPage.java202
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WILogonAllTokensPage.java264
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualCACertRequestPage.java86
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualCertRequestPage.java178
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualKRACertRequestPage.java77
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualOCSPCertRequestPage.java72
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualRACertRequestPage.java74
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualSSLCertRequestPage.java69
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIMasterOrClone.java172
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIMigrationPage.java715
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java499
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertDNPage.java83
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertSubmitPage.java76
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPKeyPage.java90
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPMessageDigestPage.java80
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPRequestResultPage.java63
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPTokenLogonPage.java73
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCACertPage.java67
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCertPage.java500
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteKRACertPage.java68
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteOCSPCertPage.java63
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteRACertPage.java64
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteSSLCertPage.java60
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertDNPage.java86
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertExtensionPage.java75
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertSubmitPage.java76
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertValidityPage.java74
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRAKeyPage.java94
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRAMessageDigestPage.java79
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRARequestResultPage.java58
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRATokenLogonPage.java75
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRecreateDBPage.java139
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteCASubsystem.java291
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteKRASubsystem.java371
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIReplAgreementPage.java417
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRequestResultPage.java148
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WISMTPPage.java129
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WISSLMessageDigestPage.java79
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WISSLRequestResultPage.java58
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WISSLTokenLogonPage.java72
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertDNPage.java116
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertExtensionPage.java71
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertSubmitPage.java89
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertValidityPage.java69
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerKeyPage.java93
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServicesPage.java425
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WISingleSignonPage.java532
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WITokenLogonPage.java255
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/config/install/WITrustDBPage.java138
293 files changed, 56593 insertions, 0 deletions
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/ACIDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ACIDialog.java
new file mode 100644
index 000000000..1951dc6ab
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ACIDialog.java
@@ -0,0 +1,522 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+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.*;
+
+/**
+ * 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<values.length; i++) {
+ if (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) {
+ Enumeration names = nvps.getNames();
+ while (names.hasMoreElements()) {
+ String name = (String)names.nextElement();
+ if (str.startsWith(name)) {
+ int len = name.length();
+ String leftover = str.substring(len).trim();
+ String operators = nvps.getValue(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};
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/ACLDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ACLDataModel.java
new file mode 100644
index 000000000..4adf6c4d3
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ACLEditDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ACLEditDialog.java
new file mode 100644
index 000000000..ef5521038
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ACLEditDialog.java
@@ -0,0 +1,560 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+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.*;
+
+/**
+ * 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<size; i++) {
+ if (i > 0)
+ str = str+";"+(String)mDataModel.elementAt(i);
+ else
+ str = str+(String)mDataModel.elementAt(i);
+ }
+ pairs.add(Constants.PR_ACI, str);
+ pairs.add(Constants.PR_ACL_DESC, desc);
+ pairs.add(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.getValue(Constants.PR_ACI);
+ mOperations = data.getValue(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};
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/ACLImplDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ACLImplDataModel.java
new file mode 100644
index 000000000..79033030d
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ACLImplTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ACLImplTab.java
new file mode 100644
index 000000000..18869b195
--- /dev/null
+++ b/pki/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 };
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ vals[i++] = entry;
+ }
+
+ CMSAdminUtil.bubbleSort(vals);
+
+ for (i=0; i<vals.length; i++) {
+ String name = vals[i];
+ Vector v = new Vector();
+ v.addElement(new JLabel(name,
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_ACLPLUGIN),
+ JLabel.LEFT));
+ v.addElement(response.getValue(name));
+ mDataModel.addRow(v);
+ }
+
+ if (mDataModel.getRowCount() >0)
+ mTable.setRowSelectionInterval(0,0);
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/ACLPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ACLPanel.java
new file mode 100644
index 000000000..4f627222e
--- /dev/null
+++ b/pki/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 };
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ vals[i++] = entry;
+ }
+
+ CMSAdminUtil.bubbleSort(vals);
+
+ for (i=0; i<vals.length; i++) {
+ String name = vals[i];
+ Vector v = new Vector();
+ v.addElement(new JLabel(name,
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_ACL),
+ JLabel.LEFT));
+ v.addElement(response.getValue(name));
+ mDataModel.addRow(v);
+ }
+
+ if (mDataModel.getRowCount() >0)
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/AutoRecoveryModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/AutoRecoveryModel.java
new file mode 100644
index 000000000..90b617cbd
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CACertsTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CACertsTab.java
new file mode 100644
index 000000000..6d918fd29
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CACertsTab.java
@@ -0,0 +1,395 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.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.add(Constants.PR_NICK_NAME, nickname);
+ nvps.add(Constants.PR_SERIAL_NUMBER, serialno);
+ nvps.add(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;
+ NameValuePair nvp = results.elementAt(0);
+ String name = nvp.getName();
+ String print = nvp.getValue();
+ 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.add(Constants.PR_NICK_NAME, nickname);
+ nvps.add(Constants.PR_SERIAL_NUMBER, serialno);
+ nvps.add(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;
+ NameValuePair nvp = results.elementAt(0);
+ String name = nvp.getName();
+ String trust = nvp.getValue();
+ 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.add("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 };
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ vals[i++] = entry;
+ }
+
+ int sindex = 0;
+ String snickname = "";
+ CMSAdminUtil.quickSort(vals, 0, response.size()-1);
+ for (i=0; i<vals.length; i++) {
+ Vector v = new Vector();
+ String entry = vals[i];
+ String value = response.getValue(entry);
+
+ // look for the comma separator
+ int lastindex = entry.lastIndexOf(",");
+ if (lastindex != -1) {
+ String nickname = entry.substring(0, lastindex);
+ int colonindex = nickname.indexOf(":");
+ if (colonindex != -1)
+ v.addElement(nickname.substring(colonindex+1));
+ else
+ v.addElement(nickname);
+ v.addElement(entry.substring(lastindex+1));
+ v.addElement(value);
+ if (colonindex != -1)
+ v.addElement(nickname.substring(0, colonindex));
+ else
+ v.addElement("internal");
+ mDataModel.addRow(v);
+ }
+ }
+ if (vals.length > 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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSAccessLogPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSAccessLogPanel.java
new file mode 100644
index 000000000..420711e40
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSAccessLogPanel.java
@@ -0,0 +1,213 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 java.util.*;
+import javax.swing.*;
+
+/**
+ * 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.add(Constants.PR_LOG_ENABLED, "");
+ nvp.add(Constants.PR_LOG_LEVEL, "");
+ nvp.add(Constants.PR_LOG_BUFFERSIZE, "");
+ //nvp.add(Constants.PR_LOG_EXPIRED_TIME, "");
+ //nvp.add(Constants.PR_LOG_FILENAME, "");
+ //nvp.add(Constants.PR_LOG_FLUSHINTERVAL, "");
+ nvp.add(Constants.PR_LOG_MAXFILESIZE, "");
+ nvp.add(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.removeAllPairs();
+ nvp.add(Constants.PR_NT_EVENT_SOURCE, "");
+ nvp.add(Constants.PR_NT_LOG_LEVEL, "");
+ nvp.add(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.getValue(Constants.PR_LOG_ENABLED).equalsIgnoreCase(
+ Constants.TRUE))
+ activateLog.setSelected(true);
+ else
+ activateLog.setSelected(false);
+ mLevel = Integer.parseInt(nvp.getValue(Constants.PR_LOG_LEVEL));
+ mlogBufSizTextData = nvp.getValue(Constants.PR_LOG_BUFFERSIZE);
+ mlogMaxSizTextData = nvp.getValue(Constants.PR_LOG_MAXFILESIZE);
+ int val =
+ Integer.parseInt(nvp.getValue(Constants.PR_LOG_ROLLEROVER_INTERVAL));
+ mFrequency = getRollOverIndex(val);
+ }
+
+ private void parseNTVals(NameValuePairs nvp) {
+ mNTLevel = Integer.parseInt(nvp.getValue(Constants.PR_NT_LOG_LEVEL));
+ mSource = nvp.getValue(Constants.PR_NT_EVENT_SOURCE);
+ if (nvp.getValue(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.add(Constants.PR_LOG_ENABLED, Constants.TRUE);
+ else
+ nvp.add(Constants.PR_LOG_ENABLED, Constants.FALSE);
+ String str = "" + mLogLevel.getSelectedIndex();
+ nvp.add(Constants.PR_LOG_LEVEL, str);
+ nvp.add(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.add(Constants.PR_LOG_MAXFILESIZE, mlogMaxSizText.getText().trim());
+
+ str = "" + getRollOverTime(mlogFQC.getSelectedIndex());
+ nvp.add(Constants.PR_LOG_ROLLEROVER_INTERVAL, str);
+
+ try {
+ mAdmin.modify(DestDef.DEST_LOG_ADMIN,
+ ScopeDef.SC_SYSTEMLOG, Constants.RS_ID_CONFIG, nvp);
+ if (mIsNT) {
+ nvp.removeAllPairs();
+ nvp.add(Constants.PR_NT_LOG_LEVEL,
+ ""+mNTLogLevel.getSelectedIndex());
+ nvp.add(Constants.PR_NT_EVENT_SOURCE,
+ mEventSourceText.getText().trim());
+ if (mActivateNTLog.isSelected())
+ nvp.add(Constants.PR_NT_LOG_ENABLED, Constants.TRUE);
+ else
+ nvp.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSAuditLogPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSAuditLogPanel.java
new file mode 100644
index 000000000..ba03e487b
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSAuditLogPanel.java
@@ -0,0 +1,213 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 java.util.*;
+import javax.swing.*;
+
+/**
+ * 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.add(Constants.PR_LOG_ENABLED, "");
+ nvp.add(Constants.PR_LOG_LEVEL, "");
+ nvp.add(Constants.PR_LOG_BUFFERSIZE, "");
+ //nvp.add(Constants.PR_LOG_EXPIRED_TIME, "");
+ //nvp.add(Constants.PR_LOG_FILENAME, "");
+ //nvp.add(Constants.PR_LOG_FLUSHINTERVAL, "");
+ nvp.add(Constants.PR_LOG_MAXFILESIZE, "");
+ nvp.add(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.removeAllPairs();
+ nvp.add(Constants.PR_NT_EVENT_SOURCE, "");
+ nvp.add(Constants.PR_NT_LOG_LEVEL, "");
+ nvp.add(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.getValue(Constants.PR_LOG_ENABLED).equalsIgnoreCase(
+ Constants.TRUE))
+ activateLog.setSelected(true);
+ else
+ activateLog.setSelected(false);
+ mLevel = Integer.parseInt(nvp.getValue(Constants.PR_LOG_LEVEL));
+ mlogBufSizTextData = nvp.getValue(Constants.PR_LOG_BUFFERSIZE);
+ mlogMaxSizTextData = nvp.getValue(Constants.PR_LOG_MAXFILESIZE);
+ int val =
+ Integer.parseInt(nvp.getValue(Constants.PR_LOG_ROLLEROVER_INTERVAL));
+ mFrequency = getRollOverIndex(val);
+ }
+
+ private void parseNTVals(NameValuePairs nvp) {
+ mNTLevel = Integer.parseInt(nvp.getValue(Constants.PR_NT_LOG_LEVEL));
+ mSource = nvp.getValue(Constants.PR_NT_EVENT_SOURCE);
+ if (nvp.getValue(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.add(Constants.PR_LOG_ENABLED, Constants.TRUE);
+ else
+ nvp.add(Constants.PR_LOG_ENABLED, Constants.FALSE);
+ String str = "" + mLogLevel.getSelectedIndex();
+ nvp.add(Constants.PR_LOG_LEVEL, str);
+ nvp.add(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.add(Constants.PR_LOG_MAXFILESIZE, mlogMaxSizText.getText().trim());
+
+ str = "" + getRollOverTime(mlogFQC.getSelectedIndex());
+ nvp.add(Constants.PR_LOG_ROLLEROVER_INTERVAL, str);
+
+ try {
+ mAdmin.modify(DestDef.DEST_LOG_ADMIN,
+ ScopeDef.SC_AUDITLOG, Constants.RS_ID_CONFIG, nvp);
+ if (mIsNT) {
+ nvp.removeAllPairs();
+ nvp.add(Constants.PR_NT_LOG_LEVEL,
+ ""+mNTLogLevel.getSelectedIndex());
+ nvp.add(Constants.PR_NT_EVENT_SOURCE,
+ mEventSourceText.getText().trim());
+ if (mActivateNTLog.isSelected())
+ nvp.add(Constants.PR_NT_LOG_ENABLED, Constants.TRUE);
+ else
+ nvp.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSAutoRecovery.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSAutoRecovery.java
new file mode 100644
index 000000000..3fcaedea6
--- /dev/null
+++ b/pki/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 javax.swing.border.*;
+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.add(Constants.PR_RECOVERY_AGENT, val);
+ nvps.add(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; i<mDataModel.getRowCount(); i++) {
+ for (int j=1; j<mDataModel.getColumnCount(); j++) {
+ String val = (String)mDataModel.getValueAt(i, j);
+ if (val.equals(""))
+ return "";
+ else if (j == (mDataModel.getColumnCount()-1))
+ result = result+val;
+ else
+ result = result+val+"=";
+ }
+ if (i < (mDataModel.getRowCount()-1))
+ result = result+",";
+ }
+ return result;
+ }
+
+ private void cleanup() {
+ mDataModel.removeAllRows();
+ }
+
+ private void setDisplay() {
+ GridBagLayout gbm = new GridBagLayout();
+ getContentPane().setLayout(gbm);
+ GridBagConstraints gbc = new GridBagConstraints();
+
+ CMSAdminUtil.resetGBC(gbc);
+ JLabel heading = CMSAdminUtil.makeJLabel(mResource, PREFIX,
+ "HEADING", null);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbm.setConstraints(heading, gbc);
+ getContentPane().add(heading);
+
+ createTable();
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbc.weighty = 1.0;
+ gbc.fill = gbc.BOTH;
+ gbm.setConstraints(mScrollPane, gbc);
+ getContentPane().add(mScrollPane);
+
+ JPanel action = makeActionPane();
+
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.SOUTH;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.gridheight = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbm.setConstraints(action, gbc);
+ getContentPane().add(action);
+
+ this.show();
+ }
+
+ private JPanel makeLabelPane() {
+ JPanel labelPane = new JPanel();
+ GridBagLayout gb = new GridBagLayout();
+ GridBagConstraints gbc = new GridBagConstraints();
+ labelPane.setLayout(gb);
+
+ CMSAdminUtil.resetGBC(gbc);
+ JLabel heading = CMSAdminUtil.makeJLabel(mResource, PREFIX,
+ "HEADING", null);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.gridheight = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbc.weighty = 1.0;
+ gb.setConstraints(heading, gbc);
+ labelPane.add(heading);
+ return labelPane;
+ }
+
+ private JPanel makeActionPane() {
+ mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this);
+ mOK.setActionCommand("ok");
+ mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", null, this);
+ mCancel.setActionCommand("cancel");
+ JButton[] buttons = {mOK, mCancel};
+ JButtonFactory.resize(buttons);
+ return CMSAdminUtil.makeJButtonPanel(buttons);
+ }
+
+ private void createTable() {
+
+ NameValuePairs nvps = new NameValuePairs();
+ nvps.add(Constants.PR_RECOVERY_M, "");
+
+ int numUsers = 0;
+ try {
+ NameValuePairs val = mAdmin.read(DestDef.DEST_KRA_ADMIN,
+ ScopeDef.SC_RECOVERY, Constants.RS_ID_CONFIG, nvps);
+ String str = val.getValue(Constants.PR_RECOVERY_M);
+ numUsers = Integer.parseInt(str);
+ } catch (EAdminException e) {
+ //showErrorDialog(e.toString());
+ }
+
+ mDataModel = new AutoRecoveryModel();
+ Vector[] data = new Vector[numUsers];
+ for (int i=0; i<data.length; i++) {
+ data[i] = new Vector();
+ Integer num = new Integer(i+1);
+ data[i].addElement(num.toString());
+ data[i].addElement("");
+ data[i].addElement("");
+ mDataModel.addRow(data[i]);
+ }
+
+ mTable = new JTable(mDataModel);
+ mTable.setShowGrid(true);
+ mScrollPane = JTable.createScrollPaneForTable(mTable);
+ mScrollPane.setHorizontalScrollBarPolicy(mScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+ mScrollPane.setVerticalScrollBarPolicy(mScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+ mTable.setAutoscrolls(true);
+ mTable.sizeColumnsToFit(true);
+ mTable.setPreferredScrollableViewportSize(new Dimension(200, 100));
+ //mTable.setMaximumSize(new Dimension(200, 100));
+ mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
+ mTable.getSelectionModel().addListSelectionListener(this);
+ mScrollPane.setBackground(Color.white);
+ mTable.addMouseListener((MouseListener)this);
+ setLabelCellRenderer(mTable, 1);
+ setLabelCellEditor(mTable, 2);
+ }
+
+ public void mouseClicked(MouseEvent e) {}
+ public void mousePressed(MouseEvent e) {}
+ public void mouseReleased(MouseEvent e) {}
+ public void mouseEntered(MouseEvent e) {}
+ public void mouseExited(MouseEvent e) {}
+ public void valueChanged(ListSelectionEvent e){
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigDialog.java
new file mode 100644
index 000000000..2d3129f8e
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigDialog.java
@@ -0,0 +1,1084 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * Plugin Parameter Configuration Dialog
+ *
+ * @author Steve Parkinson
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config
+ */
+public class CMSBaseConfigDialog extends JDialog
+ implements ActionListener, MouseListener, FocusListener
+{
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ protected JFrame mParentFrame;
+ protected ResourceBundle mResource;
+
+ protected String PREFIX = null;
+
+ protected boolean mIsOK = false;
+ protected NameValuePairs mData=null;
+
+ protected JScrollPane mScrollPane=null;
+ protected JTable mTable=null;
+ protected String mRuleName=null;//instance name
+ protected JPanel mParamPanel=null;
+ protected JPanel mHelpPanel=null;
+ protected JTextArea mHelpLabel=null;
+
+ protected JButton mOK=null, mCancel=null, mHelp=null;
+ protected JTextField mPluginName=null;
+ protected JLabel mImplnameCaption=null,mRulenameCaption=null;
+ protected JLabel mImplName=null, mPluginLabel=null;
+ protected String RAHELPINDEX=null;
+ protected String KRAHELPINDEX=null;
+ protected String CAHELPINDEX=null;
+ protected String mHelpToken=null;
+
+ protected AdminConnection mAdminConnection = null;
+
+ protected String mImplName_token=null;//nvp index for plubinName
+ protected String mImplType=null;//plugin type:policy,auth etc
+ protected String mDest;
+ protected String mInstanceScope=null;
+ protected String mId = null; // used as a ip id for crl exts
+
+ /* true if creating a new instance
+ * false if editing an old one
+ */
+ protected boolean mNewInstance=false; //
+
+ private ExtendedPluginInfoSet mEPIs = null;
+ protected CMSBaseResourceModel mModel = null;
+
+ private String mServletName;
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public CMSBaseConfigDialog(JFrame frame,
+ String dest) {
+ super(frame,true);
+ mServletName = dest;
+ }
+
+ protected void init(NameValuePairs nvp,
+ JFrame parent,
+ AdminConnection conn,
+ String dest)
+ {
+ mParentFrame = parent;
+ mDest = dest;
+ mAdminConnection = conn;
+ mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName());
+ setSize(360, 415);
+
+ setTitle(mResource.getString(PREFIX+"_TITLE"));
+ setLocationRelativeTo(mParentFrame);
+ getRootPane().setDoubleBuffered(true);
+ setDisplay();
+ }
+
+ protected void init(NameValuePairs nvp,
+ JFrame parent,
+ AdminConnection conn,
+ String dest,
+ String id)
+ {
+ mId = id;
+ init(nvp, parent, conn, dest);
+ }
+
+ /*==========================================================
+ * public methods
+ *==========================================================*/
+
+ /**
+ * the model needs to be set if we need to start/stop the progress
+ * bar.
+ */
+
+ public void setModel(CMSBaseResourceModel model)
+ {
+ mModel = model;
+ }
+
+ public void setInstanceScope(String s)
+ {
+ mInstanceScope = s;
+ }
+
+ /**
+ * retrieve the extended plugin information for this plugin
+ * from the server. The servlet must implement the scope
+ * 'extendedPluginInfo' and the plugin must implement the
+ * IExtendedPluginInfo interface, or else the display
+ * will revert back to simple name-value pairs.
+ */
+
+ ExtendedPluginInfoSet getExtendedPluginInfo(String implname,
+ NameValuePairs oldstyle) {
+
+ NameValuePairs data = new NameValuePairs();
+ String query = mImplType+":"+implname;//implName:pluginName
+ NameValuePairs response=null;
+
+ if (mImplType.equals("policy") &&
+ (mRuleName != null) && !mRuleName.trim().equals("")) {
+ query = query + ":" + mRuleName;
+ }
+
+ /* make the request to the server */
+ try {
+ response = mAdminConnection.read(mServletName,
+ ScopeDef.SC_EXTENDED_PLUGIN_INFO,
+ query,
+ data);
+ }
+ catch (EAdminException e) {
+ }
+
+ ExtendedPluginInfoSet epis = new ExtendedPluginInfoSet();
+
+ if (response == null) response = new NameValuePairs();
+
+ /* if the servlet or rule wasn't capable of handling the new style
+ * of interface, just return the names from the name/value pairs that
+ * were passed in
+ */
+
+ Enumeration enum1 = oldstyle.elements();
+
+ /* otherwise, for each parameter name, fetch the associated
+ * parameter type from the extendedPluginInfo that the server
+ * returned
+ */
+ while (enum1.hasMoreElements()) {
+ NameValuePair pair = (NameValuePair)enum1.nextElement();
+ NameValuePair epiNVPair = (NameValuePair)response.getPair(pair.getName());
+ if (epiNVPair != null) {
+ epis.add(pair.getName(), epiNVPair.getValue(),false);
+ }
+ else {
+ epis.add(pair.getName(), "",true);
+ }
+ }
+
+
+ String ht = response.getValue("HELP_TOKEN");
+ if (ht != null) epis.setHelpToken(ht);
+
+ String hs = response.getValue("HELP_TEXT");
+ if (hs != null) epis.setHelpSummary(hs);
+
+ return epis;
+ }
+
+
+
+ /**
+ * show the list of configuration parameters
+ */
+ public void showDialog(NameValuePairs data, String name) {
+ mIsOK = false;
+
+ mData = data;
+
+ Debug.println("in CMSBaseConfigDialog.showDialog()");
+
+ JPanel p = mParamPanel;
+ GridBagLayout gb = new GridBagLayout();
+ GridBagConstraints gbc = new GridBagConstraints();
+ p.setLayout(gb);
+
+ mRuleName = data.getValue(mImplName_token);
+ mEPIs = getExtendedPluginInfo(mRuleName,data);
+
+ for (Enumeration e = data.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ Debug.println("in CMSBaseConfigDialog.showDialog() entry=" + entry);
+ if (!entry.equals(mImplName_token)) {
+ String labelname = entry;
+
+ /* comp is the component which represents the value
+ * of the parameter. It can be a checkbox, choice, or
+ * text field
+ */
+
+ JComponent comp = null;
+ String stringvalue = data.getValue(entry);
+ ExtendedPluginInfo epi = mEPIs.get(entry);
+ if (epi == null) {
+ Debug.println("no ExtendedPluginInfo for "+entry);
+ }
+
+ if (epi.getType() == ExtendedPluginInfo.TYPE_PASSWORD) {
+ labelname = "password";
+ }
+
+ if (epi.isRequired()) {
+ labelname = "* "+labelname;
+ }
+
+ /* this label is the name of the parameter. We need
+ * to add a mouselistener so that we can update the
+ * help text if someone clicks on the label
+ */
+ JLabel l = new JLabel(labelname);
+ l.addMouseListener(this);
+
+ CMSAdminUtil.resetGBC(gbc);
+
+ gbc.gridwidth = 1;
+ gbc.fill = gbc.NONE;
+ gbc.weightx = 0.2;
+ gbc.gridwidth = 1;
+ gbc.anchor = gbc.EAST;
+ gbc.insets = new Insets(
+ CMSAdminUtil.COMPONENT_SPACE, // top
+ 0, // left
+ 0, // bottom
+ 5); // right
+ p.add(l,gbc);
+
+
+ /* if there was no text extendedplugininfo for this parameter
+ * just make it a text box
+ */
+ if (epi == null) {
+ comp = new JTextField(stringvalue);
+ }
+ else {
+ epi.setValue(stringvalue);
+ comp = epi.makeComponent(this);
+ }
+
+ /* this lets us get an event when this component
+ * is clicked on, so we can update the help text
+ */
+ comp.addFocusListener(this);
+
+ gbc.weightx = 0.7;
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.gridwidth = gbc.RELATIVE;
+ gbc.anchor = gbc.WEST;
+ gbc.insets = new Insets(
+ CMSAdminUtil.COMPONENT_SPACE, //top
+ 0, //left
+ 0, //bottom
+ 0); // right
+ p.add(comp ,gbc);
+
+ /* add a dummy component to the end of each row to
+ * keep it from hiting the edge of the panel
+ */
+ JLabel j = new JLabel("");
+ gbc.weightx = 0.1;
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.anchor = gbc.WEST;
+ gbc.insets = new Insets(
+ CMSAdminUtil.COMPONENT_SPACE, //top
+ 0, //left
+ 0, //bottom
+ CMSAdminUtil.COMPONENT_SPACE); // right
+ p.add(j,gbc);
+
+ }
+ }
+
+ mImplName.setText(mRuleName);
+
+ if ((name==null)||name.equals("")) {
+ mNewInstance = true;
+ /* we're dealing with a new instance - so the rule name is
+ * a text box - it's editable
+ */
+ mPluginName.setVisible(true);
+ mPluginName.setText(getDefaultInstanceName(mRuleName));
+ mPluginLabel.setVisible(false);
+ } else {
+ mNewInstance = false;
+ /* we're editing an old instance - so the rule name is just
+ * a label - you can't edit it
+ */
+ mPluginName.setVisible(false);
+ mPluginLabel.setVisible(true);
+ mPluginLabel.setText(name);
+ }
+
+ mHelpLabel.setText(mEPIs.getHelpSummary());
+ mHelpLabel.repaint();
+
+ mImplName.addMouseListener(this);
+ mPluginName.addMouseListener(this);
+ mPluginLabel.addMouseListener(this);
+
+ this.show();
+ }
+
+ public String getDefaultInstanceName(String implName)
+ {
+ Debug.println("in CMSBaseConfigDialog::getDefaultInstanceName("+implName+") - returning ''");
+ return "";
+ }
+
+ public boolean isOK() {
+ return mIsOK;
+ }
+
+
+ public String getRuleName() {
+ return mRuleName;
+ }
+
+ /*==========================================================
+ * EVENT HANDLER METHODS
+ *==========================================================*/
+
+ /**
+ * 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) {
+ Component comp = f.getComponent();
+ mPluginName.addFocusListener(this);
+ mPluginLabel.addMouseListener(this);
+ String text = "";
+
+ if (comp instanceof ExtendedPluginInfoComponent) {
+ ExtendedPluginInfoComponent epic = (ExtendedPluginInfoComponent)comp;
+ ExtendedPluginInfo epi = epic.getExtendedPluginInfo();
+ text = epi.getHelpText()+" ";
+ }
+ else if (doHelpSummary(comp)) {
+ text = mEPIs.getHelpSummary();
+ }
+ else {
+ }
+
+ mHelpLabel.setText(text);
+ mHelpLabel.repaint();
+
+ }
+
+ /** need to supply this method for focuslistener, but we
+ * really don't care about it
+ */
+ public void focusLost(FocusEvent f) {
+ }
+
+
+ /*
+ * mouselistener events - for JLabel
+ */
+
+ /**
+ * This lets us know when someone clicked a label, so we can
+ * update the help text
+ */
+ public void mouseClicked(MouseEvent e) {
+ Component c = e.getComponent();
+ String helpText = "";
+ if (c instanceof JLabel) {
+ String paramName = ((JLabel)c).getText();
+ ExtendedPluginInfo epi = mEPIs.get(paramName);
+
+ if (epi != null) helpText = epi.getHelpText();
+ else if (doHelpSummary(c)) {
+ helpText = mEPIs.getHelpSummary();
+ }
+ }
+ mHelpLabel.setText(helpText);
+ mHelpLabel.repaint();
+ }
+
+ public void mouseEntered(MouseEvent e) {
+ }
+ public void mouseExited(MouseEvent e) {
+ }
+ public void mousePressed(MouseEvent e) {
+ }
+ public void mouseReleased(MouseEvent e) {
+ }
+
+
+ public boolean doHelpSummary(Component c) {
+
+ if (c.equals(mPluginName) ||
+ c.equals(mPluginLabel) ||
+ c.equals(mRulenameCaption) ||
+ c.equals(mImplnameCaption) ||
+ c.equals(mImplName) ) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+
+ //=== ACTIONLISTENER =====================
+
+ /**
+ * this gets called when a someone made some kind of event happen.
+ * We really only check for the OK, Cancel, or Help buttons here
+ */
+ public void actionPerformed(ActionEvent evt) {
+
+ if (evt.getSource().equals(mOK)) {
+
+ /* if this is a new instance of a rule, (as opposed to editing an old one) */
+ if (mNewInstance) {
+ mRuleName = mPluginName.getText();
+ /* make sure they set the name of the rule, otherwise, show an error message */
+ if (mRuleName.trim().equals("")) {
+ CMSAdminUtil.showErrorDialog(mParentFrame, mResource,
+ mResource.getString("INSTANCECONFIGDIALOG_DIALOG_NOINSTANCENAME_MESSAGE"),
+ CMSAdminUtil.ERROR_MESSAGE);
+ return;
+ }
+ }
+ else {
+ mRuleName = mPluginLabel.getText();
+ }
+
+ Debug.println(4,"User pressed okay on instance config dialog");
+ Enumeration e = mEPIs.keys();
+ NameValuePairs nvp = new NameValuePairs();
+ while (e.hasMoreElements()) {
+ String paramName = (String)e.nextElement();
+ ExtendedPluginInfo epi = mEPIs.get(paramName);
+ String value = epi.getComponentStateAsString();
+ if (epi.getType() == ExtendedPluginInfo.TYPE_PASSWORD) {
+ String password = value;
+ value = "Rule "+mRuleName;
+ if (password != null && password.length() >0) {
+ nvp.add("PASSWORD_CACHE_ADD",value+";"+password);
+ }
+ }
+
+ nvp.add(paramName,value);
+ }
+ nvp.add(PolicyRuleDataModel.RULE_NAME,mRuleName);
+ nvp.add(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.add(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};
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseConfigPanel.java
new file mode 100644
index 000000000..89dce60c7
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLDAPPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLDAPPanel.java
new file mode 100644
index 000000000..cb8826d2a
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLDAPPanel.java
@@ -0,0 +1,693 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.add(Constants.PR_PUBLISHING_ENABLE,"");
+ if (mLDAPPublishing)
+ nvps.add(Constants.PR_ENABLE,"");
+ nvps.add(Constants.PR_HOST_NAME, "");
+ nvps.add(Constants.PR_LDAP_PORT, "");
+ nvps.add(Constants.PR_SECURE_PORT_ENABLED, "");
+ //nvps.add(Constants.PR_BASE_DN, "");
+ nvps.add(Constants.PR_BIND_DN, "");
+ nvps.add(Constants.PR_LDAP_VERSION, "");
+ nvps.add(Constants.PR_AUTH_TYPE, "");
+ nvps.add(Constants.PR_CERT_NAMES, "");
+ nvps.add(Constants.PR_LDAP_CLIENT_CERT, "");
+
+ nvps.add(Constants.PR_PUBLISHING_QUEUE_ENABLE, "");
+ nvps.add(Constants.PR_PUBLISHING_QUEUE_THREADS, "");
+ nvps.add(Constants.PR_PUBLISHING_QUEUE_PAGE_SIZE, "");
+ nvps.add(Constants.PR_PUBLISHING_QUEUE_PRIORITY, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_HOST_NAME)) {
+ mHostNameText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_LDAP_PORT)) {
+ mPortText.setText(nvp.getValue());
+ } 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_BIND_DN)) {
+ mBindAsText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_PUBLISHING_ENABLE)) {
+ if (nvp.getValue().equals(Constants.TRUE))
+ mEnablePublishing.setSelected(true);
+ else
+ mEnablePublishing.setSelected(false);
+ } else if (name.equals(Constants.PR_PUBLISHING_QUEUE_ENABLE)) {
+ if (nvp.getValue().equals(Constants.TRUE)) {
+ mEnableQueue.setSelected(true);
+ mPublishingQueue = true;
+ } else {
+ mEnableQueue.setSelected(false);
+ mPublishingQueue = false;
+ }
+ } else if (name.equals(Constants.PR_PUBLISHING_QUEUE_THREADS)) {
+ mMaxNumberOfPublishingThreads = nvp.getValue();
+ } else if (name.equals(Constants.PR_PUBLISHING_QUEUE_PAGE_SIZE)) {
+ mPublishingQueuePageSize = nvp.getValue();
+ } else if (name.equals(Constants.PR_PUBLISHING_QUEUE_PRIORITY)) {
+ mPublishingQueuePriorityLevel = nvp.getValue();
+ } else if (name.equals(Constants.PR_PUBLISHING_QUEUE_STATUS)) {
+ mPublishingQueueStatus = nvp.getValue();
+ } else if (name.equals(Constants.PR_ENABLE)) {
+ if (nvp.getValue().equals(Constants.TRUE))
+ mEnable.setSelected(true);
+ else
+ mEnable.setSelected(false);
+ } else if (name.equals(Constants.PR_AUTH_TYPE)) {
+ int index = getIndex(nvp.getValue(), AUTHTYPE);
+ if (index >= 0)
+ mAuthBox.setSelectedIndex(index);
+ } else if (name.equals(Constants.PR_CERT_NAMES)) {
+ mCertBox.removeAllItems();
+ String certNames = nvp.getValue();
+ 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 = nvp.getValue();
+ } else if (name.equals(Constants.PR_LDAP_VERSION)) {
+ version = nvp.getValue();
+ }
+ }
+
+ 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<array.length; i++) {
+ if (val.equals(array[i]))
+ return i;
+ }
+ return -1;
+ }
+
+ private void enableFieldsAndLDAP(boolean enable, Color color) {
+ mEnable.setEnabled(enable);
+ mEnableQueue.setEnabled(enable);
+ if (!enable) {
+ mEnable.setSelected(false);
+ mEnableQueue.setSelected(false);
+ mPublishingQueue = false;
+ }
+ enableFields(enable, color);
+ }
+
+ private void enableFields(boolean enable, Color color) {
+ mHostNameText.setEnabled(enable);
+ mHostNameText.setEditable(enable);
+ mHostNameText.setBackground(color);
+ mPortText.setEnabled(enable);
+ mPortText.setEditable(enable);
+ mPortText.setBackground(color);
+ mPasswordText.setEnabled(enable);
+ mPasswordText.setEditable(enable);
+ mPasswordText.setBackground(color);
+ mSecurePort.setEnabled(enable);
+ mHostLabel.setEnabled(enable);
+ mPortLabel.setEnabled(enable);
+ mAuthBox.setEnabled(enable);
+ mAuthLabel.setEnabled(enable);
+ mVersionLabel.setEnabled(enable);
+ mVersionBox.setEnabled(enable);
+ mPasswordLabel.setEnabled(enable);
+ enableAuthFields(enable, color);
+ }
+
+ private void enableAuthFields(boolean enable, Color color) {
+ if (enable) {
+ if (mAuthBox.getSelectedIndex() == 0) {
+ mCertLabel.setEnabled(!enable);
+ mCertBox.setEnabled(!enable);
+ mBindAsText.setEnabled(enable);
+ mBindAsText.setEditable(enable);
+ mBindAsText.setBackground(color);
+ mBindAsLabel.setEnabled(enable);
+ mPasswordText.setEnabled(enable);
+ mPasswordText.setEditable(enable);
+ mPasswordText.setBackground(color);
+ mPasswordLabel.setEnabled(enable);
+ } else {
+ mCertLabel.setEnabled(enable);
+ mCertBox.setEnabled(enable);
+ mBindAsText.setEnabled(!enable);
+ mBindAsText.setEditable(!enable);
+ mBindAsText.setBackground(getBackground());
+ mBindAsLabel.setEnabled(!enable);
+ mPasswordText.setEnabled(!enable);
+ mPasswordText.setEditable(!enable);
+ mPasswordText.setBackground(getBackground());
+ mPasswordLabel.setEnabled(!enable);
+ }
+ } else {
+ mCertLabel.setEnabled(enable);
+ mCertBox.setEnabled(enable);
+ mBindAsText.setEnabled(enable);
+ mBindAsText.setEditable(enable);
+ mBindAsText.setBackground(color);
+ mBindAsLabel.setEnabled(enable);
+ mPasswordText.setEnabled(enable);
+ mPasswordText.setEditable(enable);
+ mPasswordText.setBackground(color);
+ mPasswordLabel.setEnabled(enable);
+ }
+ repaintComp(mHostLabel);
+ repaintComp(mPortLabel);
+ repaintComp(mSecurePort);
+ repaintComp(mBindAsLabel);
+ repaintComp(mCertLabel);
+ repaintComp(mAuthLabel);
+ repaintComp(mVersionLabel);
+ repaintComp(mPasswordText);
+ repaintComp(mPasswordLabel);
+ }
+
+ private void repaintComp(JComponent component) {
+ component.invalidate();
+ component.validate();
+ component.repaint(1);
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ super.actionPerformed(e);
+ if (mEnablePublishing.isSelected()) {
+ mEnable.setEnabled(true);
+ mEnableQueue.setEnabled(true);
+ enableFieldsAndLDAP(true, mActiveColor);
+ } else {
+ mEnable.setEnabled(false);
+ mEnableQueue.setEnabled(false);
+ enableFieldsAndLDAP(false, getBackground());
+ }
+ if (mLDAPPublishing) {
+ if (mEnable.isSelected()) {
+ enableFields(true, mActiveColor);
+ } else {
+ enableFields(false, getBackground());
+ }
+ }
+ }
+
+ public void itemStateChanged(ItemEvent e) {
+ super.itemStateChanged(e);
+ if (e.getSource().equals(mAuthBox)) {
+ int index = mAuthBox.getSelectedIndex();
+ if (index == 1) {
+ mSecurePort.setSelected(true);
+ }
+ enableFields(true, mActiveColor);
+ } else if (e.getSource().equals(mEnable)) {
+ if (mEnable.isSelected()) {
+ mEnableQueue.setSelected(true);
+ }
+ enableFields(true, mActiveColor);
+ }
+ }
+
+ /**
+ * Implementation for saving panel information
+ * @return true if save successful; otherwise, false.
+ */
+ public boolean applyCallback() {
+ // check blank fields
+ NameValuePairs nvps = new NameValuePairs();
+
+ if (mPublishing) {
+ if (mEnablePublishing.isSelected())
+ nvps.add(Constants.PR_PUBLISHING_ENABLE,Constants.TRUE);
+ else
+ nvps.add(Constants.PR_PUBLISHING_ENABLE,Constants.FALSE);
+ }
+
+ if (mLDAPPublishing) {
+ if (mEnable.isSelected())
+ nvps.add(Constants.PR_ENABLE,Constants.TRUE);
+ else
+ nvps.add(Constants.PR_ENABLE,Constants.FALSE);
+ }
+
+ if (mEnableQueue.isSelected())
+ nvps.add(Constants.PR_PUBLISHING_QUEUE_ENABLE, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_PUBLISHING_QUEUE_ENABLE, Constants.FALSE);
+ nvps.add(Constants.PR_PUBLISHING_QUEUE_THREADS, mMaxNumberOfPublishingThreads);
+ nvps.add(Constants.PR_PUBLISHING_QUEUE_PAGE_SIZE, mPublishingQueuePageSize);
+ nvps.add(Constants.PR_PUBLISHING_QUEUE_PRIORITY, mPublishingQueuePriorityLevel);
+ nvps.add(Constants.PR_PUBLISHING_QUEUE_STATUS, mPublishingQueueStatus);
+
+ if (mEnable.isSelected()) {
+ String host = mHostNameText.getText().trim();
+ String port = mPortText.getText().trim();
+ String bindAs = mBindAsText.getText().trim();
+ String passwd = null;
+
+ if (host.equals("") || port.equals("")) {
+ showMessageDialog("BLANKFIELD");
+ return false;
+ }
+
+ try {
+ int num = Integer.parseInt(port);
+ } catch (NumberFormatException e) {
+ showMessageDialog("NUMBERFORMAT");
+ return false;
+ }
+ nvps.add(Constants.PR_HOST_NAME, host);
+ nvps.add(Constants.PR_LDAP_PORT, port);
+
+ if (mSecurePort.isSelected())
+ nvps.add(Constants.PR_SECURE_PORT_ENABLED, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_SECURE_PORT_ENABLED, Constants.FALSE);
+
+ if (mAuthBox.getSelectedIndex() == 0) {
+ if (mPanelName.equals("CALDAPSETTING")) {
+ nvps.add(Constants.PR_BINDPWD_PROMPT, "CA LDAP Publishing");
+ } else {
+ nvps.add(Constants.PR_BINDPWD_PROMPT, "RA LDAP Publishing");
+ }
+ nvps.add(Constants.PR_BIND_DN, bindAs);
+ passwd = mPasswordText.getText();
+
+ if (passwd.equals("")) {
+ showMessageDialog("EMPTYPASSWD");
+ return false;
+ }
+
+ nvps.add(Constants.PR_DIRECTORY_MANAGER_PWD, passwd);
+ } else {
+ nvps.add(Constants.PR_LDAP_CLIENT_CERT,
+ (String)(mCertBox.getSelectedItem()));
+ }
+
+ int index = mAuthBox.getSelectedIndex();
+ if (index == 1) {
+ if (!mSecurePort.isSelected()) {
+ showMessageDialog("SSLERROR");
+ return false;
+ }
+ }
+ nvps.add(Constants.PR_AUTH_TYPE, AUTHTYPE[index]);
+ nvps.add(Constants.PR_LDAP_VERSION,
+ (String)mVersionBox.getSelectedItem());
+
+ // test the connection before save
+ /*
+ LDAPConnection conn = null;
+ if (mAuthBox.getSelectedIndex() == 1) {
+ try {
+ conn = new LDAPConnection(new LdapJssSSLSocketFactory(
+ (String)(mCertBox.getSelectedItem())));
+ showMessageDialog("SSLOK");
+ } catch (LDAPException e ) {
+ showMessageDialog("SSLERROR");
+ }
+ try {
+ conn.connect((String)mVersionBox.getSelectedItem(),
+ host, port, null, null);
+ } catch (LDAPException e ) {
+ showMessageDialog("SSLERROR");
+ }
+ } else {
+ try {
+ if (mSecurePort.isSelected()) {
+ conn = new LDAPConnection(new
+ LdapJssSSLSocketFactory());
+ } else {
+ conn = new LDAPConnection();
+ }
+ showMessageDialog("SSLOK");
+ } catch (LDAPException e ) {
+ showMessageDialog("SSLERROR");
+ }
+ try {
+ conn.connect(host, port);
+ showMessageDialog("SSLOK");
+ } catch (LDAPException e ) {
+ showMessageDialog("SSLERROR");
+ }
+ try {
+ conn.authenticate((String)mVersionBox.getSelectedItem(),
+ bindAs, passwd);
+ showMessageDialog("SSLOK");
+ } catch (LDAPException e ) {
+ showMessageDialog("SSLERROR");
+ }
+ }
+ */
+
+ }
+
+ mModel.progressStart();
+ try {
+ NameValuePairs nvps1 = mAdmin.process(mServletName, ScopeDef.SC_LDAP,
+ Constants.RS_ID_CONFIG, nvps, false);
+ // show test report
+ String report = "";
+ for (int i = 0; i<nvps1.size();i++) {
+ report = report + nvps1.elementAt(i).getValue() + "\n";
+ }
+ if (report.indexOf("Fail") == -1) {
+ JOptionPane.showMessageDialog(
+ UtilConsoleGlobals.getActivatedFrame(),
+ CMSAdminUtil.wrapText(report,80),
+ "Configuration Successful",
+ JOptionPane.INFORMATION_MESSAGE,
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_INFO_ICON));
+ clearDirtyFlag();
+ } else {
+ int i = JOptionPane.showConfirmDialog(
+ UtilConsoleGlobals.getActivatedFrame(),
+ CMSAdminUtil.wrapText(report,80),
+ "Configuration Error", JOptionPane.YES_NO_OPTION,
+ JOptionPane.ERROR_MESSAGE,
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_ERROR_ICON));
+ if (i == JOptionPane.YES_OPTION) {
+ mAdmin.modify(mServletName, ScopeDef.SC_LDAP,
+ Constants.RS_ID_CONFIG, nvps, false);
+ clearDirtyFlag();
+ } else {
+ nvps.add(Constants.PR_ENABLE, "false");
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLogPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLogPanel.java
new file mode 100644
index 000000000..c0437cbc4
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseLogPanel.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.management.client.util.*;
+import com.netscape.admin.certsrv.connection.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.*;
+
+/**
+ * Base Log Panel
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ */
+public abstract class CMSBaseLogPanel extends CMSBaseTab {
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ protected JCheckBox activateLog;
+
+ protected JComboBox mlogFQC, mLogLevel, mNTLogLevel;
+ protected JTextField mlogMaxSizText, mlogBufSizText, mEventSourceText;
+ protected Color mActiveColor;
+
+ protected Object mselectedItem;
+ protected String mlogMaxSizTextData, mlogBufSizTextData;
+ protected CMSBaseResourceModel mModel;
+ protected AdminConnection mAdmin;
+ protected int mLevel, mNTLevel;
+ protected int mFrequency;
+ protected String mSource;
+
+ protected JLabel mMaxLabel, mNTLogLevelLbl;
+ protected JLabel mBufferLabel, mEventSourceLbl;
+ protected JCheckBox mActivateNTLog;
+ protected boolean mIsNT;
+
+ 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;
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public CMSBaseLogPanel(String panelName, CMSTabPanel parent) {
+ super(panelName, parent);
+ mModel = parent.getResourceModel();
+ }
+
+ /*==========================================================
+ * public methods
+ *==========================================================*/
+
+ /**
+ * Actual Instantiation of the UI components
+ */
+ public void init() {
+ mAdmin = mModel.getServerInfo().getAdmin();
+ GridBagLayout gb = new GridBagLayout();
+ GridBagConstraints gbc = new GridBagConstraints();
+ CMSAdminUtil.resetGBC(gbc);
+ mCenterPanel.setLayout(gb);
+
+ //=== Activate Radio Button ===
+ activateLog = makeJCheckBox("ACTIVATE");
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, COMPONENT_SPACE);
+ gb.setConstraints(activateLog, gbc);
+ mCenterPanel.add(activateLog);
+
+ // use a lined border later...titled for now
+ JPanel logInfo = new JPanel();
+ GridBagLayout gb1 = new GridBagLayout();
+ logInfo.setLayout(gb1);
+ logInfo.setBorder(makeTitledBorder("LOGATTRIBUTE"));
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTH;
+ gbc.gridwidth = gbc.REMAINDER;
+ if (!mIsNT)
+ gbc.gridheight = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbc.weighty = 1.0;
+ gb.setConstraints(logInfo, gbc);
+ mCenterPanel.add(logInfo);
+
+ // Log Rotation Frequency
+ CMSAdminUtil.resetGBC(gbc);
+ JLabel logFQC = makeJLabel("LOGFQC");
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.weightx = 0.0;
+ gbc.weighty = 0.0;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, COMPONENT_SPACE);
+ logInfo.add(logFQC, gbc);
+
+ mlogFQC = makeJComboBox("LOGFQC");
+ gbc.anchor = gbc.WEST;
+ logInfo.add(mlogFQC, gbc);
+
+ JLabel dummyFQC = new JLabel();
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 1.0;
+ logInfo.add(dummyFQC, gbc);
+
+ // Log File Maximum Size
+ CMSAdminUtil.resetGBC(gbc);
+ JLabel logMaxSiz = makeJLabel("LOGMAXSIZ");
+ gbc.anchor = gbc.NORTHEAST;
+ gbc.weightx = 0.0;
+ gbc.weighty = 0.0;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, COMPONENT_SPACE);
+ logInfo.add(logMaxSiz, gbc);
+
+ mlogMaxSizText = makeJTextField(10);
+ gbc.anchor = gbc.WEST;
+ gbc.weightx = 0.007;
+ gbc.fill = gbc.HORIZONTAL;
+ logInfo.add(mlogMaxSizText, gbc);
+ mActiveColor = mlogMaxSizText.getBackground();
+
+ mMaxLabel = makeJLabel("SIZEUNIT");
+ gbc.weightx = 0.0;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, COMPONENT_SPACE);
+ logInfo.add(mMaxLabel, gbc);
+
+ JLabel dummy = new JLabel(" ");
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbc.fill = gbc.HORIZONTAL;
+ logInfo.add(dummy, gbc);
+
+ // Log File Buffer Size
+ CMSAdminUtil.resetGBC(gbc);
+ JLabel logBufSiz = makeJLabel("LOGBUFSIZ");
+ gbc.anchor = gbc.NORTHEAST;
+ gbc.weightx = 0.0;
+ gbc.weighty = 0.0;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, COMPONENT_SPACE);
+ logInfo.add(logBufSiz, gbc);
+
+ mlogBufSizText = makeJTextField(10);
+ gbc.anchor = gbc.WEST;
+ gbc.weightx = 0.007;
+ gbc.fill = gbc.HORIZONTAL;
+ logInfo.add(mlogBufSizText, gbc);
+
+ mBufferLabel = makeJLabel("SIZEUNIT");
+ gbc.insets = new Insets(COMPONENT_SPACE, 0, 0, COMPONENT_SPACE);
+ gbc.weightx = 0.0;
+ gbc.fill = gbc.NONE;
+ logInfo.add(mBufferLabel, gbc);
+
+ JLabel dummy1 = new JLabel(" ");
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbc.fill = gbc.HORIZONTAL;
+ logInfo.add(dummy1, gbc);
+
+ // Log Level
+ CMSAdminUtil.resetGBC(gbc);
+ JLabel logLevel = makeJLabel("LOGLEVEL");
+ gbc.anchor = gbc.NORTHEAST;
+ gbc.weightx = 0.0;
+ gbc.weighty = 0.0;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, COMPONENT_SPACE);
+ logInfo.add(logLevel, gbc);
+
+ mLogLevel = makeJComboBox("LOGLEVEL");
+ gbc.anchor = gbc.WEST;
+ logInfo.add(mLogLevel, gbc);
+
+ JLabel dummy2 = new JLabel(" ");
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbc.fill = gbc.HORIZONTAL;
+ logInfo.add(dummy2, gbc);
+
+ if (mIsNT)
+ addNTEventLog();
+ }
+
+ private void addNTEventLog() {
+ GridBagConstraints gbc = new GridBagConstraints();
+ CMSAdminUtil.resetGBC(gbc);
+ mActivateNTLog = makeJCheckBox("ACTIVATENTLOG");
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.insets = new Insets(0, COMPONENT_SPACE, 0, COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ mCenterPanel.add(mActivateNTLog, gbc);
+
+ JPanel NTLogInfo = new JPanel();
+ GridBagLayout gb1 = new GridBagLayout();
+ NTLogInfo.setLayout(gb1);
+ NTLogInfo.setBorder(makeTitledBorder("NTLOGATTRIBUTE"));
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTH;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.gridheight = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbc.weighty = 1.0;
+ mCenterPanel.add(NTLogInfo, gbc);
+
+ CMSAdminUtil.resetGBC(gbc);
+ mEventSourceLbl = makeJLabel("EVENTSOURCE");
+ gbc.anchor = gbc.NORTHEAST;
+ gbc.weightx = 0.0;
+ gbc.weighty = 0.0;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, COMPONENT_SPACE);
+ NTLogInfo.add(mEventSourceLbl, gbc);
+
+ mEventSourceText = makeJTextField(10);
+ gbc.anchor = gbc.WEST;
+ gbc.weightx = 0.007;
+ gbc.fill = gbc.HORIZONTAL;
+ NTLogInfo.add(mEventSourceText, gbc);
+
+ JLabel dummy1 = new JLabel(" ");
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbc.fill = gbc.HORIZONTAL;
+ NTLogInfo.add(dummy1, gbc);
+
+ CMSAdminUtil.resetGBC(gbc);
+ mNTLogLevelLbl = makeJLabel("LOGLEVEL");
+ gbc.anchor = gbc.NORTHEAST;
+ gbc.weightx = 0.0;
+ gbc.weighty = 0.0;
+ gbc.fill = gbc.NONE;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, 0, COMPONENT_SPACE);
+ NTLogInfo.add(mNTLogLevelLbl, gbc);
+
+ mNTLogLevel = makeJComboBox("LOGLEVEL");
+ gbc.anchor = gbc.WEST;
+ NTLogInfo.add(mNTLogLevel, gbc);
+
+ JLabel dummy2 = new JLabel(" ");
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.weightx = 1.0;
+ gbc.fill = gbc.HORIZONTAL;
+ NTLogInfo.add(dummy2, gbc);
+ }
+
+ /*==========================================================
+ * private methods
+ *==========================================================*/
+
+ //enable/disable section
+ protected void setSection(boolean flag) {
+ mlogFQC.setEnabled(flag);
+ mLogLevel.setEnabled(flag);
+ mlogMaxSizText.setEditable(flag);
+ mlogBufSizText.setEditable(flag);
+ if (flag) {
+ mlogFQC.setBackground(mActiveColor);
+ mLogLevel.setBackground(mActiveColor);
+ mlogMaxSizText.setBackground(mActiveColor);
+ mlogBufSizText.setBackground(mActiveColor);
+ } else {
+ mLogLevel.setBackground(getBackground());
+ mlogFQC.setBackground(getBackground());
+ mlogMaxSizText.setBackground(getBackground());
+ mlogBufSizText.setBackground(getBackground());
+ }
+ mlogFQC.repaint();
+ mlogMaxSizText.repaint();
+ mlogBufSizText.repaint();
+ }
+
+ protected void setNTSection(boolean flag, Color color) {
+ mNTLogLevel.setEnabled(flag);
+ mEventSourceText.setEnabled(flag);
+ mEventSourceText.setEditable(flag);
+ mEventSourceText.setBackground(color);
+ CMSAdminUtil.repaintComp(mNTLogLevel);
+ CMSAdminUtil.repaintComp(mEventSourceText);
+ }
+
+ //update component data
+ protected void setValues() {
+ if (activateLog.isSelected()) {
+ setSection(true);
+ } else {
+ setSection(false);
+ }
+ mlogFQC.setSelectedIndex(mFrequency);
+ mlogMaxSizText.setText(mlogMaxSizTextData);
+ mlogBufSizText.setText(mlogBufSizTextData);
+ mLogLevel.setSelectedIndex(mLevel);
+
+ if (mIsNT) {
+ if (mActivateNTLog.isSelected()) {
+ setNTSection(true, mActiveColor);
+ } else {
+ setNTSection(false, getBackground());
+ }
+ mEventSourceText.setText(mSource);
+ mNTLogLevel.setSelectedIndex(mNTLevel);
+ }
+ }
+
+ protected int getRollOverTime(int index) {
+ if (index == 0)
+ return HOUR;
+ else if (index == 1)
+ return DAY;
+ else if (index == 2)
+ return WEEK;
+ else if (index == 3)
+ return MONTH;
+ return YEAR;
+ }
+
+ protected int getRollOverIndex(int val) {
+ if (val >= 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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBaseTab.java
new file mode 100644
index 000000000..c3c707f68
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBlankPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSBlankPanel.java
new file mode 100644
index 000000000..b3f357564
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCACertSettingPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCACertSettingPanel.java
new file mode 100644
index 000000000..a43df0d12
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCACertSettingPanel.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;
+
+import com.netscape.admin.certsrv.*;
+import com.netscape.certsrv.common.*;
+import com.netscape.management.client.util.*;
+import javax.swing.*;
+import java.awt.*;
+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.add(Constants.PR_MAPPER, "");
+ nvp.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_MAPPER)) {
+ _mapper.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_PUBLISHER)) {
+ _publisher.setText(nvp.getValue());
+ }
+ }
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCAConnectorPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCAConnectorPanel.java
new file mode 100644
index 000000000..0ddb90dc4
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCAConnectorPanel.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.management.client.*;
+import com.netscape.management.client.util.*;
+import com.netscape.certsrv.common.*;
+import com.netscape.admin.certsrv.connection.*;
+import javax.swing.*;
+import javax.swing.border.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+
+/**
+ * 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.add(Constants.PR_ID, "");
+ nvps.add(Constants.PR_HOST, "");
+ nvps.add(Constants.PR_PORT, "");
+ // Inserted by beomsuk
+ nvps.add(Constants.PR_TIMEOUT, "");
+ // Insert end
+ nvps.add(Constants.PR_URI, "");
+ nvps.add(Constants.PR_LOCAL, "");
+ nvps.add(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.getValue("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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCAGeneralPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCAGeneralPanel.java
new file mode 100644
index 000000000..3efcd1bbc
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCAGeneralPanel.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;
+
+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.add(Constants.PR_EE_ENABLED, "");
+ //nvps.add(Constants.PR_RA_ENABLED, "");
+ nvps.add(Constants.PR_DEFAULT_ALGORITHM, "");
+ nvps.add(Constants.PR_ALL_ALGORITHMS, "");
+ nvps.add(Constants.PR_SERIAL, "");
+ nvps.add(Constants.PR_MAXSERIAL, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_EE_ENABLED)) {
+ mEEEnable.setSelected(getBoolean(nvp.getValue()));
+ } else if (name.equals(Constants.PR_OCSP_ENABLED)) {
+ mOCSPEnable.setSelected(getBoolean(nvp.getValue()));
+/*
+ } else if (name.equals(Constants.PR_RA_ENABLED)) {
+ mRAEnable.setSelected(getBoolean(nvp.getValue()));
+*/
+ } else if (name.equals(Constants.PR_VALIDITY)) {
+ mValidity.setSelected(getBoolean(nvp.getValue()));
+ } else if (name.equals(Constants.PR_DEFAULT_ALGORITHM)) {
+ defaultAlgorithm = nvp.getValue();
+ } else if (name.equals(Constants.PR_ALL_ALGORITHMS)) {
+ initAlgorithmBox(nvp.getValue());
+ } else if (name.equals(Constants.PR_SERIAL)) {
+ String serial = nvp.getValue();
+ if (!serial.equals(""))
+ mSerialNumber.setText(serial);
+ else
+ mSerialNumber.setText("All serial numbers are used");
+ } else if (name.equals(Constants.PR_MAXSERIAL)) {
+ String serial = nvp.getValue();
+ 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.add(Constants.PR_EE_ENABLED, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_EE_ENABLED, Constants.FALSE);
+
+ if (mOCSPEnable.isSelected())
+ nvps.add(Constants.PR_OCSP_ENABLED, Constants.TRUE);
+ else
+ nvps.add(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.add(Constants.PR_VALIDITY, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_VALIDITY, Constants.FALSE);
+
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCALDAPPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCALDAPPanel.java
new file mode 100644
index 000000000..735818834
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java
new file mode 100644
index 000000000..723668790
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLCachePanel.java
@@ -0,0 +1,374 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 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.add(Constants.PR_ENABLE_CACHE, "");
+ nvps.add(Constants.PR_CACHE_FREQ, "");
+ nvps.add(Constants.PR_CACHE_RECOVERY, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ String value = nvp.getValue().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.add(Constants.PR_ENABLE_CACHE, Constants.TRUE);
+ else
+ nvps.add(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.add(Constants.PR_CACHE_FREQ, cacheFreq);
+
+
+ if (mEnableCacheRecovery.isSelected())
+ nvps.add(Constants.PR_CACHE_RECOVERY, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_CACHE_RECOVERY, Constants.FALSE);
+
+ if (mEnableCacheTesting.isSelected())
+ nvps.add(Constants.PR_CACHE_TESTING, Constants.TRUE);
+ else
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLFormatPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLFormatPanel.java
new file mode 100644
index 000000000..6e22af602
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLFormatPanel.java
@@ -0,0 +1,450 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.add(Constants.PR_EXTENSIONS, "");
+ nvps.add(Constants.PR_SIGNING_ALGORITHM, "");
+ nvps.add(Constants.PR_INCLUDE_EXPIREDCERTS, "");
+ nvps.add(Constants.PR_INCLUDE_EXPIREDCERTS_ONEEXTRATIME, "");
+ nvps.add(Constants.PR_CA_CERTS_ONLY, "");
+ nvps.add(Constants.PR_PROFILE_CERTS_ONLY, "");
+ nvps.add(Constants.PR_PROFILE_LIST, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ String value = nvp.getValue().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.add(Constants.PR_EXTENSIONS, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_EXTENSIONS, Constants.FALSE);
+
+ if (mEnableExpired.isSelected())
+ nvps.add(Constants.PR_INCLUDE_EXPIREDCERTS, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_INCLUDE_EXPIREDCERTS, Constants.FALSE);
+
+ if (mEnableOneExtraTime.isSelected())
+ nvps.add(Constants.PR_INCLUDE_EXPIREDCERTS_ONEEXTRATIME, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_INCLUDE_EXPIREDCERTS_ONEEXTRATIME, Constants.FALSE);
+
+ if (mCACertsOnly.isSelected())
+ nvps.add(Constants.PR_CA_CERTS_ONLY, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_CA_CERTS_ONLY, Constants.FALSE);
+
+ if (mProfileCertsOnly.isSelected())
+ nvps.add(Constants.PR_PROFILE_CERTS_ONLY, Constants.TRUE);
+ else
+ nvps.add(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.add(Constants.PR_PROFILE_LIST, profileList);
+ else
+ nvps.add(Constants.PR_PROFILE_LIST, mProfiles.getText().trim());
+
+
+ int index = mAlgorithms.getSelectedIndex();
+
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLIPPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLIPPanel.java
new file mode 100644
index 000000000..9bc141f7b
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLIPPanel.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.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 javax.swing.border.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.tree.*;
+
+/**
+ * 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.add(Constants.PR_ENABLED, "");
+ nvps.add(Constants.PR_ID, "");
+ nvps.add(Constants.PR_DESCRIPTION, "");
+ nvps.add(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) {
+
+ Enumeration names = nvps.getNames();
+ mDataModel.removeAllElements();
+ mNames.removeAllElements();
+ while (names.hasMoreElements()) {
+ String name = (String)names.nextElement();
+ if (name.indexOf('.') == -1) {
+ mNames.addElement(name);
+
+ String enable = nvps.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLSettingPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLSettingPanel.java
new file mode 100644
index 000000000..d2b25f207
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCRLSettingPanel.java
@@ -0,0 +1,701 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.add(Constants.PR_ENABLE_CRL, "");
+ nvps.add(Constants.PR_UPDATE_SCHEMA, "");
+ nvps.add(Constants.PR_EXTENDED_NEXT_UPDATE, "");
+ nvps.add(Constants.PR_UPDATE_ALWAYS, "");
+ nvps.add(Constants.PR_ENABLE_DAILY, "");
+ nvps.add(Constants.PR_DAILY_UPDATES, "");
+ nvps.add(Constants.PR_ENABLE_FREQ, "");
+ nvps.add(Constants.PR_UPDATE_FREQ, "");
+ nvps.add(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) {
+ String signingAlg = "";
+ for (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ String value = nvp.getValue().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.add(Constants.PR_ENABLE_CRL, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_ENABLE_CRL, Constants.FALSE);
+
+ nvps.add(Constants.PR_UPDATE_SCHEMA, mCRLGen.getText().trim());
+
+ if (mExtendNextUpdate.isSelected())
+ nvps.add(Constants.PR_EXTENDED_NEXT_UPDATE, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_EXTENDED_NEXT_UPDATE, Constants.FALSE);
+
+ if (mAlways.isSelected())
+ nvps.add(Constants.PR_UPDATE_ALWAYS, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_UPDATE_ALWAYS, Constants.FALSE);
+
+ if (mDaily.isSelected())
+ nvps.add(Constants.PR_ENABLE_DAILY, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_ENABLE_DAILY, Constants.FALSE);
+
+ if (timeList != null)
+ nvps.add(Constants.PR_DAILY_UPDATES, timeList);
+ else
+ nvps.add(Constants.PR_DAILY_UPDATES, mDailyAt.getText().trim());
+
+
+ if (mEnableFreq.isSelected())
+ nvps.add(Constants.PR_ENABLE_FREQ, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_ENABLE_FREQ, Constants.FALSE);
+
+ nvps.add(Constants.PR_UPDATE_FREQ, mFrequency.getText().trim());
+
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCertSettingPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCertSettingPanel.java
new file mode 100644
index 000000000..975ba97da
--- /dev/null
+++ b/pki/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<source.length; i++) {
+ if (value.equals(source[i]))
+ return i;
+ }
+ return -1;
+ }
+
+ /**
+ * Add 3 components in the same row to a panel, assumed to be using
+ * GridBagLayout. Customized for the LDAP certificate mappings/publishing
+ * UI.
+ */
+ protected void addEntryField(JPanel panel, JComponent field1,
+ JComponent field2, JComponent field3, 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( field1, gbc );
+
+ gbc.gridx++;
+ gbc.anchor = gbc.EAST;
+ gbc.fill = gbc.HORIZONTAL;
+ gbc.weightx = 1.0;
+ gbc.gridwidth = 1;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,0,0);
+ panel.add(field2, gbc);
+
+ gbc.gridx++;
+ gbc.anchor = gbc.WEST;
+ gbc.fill = gbc.NONE;
+ gbc.weightx = 0.0;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,
+ 0,DIFFERENT_COMPONENT_SPACE);
+ panel.add( field3, gbc );
+ }
+
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferenceDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferenceDialog.java
new file mode 100644
index 000000000..69e208be5
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferenceDialog.java
@@ -0,0 +1,201 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.CipherPreferenceDialog;
+import com.netscape.management.client.util.*;
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ * Allows user to select the SSL cipher preferences.
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config
+ */
+public class CMSCipherPreferenceDialog extends AbstractDialog {
+
+ CMSSSL2CipherPreference ssl2CipherPref = null;
+ CMSSSL3CipherPreference ssl3CipherPref = null;
+
+ public final static int SSL2 = 1;
+ public final static int SSL3 = 2;
+ private JPanel cipherPreferencePane;
+ boolean modified = true;
+ private static final ResourceSet mHelpResource =
+ new ResourceSet("com.netscape.admin.certsrv.certsrv-help");
+ Help help;
+
+ public CMSCipherPreferenceDialog(JFrame parent, boolean isDomestic) {
+ this(parent, isDomestic, false);
+ }
+
+ public CMSCipherPreferenceDialog(JFrame parent, boolean isDomestic,
+ boolean hasFortezza) {
+ this(parent, isDomestic, hasFortezza, SSL2|SSL3);
+ }
+
+ public CMSCipherPreferenceDialog(JFrame parent, boolean isDomestic,
+ boolean hasFortezza, int SSLVersion) {
+
+ super(parent, "", true, OK | CANCEL | HELP);
+ cipherPreferencePane = new JPanel();
+ cipherPreferencePane.setLayout(new BoxLayout(cipherPreferencePane, BoxLayout.Y_AXIS));
+ if ((SSL2 & SSLVersion) == SSL2) {
+ ssl2CipherPref = new CMSSSL2CipherPreference(isDomestic);
+ cipherPreferencePane.add(ssl2CipherPref);
+ }
+
+ if ((SSL3 & SSLVersion) == SSL3) {
+ ssl3CipherPref = new CMSSSL3CipherPreference(isDomestic, hasFortezza);
+ cipherPreferencePane.add(ssl3CipherPref);
+ }
+
+ cipherPreferencePane.add(Box.createRigidArea(new Dimension(0,4)));
+ getContentPane().add(cipherPreferencePane);
+ pack();
+ }
+
+ public void removeSSLVersion(int sslVersion) {
+ switch (sslVersion) {
+ case SSL2:
+ cipherPreferencePane.remove(ssl2CipherPref);
+ break;
+ case SSL3:
+ cipherPreferencePane.remove(ssl3CipherPref);
+ break;
+ }
+ pack();
+ }
+
+ public boolean isCipherEnabled(String cipher) {
+ return (((ssl2CipherPref == null)?false:ssl2CipherPref.isCipherEnabled(cipher))||
+ ((ssl3CipherPref == null)?false:ssl3CipherPref.isCipherEnabled(cipher)));
+ }
+
+ public void setCipherEnabled(String cipher, boolean enable) {
+ if (ssl2CipherPref != null) {
+ ssl2CipherPref.setCipherEnabled(cipher, enable);
+ }
+ if (ssl3CipherPref != null) {
+ ssl3CipherPref.setCipherEnabled(cipher, enable);
+ }
+ }
+
+ public String[] getSSLPreference(int sslVersion) {
+ String[] cipher = null;
+ switch(sslVersion) {
+ case SSL2:
+ cipher = ssl2CipherPref.getCipherList();
+ break;
+ case SSL3:
+ cipher = ssl3CipherPref.getCipherList();
+ break;
+ default:
+ break;
+ }
+
+ return cipher;
+ }
+
+ public boolean isSSLEnabled(int sslVersion) {
+ boolean enable = false;
+ switch (sslVersion) {
+ case SSL2:
+ enable = ssl2CipherPref.isEnabled();
+ break;
+
+ case SSL3:
+ enable = ssl3CipherPref.isEnabled();
+ break;
+
+ default:
+ break;
+ }
+
+ return enable;
+ }
+
+ public void setSSLEnabled(int sslVersion, boolean enable) {
+ switch (sslVersion) {
+ case SSL2:
+ ssl2CipherPref.setEnabled(enable);
+ break;
+
+ case SSL3:
+ ssl3CipherPref.setEnabled(enable);
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ public boolean isModified() {
+ return modified;
+ }
+
+ public void reset() {
+ if (ssl2CipherPref != null)
+ ssl2CipherPref.reset();
+
+ if (ssl3CipherPref != null)
+ ssl3CipherPref.reset();
+ }
+
+ public void setSaved() {
+ if (ssl2CipherPref != null) {
+ ssl2CipherPref.setSaved();
+ }
+
+ if (ssl3CipherPref != null) {
+ ssl3CipherPref.setSaved();
+ }
+ }
+
+ public void setSaved(boolean saved) {
+ if (saved) {
+ if (ssl2CipherPref != null) {
+ ssl2CipherPref.setSaved();
+ }
+ if (ssl3CipherPref != null) {
+ ssl3CipherPref.setSaved();
+ }
+ }
+ }
+
+ protected void cancelInvoked() {
+ reset();
+ modified = false;
+ super.cancelInvoked();
+ }
+
+ protected void okInvoked() {
+ modified = (((ssl2CipherPref==null)?false:ssl2CipherPref.isModified()) ||
+ ((ssl3CipherPref==null)?false:ssl3CipherPref.isModified()));
+ setSaved();
+ super.okInvoked();
+ }
+
+ protected void helpInvoked() {
+ new Help(mHelpResource).help("configuration-overview");
+// help.help("SSL", "Preference");
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferencePane.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferencePane.java
new file mode 100644
index 000000000..88faf2a71
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSCipherPreferencePane.java
@@ -0,0 +1,112 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.awt.event.*;
+import java.awt.*;
+import javax.swing.*;
+import javax.swing.border.*;
+import javax.swing.plaf.*;
+import com.netscape.management.nmclf.*;
+import com.netscape.admin.certsrv.*;
+
+/**
+ * Constructs a Cipher preference pane.
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config
+ */
+public class CMSCipherPreferencePane extends AbstractCipherPreference implements ICipherConstants {
+ private JCheckBox on;
+ private JPanel top = new JPanel();
+ boolean _ismodified;
+ boolean oldValue;
+
+ public CMSCipherPreferencePane(IAbstractCipherSet cipherSet) {
+ this(cipherSet, true);
+ }
+
+ public CMSCipherPreferencePane(IAbstractCipherSet cipherSet, boolean enabled) {
+ oldValue = enabled;
+ on = new JCheckBox(cipherSet.getTitle(), enabled);
+ on.setActionCommand("ENABLED");
+ on.addActionListener(new actionListener());
+ top.setLayout(new BoxLayout(top, BoxLayout.Y_AXIS));
+ top.add(on);
+ setBorder(new CompoundBorder(new ToggleBorder(top, SwingConstants.TOP),
+ new EmptyBorder(0, SuiConstants.COMPONENT_SPACE, SuiConstants.COMPONENT_SPACE, 0)));
+ add(top);
+ initialize(cipherSet);
+ add(Box.createHorizontalGlue());
+ }
+
+ class actionListener implements ActionListener{
+ public void actionPerformed(ActionEvent e) {
+ if (e.getActionCommand().equals("ENABLED")) {
+ _ismodified = true;
+ setEnableAll(on.isSelected());
+ }
+ }
+ }
+
+ public void setEnabled(boolean enable) {
+ on.setSelected(enable);
+ super.setEnableAll(enable);
+ }
+
+ public boolean isEnabled() {
+ return on.isSelected();
+ }
+
+
+ class ToggleBorder extends EtchedBorder {
+ private JComponent _switchPanel;
+ private int _switchAlign;
+
+ public ToggleBorder(JComponent sp, int align) {
+ _switchPanel = sp;
+ _switchAlign = align;
+ }
+
+ public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
+ Color save = g.getColor();
+ int top = y + (_switchPanel.getHeight() >> 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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSEAGeneralPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSEAGeneralPanel.java
new file mode 100644
index 000000000..6130f9316
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSEAGeneralPanel.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;
+
+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.*;
+
+/**
+ * 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.add(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) {
+ String defaultAlgorithm = "";
+ for (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_NO_OF_REQUIRED_RECOVERY_AGENTS)) {
+ mNumberOfAgentsText.setText(nvp.getValue());
+ }
+ }
+ }
+
+ 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.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSEncryptionPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSEncryptionPanel.java
new file mode 100644
index 000000000..0891c63fc
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSEncryptionPanel.java
@@ -0,0 +1,840 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.security.*;
+import com.netscape.admin.certsrv.connection.*;
+import com.netscape.certsrv.common.*;
+import java.awt.*;
+import java.util.*;
+import java.io.*;
+import javax.swing.*;
+import java.awt.event.*;
+import javax.swing.border.*;
+import com.netscape.management.client.util.*;
+import com.netscape.management.nmclf.*;
+import javax.swing.plaf.*;
+import com.netscape.admin.certsrv.keycert.*;
+import com.netscape.admin.certsrv.config.install.*;
+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.add(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.getValue(Constants.PR_CIPHER_VERSION);
+ if ( (version != null) && (version.equals(
+ Constants.PR_CIPHER_VERSION_DOMESTIC)) ) {
+ mIsDomestic = true;
+ }
+
+ //setup fortezza flag
+ String fortezza = response.getValue(Constants.PR_CIPHER_FORTEZZA);
+ if ( (fortezza != null) && (fortezza.equalsIgnoreCase("TRUE")) ){
+ mHasFortezza = true;
+ }
+
+ //setup cipher preference settings
+ String cipherpref = response.getValue(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.getValue(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.getValue(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.getValue(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.add(Constants.PR_CIPHER_PREF,"");
+ nvp.add(Constants.PR_CIPHER_VERSION,"");
+ nvp.add(Constants.PR_CIPHER_FORTEZZA,"");
+ nvp.add(Constants.PR_TOKEN_LIST,"");
+
+ //create installed certificate list data request
+ for (Enumeration e = mCertMapping.elements(); e.hasMoreElements() ;) {
+ CipherEntryData data = (CipherEntryData)e.nextElement();
+ nvp.add(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.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSErrorLogPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSErrorLogPanel.java
new file mode 100644
index 000000000..484be33dd
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSErrorLogPanel.java
@@ -0,0 +1,183 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 java.util.*;
+import javax.swing.*;
+
+/**
+ * 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.add(Constants.PR_LOG_ENABLED, "");
+ nvp.add(Constants.PR_LOG_LEVEL, "");
+ nvp.add(Constants.PR_LOG_BUFFERSIZE, "");
+ //nvp.add(Constants.PR_LOG_EXPIRED_TIME, "");
+ //nvp.add(Constants.PR_LOG_FILENAME, "");
+ //nvp.add(Constants.PR_LOG_FLUSHINTERVAL, "");
+ nvp.add(Constants.PR_LOG_MAXFILESIZE, "");
+ nvp.add(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.getValue(Constants.PR_LOG_ENABLED).equalsIgnoreCase(
+ Constants.TRUE))
+ activateLog.setSelected(true);
+ else
+ activateLog.setSelected(false);
+ mLevel = Integer.parseInt(nvp.getValue(Constants.PR_LOG_LEVEL));
+ mlogBufSizTextData = nvp.getValue(Constants.PR_LOG_BUFFERSIZE);
+ mlogMaxSizTextData = nvp.getValue(Constants.PR_LOG_MAXFILESIZE);
+ int val =
+ Integer.parseInt(nvp.getValue(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.add(Constants.PR_LOG_ENABLED, Constants.TRUE);
+ else
+ nvp.add(Constants.PR_LOG_ENABLED, Constants.FALSE);
+ String str = "" + mLogLevel.getSelectedIndex();
+ nvp.add(Constants.PR_LOG_LEVEL, str);
+ nvp.add(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.add(Constants.PR_LOG_MAXFILESIZE, mlogMaxSizText.getText().trim());
+
+ str = "" + getRollOverTime(mlogFQC.getSelectedIndex());
+ nvp.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRAAutoPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRAAutoPanel.java
new file mode 100644
index 000000000..ba126c9db
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRAAutoPanel.java
@@ -0,0 +1,222 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * 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 };
+ return makeJButtonPanel(buttons, true);
+ }
+
+ public void refresh() {
+ mModel.progressStart();
+ NameValuePairs nvps = new NameValuePairs();
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_AUTO_RECOVERY_ON)) {
+ if (nvp.getValue().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.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRAPasswdPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRAPasswdPanel.java
new file mode 100644
index 000000000..dbdba0d4c
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRAPasswdPanel.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;
+
+import com.netscape.admin.certsrv.*;
+import com.netscape.admin.certsrv.connection.*;
+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.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.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_RECOVERY_AGENT)) {
+ mAgentModel.removeAllElements();
+ updateModel(nvp);
+ }
+ }
+ }
+
+ private void updateModel(NameValuePair nvp) {
+ String[] uids = getUIDs(nvp.getValue());
+ for (int i=0; i<uids.length; i++) {
+ JLabel label = makeJLabel(mUserIcon, uids[i],
+ SwingConstants.LEFT);
+ mAgentModel.add(i, label);
+ }
+
+ if (mAgentModel.size() > 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 };
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRASchemePanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRASchemePanel.java
new file mode 100644
index 000000000..8e743d92e
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSKRASchemePanel.java
@@ -0,0 +1,200 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.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.util.*;
+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.add(Constants.PR_RECOVERY_N, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_RECOVERY_N)) {
+ mAvailAgentLbl.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_RECOVERY_M)) {
+ mReqAgentLbl.setText(nvp.getValue());
+ }
+ }
+ }
+
+ protected JPanel createActionPanel() {
+ //edit, add, delete, help buttons required
+ //actionlister to this object
+ mRefresh = makeJButton("REFRESH");
+ mHelp = makeJButton("HELP");
+ JButton[] buttons = { mRefresh, mHelp };
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSLDAPSettingPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSLDAPSettingPanel.java
new file mode 100644
index 000000000..85596d55e
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSLDAPSettingPanel.java
@@ -0,0 +1,364 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.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.add(Constants.PR_HOST_NAME, "");
+ nvps.add(Constants.PR_LDAP_PORT, "");
+ //nvps.add(Constants.PR_SECURE_PORT_ENABLED, "");
+ //nvps.add(Constants.PR_BASE_DN, "");
+ nvps.add(Constants.PR_BIND_DN, "");
+ nvps.add(Constants.PR_LDAP_VERSION, "");
+ nvps.add(Constants.PR_LDAP_MAX_CONNS, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_HOST_NAME)) {
+ mHostNameText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_LDAP_PORT)) {
+ mPortText.setText(nvp.getValue());
+ } 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(nvp.getValue());
+ } else if (name.equals(Constants.PR_ENABLE)) {
+ if (nvp.getValue().equals(Constants.TRUE))
+ mEnable.setSelected(true);
+ else
+ mEnable.setSelected(false);
+ } else if (name.equals(Constants.PR_LDAP_VERSION)) {
+ version = nvp.getValue();
+ } else if (name.equals(Constants.PR_LDAP_MIN_CONNS)) {
+ mMinConnsText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_LDAP_MAX_CONNS)) {
+ mMaxConnsText.setText(nvp.getValue());
+ }
+
+ }
+
+/*
+ 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.add(Constants.PR_HOST_NAME, host);
+ nvps.add(Constants.PR_LDAP_PORT, port);
+ //nvps.add(Constants.PR_BASE_DN, baseDN);
+ nvps.add(Constants.PR_BIND_DN, bindAs);
+ nvps.add(Constants.PR_LDAP_MAX_CONNS, maxConns);
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSNetworkPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSNetworkPanel.java
new file mode 100644
index 000000000..ef85e4986
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSNetworkPanel.java
@@ -0,0 +1,468 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.util.*;
+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.add(Constants.PR_ADMIN_S_PORT, adminSSLPortStr);
+ nvps.add(Constants.PR_GATEWAY_PORT, gatewayPortStr);
+ nvps.add(Constants.PR_AGENT_S_PORT, agentSSLPortStr);
+
+ if (mGatewaySSLPortText.isEnabled()) {
+ nvps.add(Constants.PR_GATEWAY_S_PORT, gatewaySSLPortStr);
+ }
+
+ if (mGatewaySSLBacklogText.isEnabled()) {
+ nvps.add(Constants.PR_GATEWAY_S_BACKLOG, gatewaySSLBacklogStr);
+ }
+
+ if (mEnable.isSelected()) {
+ nvps.add(Constants.PR_GATEWAY_PORT_ENABLED, Constants.TRUE);
+ nvps.add(Constants.PR_ADMIN_S_BACKLOG, adminSSLBacklogStr);
+ nvps.add(Constants.PR_GATEWAY_BACKLOG, gatewayBacklogStr);
+ nvps.add(Constants.PR_AGENT_S_BACKLOG, agentSSLBacklogStr);
+ } else
+ nvps.add(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.add(Constants.PR_ADMIN_S_PORT, "");
+ nvps.add(Constants.PR_AGENT_S_PORT, "");
+ nvps.add(Constants.PR_GATEWAY_S_PORT, "");
+ nvps.add(Constants.PR_GATEWAY_PORT, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ String str = nvp.getValue();
+
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSOCSPGeneralPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSOCSPGeneralPanel.java
new file mode 100644
index 000000000..9c3bdf3d3
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSOCSPGeneralPanel.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.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.add(Constants.PR_DEFAULT_ALGORITHM, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_DEFAULT_ALGORITHM)) {
+ defaultAlgorithm = nvp.getValue();
+ } else if (name.equals(Constants.PR_ALL_ALGORITHMS)) {
+ initAlgorithmBox(nvp.getValue());
+ }
+ }
+
+ 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.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSPasswordDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSPasswordDialog.java
new file mode 100644
index 000000000..03fc449f7
--- /dev/null
+++ b/pki/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 javax.swing.border.*;
+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.add(Constants.PR_OLD_AGENT_PWD, oldpassword);
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSPluginInstanceTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSPluginInstanceTab.java
new file mode 100644
index 000000000..7f775a4c0
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSPluginInstanceTab.java
@@ -0,0 +1,444 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * 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(<model>,"+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.getValue(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 };
+ 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.add(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());
+
+ Enumeration e = response.getNames();
+
+
+ /* 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}
+ */
+ while (e.hasMoreElements()) {
+ String plugin="";
+ String visibility=null;
+ String enabled=null;
+
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(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.add(RULE_NAME,entry);
+ data.add(RULE_IMPL,plugin);
+ if (enabled != null) {
+ data.add(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.getValue(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.add(mId, "");
+ }
+
+ NameValuePairs response = mConnection.read(mDestination,
+ mScope,
+ data.getValue(RULE_NAME),
+ request);
+ return response;
+ }
+
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRACLMPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRACLMPanel.java
new file mode 100644
index 000000000..3b2ee1ce4
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRACLMPanel.java
@@ -0,0 +1,314 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.add(Constants.PR_RENEWAL_ENABLED, "");
+ nvps.add(Constants.PR_RENEWAL_VALIDITY, "");
+ nvps.add(Constants.PR_RENEWAL_EMAIL, "");
+ nvps.add(Constants.PR_RENEWAL_EXPIREDNOTIFIEDENABLED, "");
+ nvps.add(Constants.PR_RENEWAL_NUMNOTIFICATION, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_RENEWAL_ENABLED)) {
+ renewalEnabled = getBoolean(nvp.getValue());
+ mRenewEnable.setSelected(renewalEnabled);
+ } else if (name.equals(Constants.PR_RENEWAL_EXPIREDNOTIFIEDENABLED)) {
+ notificationEnabled = getBoolean(nvp.getValue());
+ mNotifyEnable.setSelected(notificationEnabled);
+ } else if (name.equals(Constants.PR_RENEWAL_VALIDITY)) {
+ mValidText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_RENEWAL_EMAIL)) {
+ mEmailText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_RENEWAL_NUMNOTIFICATION)) {
+ mNotifiedText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_RENEWAL_INTERVAL)) {
+ mIntervalText.setText(nvp.getValue());
+ }
+ }
+
+ 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.add(Constants.PR_RENEWAL_ENABLED, Constants.TRUE);
+ String validStr = mValidText.getText();
+ try {
+ int num = Integer.parseInt(validStr);
+ } catch (NumberFormatException e) {
+ showMessageDialog("NUMBERFORMAT");
+ return false;
+ }
+ nvps.add(Constants.PR_RENEWAL_VALIDITY, validStr);
+
+ if (mNotifyEnable.isSelected()) {
+ nvps.add(Constants.PR_RENEWAL_EXPIREDNOTIFIEDENABLED,
+ Constants.TRUE);
+ nvps.add(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.add(Constants.PR_RENEWAL_NUMNOTIFICATION, numStr);
+ nvps.add(Constants.PR_RENEWAL_INTERVAL, intervalStr);
+ } else {
+ nvps.add(Constants.PR_RENEWAL_EXPIREDNOTIFIEDENABLED,
+ Constants.FALSE);
+ }
+ } else {
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRAConnectorPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRAConnectorPanel.java
new file mode 100644
index 000000000..34b351ea4
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRAConnectorPanel.java
@@ -0,0 +1,254 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+import com.netscape.management.client.util.*;
+import com.netscape.certsrv.common.*;
+import com.netscape.admin.certsrv.connection.*;
+import javax.swing.*;
+import javax.swing.border.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+
+/**
+ * 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.add(Constants.PR_ID, "");
+ nvps.add(Constants.PR_HOST, "");
+ nvps.add(Constants.PR_PORT, "");
+ // Inserted by beomsuk
+ nvps.add(Constants.PR_TIMEOUT, "");
+ // Insert end
+ nvps.add(Constants.PR_URI, "");
+ nvps.add(Constants.PR_LOCAL, "");
+ nvps.add(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.getValue("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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRAGeneralPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRAGeneralPanel.java
new file mode 100644
index 000000000..f7ed785b5
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRAGeneralPanel.java
@@ -0,0 +1,186 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_EE_ENABLED)) {
+ mEEEnable.setSelected(getBoolean(nvp.getValue()));
+/*
+ } else if (name.equals(Constants.PR_RA_ENABLED)) {
+ mRAEnable.setSelected(getBoolean(nvp.getValue()));
+*/
+ }
+ }
+ }
+
+ 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.add(Constants.PR_EE_ENABLED, Constants.TRUE);
+ else
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRALDAPPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRALDAPPanel.java
new file mode 100644
index 000000000..3fbe6a72a
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRuleDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSRuleDataModel.java
new file mode 100644
index 000000000..2c12183c7
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSMTPPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSMTPPanel.java
new file mode 100644
index 000000000..2f5aeb593
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSMTPPanel.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.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.add(Constants.PR_SERVER_NAME, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_SERVER_NAME)) {
+ mServerText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_PORT)) {
+ mPortText.setText(nvp.getValue());
+ }
+ }
+ }
+
+ 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.add(Constants.PR_SERVER_NAME, mServerText.getText().trim());
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSNMPPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSNMPPanel.java
new file mode 100644
index 000000000..8ef18cc79
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSNMPPanel.java
@@ -0,0 +1,297 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.add(Constants.PR_SNMP_ENABLED, "");
+ nvps.add(Constants.PR_SNMP_MASTER_HOST, "");
+ nvps.add(Constants.PR_SNMP_MASTER_PORT, "");
+ nvps.add(Constants.PR_SNMP_DESC, "");
+ nvps.add(Constants.PR_SNMP_ORGN, "");
+ nvps.add(Constants.PR_SNMP_LOC, "");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_SNMP_ENABLED)) {
+ mEnable.setSelected(getBoolean(nvp));
+ } else if (name.equals(Constants.PR_SNMP_MASTER_HOST)) {
+ mHostNameText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_SNMP_MASTER_PORT)) {
+ mPortText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_SNMP_DESC)) {
+ mDescText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_SNMP_ORGN)) {
+ mOrgnText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_SNMP_LOC)) {
+ mLocText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_SNMP_CONTACT)) {
+ mContactText.setText(nvp.getValue());
+ }
+ }
+
+ if (mEnable.isSelected())
+ enableTextField(true, mActiveColor);
+ else
+ enableTextField(false, getBackground());
+ }
+
+ public boolean getBoolean(NameValuePair nvp) {
+ if (nvp.getValue().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.add(Constants.PR_SNMP_ENABLED, Constants.TRUE);
+ else
+ nvps.add(Constants.PR_SNMP_ENABLED, Constants.FALSE);
+
+ nvps.add(Constants.PR_SNMP_MASTER_HOST, mHostNameText.getText().trim());
+ nvps.add(Constants.PR_SNMP_MASTER_PORT, port);
+ nvps.add(Constants.PR_SNMP_DESC, mDescText.getText().trim());
+ nvps.add(Constants.PR_SNMP_ORGN, mOrgnText.getText().trim());
+ nvps.add(Constants.PR_SNMP_LOC, mLocText.getText().trim());
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherPreference.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherPreference.java
new file mode 100644
index 000000000..4e95d25db
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherSet.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL2CipherSet.java
new file mode 100644
index 000000000..fa18107cb
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherPreference.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherPreference.java
new file mode 100644
index 000000000..63444fc75
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherSet.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSSL3CipherSet.java
new file mode 100644
index 000000000..0286f3820
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSelfTestsPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSSelfTestsPanel.java
new file mode 100644
index 000000000..712beb32b
--- /dev/null
+++ b/pki/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 java.util.*;
+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.add( 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 = "";
+ for( int i = 0; i < nvps1.size(); i++ ) {
+ if( i == 0 ) {
+ responseClass = nvps1.elementAt( i ).getValue();
+ } else {
+ response = response
+ + nvps1.elementAt( i ).getValue()
+ + "\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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSTabPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSTabPanel.java
new file mode 100644
index 000000000..60650807f
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSTabPanel.java
@@ -0,0 +1,349 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 };
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/CMSUserCertSettingPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSUserCertSettingPanel.java
new file mode 100644
index 000000000..a4b7740f5
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CMSUserCertSettingPanel.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;
+
+import com.netscape.admin.certsrv.*;
+import com.netscape.certsrv.common.*;
+import com.netscape.management.client.util.*;
+import javax.swing.*;
+import java.awt.*;
+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.add(Constants.PR_MAPPER, "");
+ nvp.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_MAPPER)) {
+ _mapper.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_PUBLISHER)) {
+ _publisher.setText(nvp.getValue());
+ }
+ }
+ }
+
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/CMStoAdminEncryptionPane.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CMStoAdminEncryptionPane.java
new file mode 100644
index 000000000..ea448b4e0
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsConfigDialog.java
new file mode 100644
index 000000000..9a4f5ae17
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsInstanceTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsInstanceTab.java
new file mode 100644
index 000000000..5c687ea90
--- /dev/null
+++ b/pki/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(<model>,"+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(<model>,"+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/pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsPluginSelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsPluginSelectionDialog.java
new file mode 100644
index 000000000..aa169235d
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsRuleDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsRuleDataModel.java
new file mode 100644
index 000000000..15f2ca3d3
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CRLExtensionsRuleDataModel.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.admin.certsrv.connection.*;
+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.getValue(RULE_STAT).equalsIgnoreCase("enabled")) {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("CRLEXTSRULE_LABEL_ENABLED_LABEL"));
+ } else {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("CRLEXTSRULE_LABEL_DISABLED_LABEL"));
+ }
+ addRow(v, data);
+ mRules.addElement(obj.getValue(RULE_NAME));
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java b/pki/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java
new file mode 100644
index 000000000..8f442d4ff
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/CRLIPEditor.java
@@ -0,0 +1,335 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+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 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 (int i=0; i<values.size(); i++) {
+ NameValuePair nvp = values.elementAt(i);
+ String name = nvp.getName();
+ String val = nvp.getValue();
+ 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};
+ 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.add(Constants.PR_ID, mName);
+ } else {
+ nvps.add(Constants.PR_ID, mNameText.getText().trim());
+ }
+
+ nvps.add(Constants.PR_DESCRIPTION, mDescText.getText().trim());
+
+ if (mEnable) {
+ nvps.add(Constants.PR_ENABLED, Constants.TRUE);
+ } else {
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/ConfigTableModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ConfigTableModel.java
new file mode 100644
index 000000000..8608e943a
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ConnectorEditor.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ConnectorEditor.java
new file mode 100644
index 000000000..4c1ee89e5
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ConnectorEditor.java
@@ -0,0 +1,640 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.config.*;
+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.*;
+
+/**
+ * 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ vals[i++] = entry;
+ }
+
+ int sindex = 0;
+ String snickname = "";
+ CMSAdminUtil.quickSort(vals, 0, response.size()-1);
+ for (i=0; i<vals.length; i++) {
+ Vector v = new Vector();
+ String entry = vals[i];
+ String value = response.getValue(entry);
+
+ // look for the comma separator
+ int lastindex = entry.lastIndexOf(",");
+ if (lastindex != -1) {
+ String fullnickname = entry.substring(0, lastindex);
+ int tindex = fullnickname.indexOf(":");
+ String tokenname = fullnickname.substring(0, tindex);
+ String nickname = fullnickname.substring(tindex+1);
+ if (mName.equals("Data Recovery Manager Connector")) {
+ if (fullnickname.indexOf("subsystemCert") > -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.add(Constants.PR_NICK_NAME, nickname);
+ nvps.add(Constants.PR_SERIAL_NUMBER, serialno);
+ nvps.add(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;
+ NameValuePair nvp = results.elementAt(0);
+ String name = nvp.getName();
+ String print = nvp.getValue();
+ 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 (int i=0; i<values.size(); i++) {
+ NameValuePair nvp = values.elementAt(i);
+ String name = nvp.getName();
+ String val = nvp.getValue();
+ 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};
+ 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.add(Constants.PR_LOCAL, Constants.FALSE);
+ nvps.add(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.add(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.add(Constants.PR_TIMEOUT, timeoutStr);
+
+ if (mName.equals("Data Recovery Manager Connector")) {
+ nvps.add(Constants.PR_URI, "/kra/agent/kra/connector");
+ } else if (mName.equals("Registration Manager Connector")) {
+ nvps.add(Constants.PR_URI, "/ra/connector");
+ } else if (mName.equals("Certificate Manager Connector")) {
+ nvps.add(Constants.PR_URI, "/ca/connector");
+ }
+ nvps.add(Constants.PR_NICK_NAME, mNicknameText.getText().trim());
+ nvps.add(Constants.PR_ENABLED, Constants.TRUE);
+ } else {
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/EvaluatorRegisterDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/EvaluatorRegisterDialog.java
new file mode 100644
index 000000000..d4dff2e25
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/GeneralLogPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/GeneralLogPanel.java
new file mode 100644
index 000000000..8765f08eb
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/GeneralLogPanel.java
@@ -0,0 +1,254 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.admin.certsrv.*;
+import com.netscape.admin.certsrv.ug.*;
+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.add(Constants.PR_DEBUG_LOG_ENABLE, "true");
+ nvps.add(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) {
+ String version = "";
+ for (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_DEBUG_LOG_ENABLE)) {
+ if (nvp.getValue().equals(Constants.TRUE))
+ mEnable.setSelected(true);
+ else
+ mEnable.setSelected(false);
+ } else if (name.equals(Constants.PR_DEBUG_LOG_LEVEL)) {
+ mLevelText.setText(nvp.getValue());
+ }
+
+ /* else if (name.equals(Constants.PR_DEBUG_LOG_SHOWCALLER)) {
+ if (nvp.getValue().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.add(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.add(Constants.PR_DEBUG_LOG_ENABLE, Constants.TRUE);
+ else
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/JobsConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsConfigDialog.java
new file mode 100644
index 000000000..307ddbbc4
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/JobsImplDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsImplDataModel.java
new file mode 100644
index 000000000..76f7a73ec
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsImplDataModel.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.admin.certsrv.connection.*;
+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.getValue(IMPL_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN),
+ JLabel.LEFT));
+ v.addElement(obj.getValue(IMPL_CLASS));
+ //v.addElement(obj.getValue(IMPL_DESC));
+ addRow(v, data);
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/JobsImplTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsImplTab.java
new file mode 100644
index 000000000..13b02600a
--- /dev/null
+++ b/pki/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 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 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.getValue(IMPL_NAME),
+ obj.getValue(IMPL_CLASS),
+ obj.getValue(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 };
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(entry);
+ Debug.println("entry= "+entry);
+ Debug.println("value= "+value);
+ int x = value.indexOf(",");
+ Debug.println("x = "+x);
+ NameValuePairs obj = new NameValuePairs();
+ obj.add(IMPL_NAME,entry);
+ vals[i++]= entry ;
+ if (x != -1) {
+ obj.add(IMPL_CLASS, value.substring(0,x));
+ obj.add(IMPL_DESC, value.substring(x+1));
+ }
+ else {
+ obj.add(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.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/JobsInstanceTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsInstanceTab.java
new file mode 100644
index 000000000..059a741ce
--- /dev/null
+++ b/pki/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(<model>");
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/JobsPluginSelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsPluginSelectionDialog.java
new file mode 100644
index 000000000..d07e5ed32
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/JobsRegisterDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsRegisterDialog.java
new file mode 100644
index 000000000..bdb448eeb
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/JobsRuleDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsRuleDataModel.java
new file mode 100644
index 000000000..e12114eb1
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsRuleDataModel.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;
+
+import java.util.*;
+import javax.swing.*;
+import com.netscape.admin.certsrv.*;
+import com.netscape.admin.certsrv.connection.*;
+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.getValue(RULE_STAT).equalsIgnoreCase("enabled")) {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("JOBSRULE_LABEL_ENABLED_LABEL"));
+ } else {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("JOBSRULE_LABEL_DISABLED_LABEL"));
+ }
+ addRow(v, data);
+ mRules.addElement(obj.getValue(RULE_NAME));
+ }
+
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/JobsSettingPanel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsSettingPanel.java
new file mode 100644
index 000000000..b33613014
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/JobsSettingPanel.java
@@ -0,0 +1,243 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 com.netscape.admin.certsrv.config.*;
+import javax.swing.*;
+import java.awt.*;
+import java.util.*;
+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.add(Constants.PR_ENABLE,"");
+ nvps.add(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = nvps.elementAt(i);
+ String name = nvp.getName();
+ if (name.equals(Constants.PR_JOBS_FREQUENCY)) {
+ mFrequencyText.setText(nvp.getValue());
+ } else if (name.equals(Constants.PR_ENABLE)) {
+ if (nvp.getValue().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<array.length; i++) {
+ if (val.equals(array[i]))
+ return i;
+ }
+ return -1;
+ }
+
+ private void enableFields(boolean enable, Color color) {
+ mFrequencyText.setEnabled(enable);
+ mFrequencyText.setEditable(enable);
+ mFrequencyText.setBackground(color);
+ mFrequencyLabel.setEnabled(enable);
+ mFrequencyLabel.setBackground(color);
+
+ mFrequencyLabel.invalidate();
+ mFrequencyLabel.validate();
+ mFrequencyLabel.repaint(1);
+ }
+
+ 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 freq = mFrequencyText.getText().trim();
+
+ if (freq.equals("")) {
+ showMessageDialog("BLANKFIELD");
+ return false;
+ }
+
+ int ifreq = 0;
+ // make sure it's a positive integer
+ try {
+ ifreq = Integer.parseInt(freq);
+ } catch (NumberFormatException e) {
+ showMessageDialog("NEEDINTEGER");
+ return false;
+ }
+
+ if (ifreq < 0) {
+ showMessageDialog("NEEDINTEGER");
+ return false;
+ }
+
+ NameValuePairs nvps = new NameValuePairs();
+ if (mEnable.isSelected())
+ nvps.add(Constants.PR_ENABLE,Constants.TRUE);
+ else
+ nvps.add(Constants.PR_ENABLE,Constants.FALSE);
+
+ if (mEnable.isSelected()){
+ nvps.add(Constants.PR_JOBS_FREQUENCY, freq);
+ }
+
+ mModel.progressStart();
+ try {
+ mAdmin.modify(mServletName, ScopeDef.SC_JOBS,
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/KeyCreateDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/KeyCreateDialog.java
new file mode 100644
index 000000000..9e6d1cf9b
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/KeyCreateDialog.java
@@ -0,0 +1,300 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * Log Implementation Registration Editor
+ *
+ * @author Michelle Zhao
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config
+ */
+
+public class KeyCreateDialog extends JDialog
+ implements ActionListener, DocumentListener, MouseListener {
+
+ private final static String PREFIX = "KEYCREATEDIALOG";
+
+ /*==========================================================
+ * 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;
+ protected String selectedToken;
+ private boolean mIsOK = false;
+ protected boolean mType = false;
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+
+ public KeyCreateDialog(JFrame parent, AdminConnection conn) {
+ super(parent,true);
+ KeyCreateDialog2(PREFIX, parent, conn);
+ setDisplay();
+ }
+ public void KeyCreateDialog2(String prefix, JFrame parent, AdminConnection conn) {
+
+ 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;
+ }
+ public void setToken(String thisToken)
+ {
+ selectedToken = thisToken;
+ }
+ /*==========================================================
+ * 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.add(Constants.PR_KEY_LIST, mNameField.getText());
+ config.add(Constants.PR_TOKEN_LIST, selectedToken);
+
+
+
+
+ //send request
+ mConnection.process(mDestination,
+ ScopeDef.SC_TKSKEYSLIST,
+ mNameField.getText().trim(),
+ config);
+ }
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/ListCertsModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ListCertsModel.java
new file mode 100644
index 000000000..b239edfb9
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ListCertsModel.java
@@ -0,0 +1,56 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * Manage certificate data model - represents the instance
+ * table information
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ */
+public class ListCertsModel extends CMSTableModel
+{
+
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ public static final String COL1 = "CERTNICKNAMENAME";
+ public static final String COL2 = "SERIALNUMBER";
+ public static final String COL3 = "ISSUERNAME";
+ public static final String COL4 = "TOKENNAME";
+
+ private static String[] mColumns = {COL1, COL2, COL3, COL4};
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public ListCertsModel() {
+ super();
+ init(mColumns);
+ }
+
+ public boolean isCellEditable(int row, int col) {
+ return false;
+ }
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/ListKeysModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ListKeysModel.java
new file mode 100644
index 000000000..78f033be5
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ListKeysModel.java
@@ -0,0 +1,56 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * Manage Keys data model - represents the instance
+ * table information
+ *
+ * @author Khai
+ * @version $Revision$, $Date$
+ */
+public class ListKeysModel extends CMSTableModel
+{
+
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ public static final String COL1 = "KEYNAME";
+ public static final String COL2 = "SERIALNUMBER";
+ public static final String COL3 = "ISSUERNAME";
+ public static final String COL4 = "TOKENNAME";
+
+ private static String[] mColumns = {COL1};
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public ListKeysModel() {
+ super();
+ init(mColumns);
+ }
+
+ public boolean isCellEditable(int row, int col) {
+ return false;
+ }
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/LogConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/LogConfigDialog.java
new file mode 100644
index 000000000..7f3833034
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/LogConfigDialog.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.*;
+
+/**
+ * Log Parameter Configuration Dialog
+ *
+ * @author Michelle Zhao
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config
+ */
+public class LogConfigDialog extends CMSBaseConfigDialog
+ implements ActionListener
+{
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public LogConfigDialog(NameValuePairs nvp,
+ JFrame parent,
+ AdminConnection conn,
+ String dest) {
+
+ super(parent, dest);
+
+ PREFIX = "LOGCONFIGDIALOG";
+ mHelpToken = "configuration-overview";
+ mImplName_token = Constants.PR_LOG_IMPL_NAME;
+ mImplType = Constants.PR_EXT_PLUGIN_IMPLTYPE_LOG;
+
+ init(nvp,parent,conn,dest);
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/LogImplDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/LogImplDataModel.java
new file mode 100644
index 000000000..df246f2c5
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/LogImplDataModel.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.admin.certsrv.connection.*;
+import com.netscape.certsrv.common.*;
+
+/**
+ * Log Implementation Data model - represents the implementation
+ * table information
+ *
+ * @author Michelle Zhao
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config
+ */
+public class LogImplDataModel 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 = {LOG_IMPL, CLASSNAME};
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public LogImplDataModel() {
+ super();
+ init(mColumns);
+ }
+
+ /*==========================================================
+ * public methods
+ *==========================================================*/
+ public void processData(Object data) {
+ Vector v = new Vector();
+ NameValuePairs obj = (NameValuePairs) data;
+ v.addElement(new JLabel(obj.getValue(IMPL_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN),
+ JLabel.LEFT));
+ v.addElement(obj.getValue(IMPL_CLASS));
+ //v.addElement(obj.getValue(IMPL_DESC));
+ addRow(v, data);
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/LogImplTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/LogImplTab.java
new file mode 100644
index 000000000..3f56b1d4d
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/LogImplTab.java
@@ -0,0 +1,315 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 Plugins Management Tab
+ *
+ * @author Michelle Zhao
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config
+ */
+public class LogImplTab extends CMSBaseUGTab {
+
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ private static final String IMPL_NAME = LogImplDataModel.IMPL_NAME;
+ private static final String IMPL_CLASS = LogImplDataModel.IMPL_CLASS;
+ private static final String IMPL_DESC = LogImplDataModel.IMPL_DESC;
+
+ private static final String PANEL_NAME = "LOGIMPL";
+ private static final String DIALOG_PREFIX = "LOGREGISTERDIALOG";
+
+ private AdminConnection mConnection;
+ private String mDestination;
+
+ protected JScrollPane mScrollPane;
+ protected JTable mTable; //table
+ protected LogImplDataModel mDataModel; //table model
+ protected LogRegisterDialog 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-log-plugin-help";
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public LogImplTab(CMSBaseResourceModel model, String destination) {
+ super(PANEL_NAME, model);
+ mConnection = model.getServerInfo().getAdmin();
+ mDataModel = new LogImplDataModel();
+ 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 LogRegisterDialog(mModel.getFrame(),
+ mConnection);
+ mEditor.showDialog(mDestination, ScopeDef.SC_LOG_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.getValue(IMPL_NAME),
+ obj.getValue(IMPL_CLASS),
+ obj.getValue(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 };
+ 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,
+ "logImpls",
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(entry);
+ int x = value.indexOf(",");
+ NameValuePairs obj = new NameValuePairs();
+ obj.add(IMPL_NAME,entry);
+ vals[i++]= entry ;
+ obj.add(IMPL_CLASS, value.substring(0,x));
+ obj.add(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.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/LogInstanceTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/LogInstanceTab.java
new file mode 100644
index 000000000..99b86e5eb
--- /dev/null
+++ b/pki/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(<model>,"+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/pki/base/console/src/com/netscape/admin/certsrv/config/LogPluginSelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/LogPluginSelectionDialog.java
new file mode 100644
index 000000000..83c8ab2e8
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/LogRegisterDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/LogRegisterDialog.java
new file mode 100644
index 000000000..2360c860a
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/LogRuleDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/LogRuleDataModel.java
new file mode 100644
index 000000000..57b7b0471
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/LogRuleDataModel.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;
+
+import java.util.*;
+import javax.swing.*;
+import com.netscape.admin.certsrv.*;
+import com.netscape.admin.certsrv.connection.*;
+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.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE),
+ JLabel.LEFT));
+ v.addElement(obj.getValue(RULE_IMPL));
+ addRow(v, data);
+ }
+
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizard.java b/pki/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizard.java
new file mode 100644
index 000000000..cd10c5575
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizardInfo.java b/pki/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizardInfo.java
new file mode 100644
index 000000000..fd2fe0843
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/MNSchemeWizardInfo.java
@@ -0,0 +1,110 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.connection.*;
+import com.netscape.admin.certsrv.wizard.*;
+import com.netscape.management.client.util.*;
+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.add(Constants.PR_RECOVERY_M, (String)get(Constants.PR_RECOVERY_M));
+ param.add(Constants.PR_RECOVERY_N, (String)get(Constants.PR_RECOVERY_N));
+ param.add(Constants.PR_RECOVERY_AGENT, (String)get(Constants.PR_RECOVERY_AGENT));
+ param.add(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.removeAllPairs();
+ }
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/MapperConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/MapperConfigDialog.java
new file mode 100644
index 000000000..119823d58
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/MapperImplDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/MapperImplDataModel.java
new file mode 100644
index 000000000..50728b13d
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/MapperImplDataModel.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.admin.certsrv.connection.*;
+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.getValue(IMPL_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN),
+ JLabel.LEFT));
+ v.addElement(obj.getValue(IMPL_CLASS));
+ //v.addElement(obj.getValue(IMPL_DESC));
+ addRow(v, data);
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/MapperImplTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/MapperImplTab.java
new file mode 100644
index 000000000..9dcc4ffba
--- /dev/null
+++ b/pki/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 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 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.getValue(IMPL_NAME),
+ obj.getValue(IMPL_CLASS),
+ obj.getValue(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 };
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(entry);
+ int x = value.indexOf(",");
+ NameValuePairs obj = new NameValuePairs();
+ obj.add(IMPL_NAME,entry);
+ vals[i++]= entry ;
+ obj.add(IMPL_CLASS, value.substring(0,x));
+ obj.add(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.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/MapperInstanceTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/MapperInstanceTab.java
new file mode 100644
index 000000000..a531ecf30
--- /dev/null
+++ b/pki/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(<model>,"+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/pki/base/console/src/com/netscape/admin/certsrv/config/MapperPluginSelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/MapperPluginSelectionDialog.java
new file mode 100644
index 000000000..ce0e10e9a
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/MapperRegisterDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/MapperRegisterDialog.java
new file mode 100644
index 000000000..3f6be3234
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/MapperRuleDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/MapperRuleDataModel.java
new file mode 100644
index 000000000..1235fcc14
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/MapperRuleDataModel.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;
+
+import java.util.*;
+import javax.swing.*;
+import com.netscape.admin.certsrv.*;
+import com.netscape.admin.certsrv.connection.*;
+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.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE),
+ JLabel.LEFT));
+ v.addElement(obj.getValue(RULE_IMPL));
+ addRow(v, data);
+ }
+
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresConfigDialog.java
new file mode 100644
index 000000000..87097ddc0
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresInstanceTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresInstanceTab.java
new file mode 100644
index 000000000..f48339b25
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresInstanceTab.java
@@ -0,0 +1,135 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 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(<model>,"+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.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresPluginSelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresPluginSelectionDialog.java
new file mode 100644
index 000000000..32365c27c
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresRuleDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresRuleDataModel.java
new file mode 100644
index 000000000..30211b689
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/OCSPStoresRuleDataModel.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.admin.certsrv.connection.*;
+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.getValue(RULE_STAT).equalsIgnoreCase("enabled")) {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("OCSPSTORESRULE_LABEL_ENABLED_LABEL"));
+ } else {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("OCSPSTORESRULE_LABEL_DISABLED_LABEL"));
+ }
+ addRow(v, data);
+ mRules.addElement(obj.getValue(RULE_NAME));
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/PanelMapperConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PanelMapperConfigDialog.java
new file mode 100644
index 000000000..f72d3361f
--- /dev/null
+++ b/pki/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.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.*;
+
+/**
+ * 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ mSelection.addItem(((String)e.nextElement()).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 (Enumeration e = mData.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ if (!entry.equals(Constants.PR_MAPPER)) {
+ String value = mData.getValue(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};
+ 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.add(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.add((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/pki/base/console/src/com/netscape/admin/certsrv/config/PluginSelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PluginSelectionDialog.java
new file mode 100644
index 000000000..2f0f2b09e
--- /dev/null
+++ b/pki/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 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.*;
+
+/**
+ * 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.add(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};
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ 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 {
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyConfigDialog.java
new file mode 100644
index 000000000..8dec3cabf
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyImplDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyImplDataModel.java
new file mode 100644
index 000000000..8ac219345
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyImplDataModel.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.admin.certsrv.connection.*;
+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.getValue(IMPL_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN),
+ JLabel.LEFT));
+ v.addElement(obj.getValue(IMPL_CLASS));
+ //v.addElement(obj.getValue(IMPL_DESC));
+ addRow(v, data);
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyImplTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyImplTab.java
new file mode 100644
index 000000000..2d988bfca
--- /dev/null
+++ b/pki/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 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 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.getValue(IMPL_NAME),
+ obj.getValue(IMPL_CLASS),
+ obj.getValue(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 };
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(entry);
+ int x = value.indexOf(",");
+ NameValuePairs obj = new NameValuePairs();
+ obj.add(IMPL_NAME,entry);
+ vals[i++]= entry ;
+ obj.add(IMPL_CLASS, value.substring(0,x));
+ obj.add(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.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyInstanceTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyInstanceTab.java
new file mode 100644
index 000000000..9bf8fb54b
--- /dev/null
+++ b/pki/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(<model>,"+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/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyPluginSelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyPluginSelectionDialog.java
new file mode 100644
index 000000000..6ef26b767
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyRegisterDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyRegisterDialog.java
new file mode 100644
index 000000000..cbc961c5b
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleDataModel.java
new file mode 100644
index 000000000..e379b53e9
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleDataModel.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;
+
+import java.util.*;
+import javax.swing.*;
+import com.netscape.admin.certsrv.*;
+import com.netscape.admin.certsrv.connection.*;
+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.getValue(RULE_STAT).equalsIgnoreCase("enabled")) {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("POLICYRULE_LABEL_ENABLED_LABEL"));
+ } else {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("POLICYRULE_LABEL_DISABLED_LABEL"));
+ }
+ addRow(v, data);
+ mRules.addElement(obj.getValue(RULE_NAME));
+ }
+
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleOrderDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PolicyRuleOrderDialog.java
new file mode 100644
index 000000000..934cc21e0
--- /dev/null
+++ b/pki/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 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 Rule Order Dialog - <p>
+ *
+ * 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; i<rules.size(); i++)
+ mDataModel.addElement(
+ new JLabel((String)rules.elementAt(i),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE),
+ JLabel.LEFT));
+ if (mDataModel.getSize() >0)
+ 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};
+ 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<mDataModel.size(); i++) {
+ if (x > 0)
+ buf.append(",");
+ x++;
+ buf.append(((JLabel)mDataModel.getElementAt(i)).getText());
+ }
+
+ NameValuePairs nvp = new NameValuePairs();
+ nvp.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileComponentCellEditor.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileComponentCellEditor.java
new file mode 100644
index 000000000..b1e2769db
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDataModel.java
new file mode 100644
index 000000000..af20b4e99
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDialog.java
new file mode 100644
index 000000000..f83a7457c
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileConfigDialog.java
@@ -0,0 +1,399 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 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.add("impl", mImplName.getText());
+ nvp.add("name", mNameField.getText());
+ nvp.add("visible", (String)(mVisibleField.getSelectedItem()));
+ nvp.add("auth", mAuthField.getText());
+ nvp.add("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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileDataTable.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileDataTable.java
new file mode 100644
index 000000000..94d3b65f2
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDataModel.java
new file mode 100644
index 000000000..096a4075c
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDialog.java
new file mode 100644
index 000000000..0a3ceebe2
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileEditDialog.java
@@ -0,0 +1,936 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 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.add("impl", mImplName.getText());
+ nvp.add("name", mNameField.getText());
+ nvp.add("desc", mDescField.getText());
+ nvp.add("visible", (String)(mVisibleField.getSelectedItem()));
+ nvp.add("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.add("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.add("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.add("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.getValue("enable");
+
+ if (response != null) {
+ mPluginName.setEnabled(false);
+ mPluginName.setBackground(getBackground());
+ mPluginName.setText(name);
+ mNameField.setText(response.getValue("name"));
+ mDescField.setText(response.getValue("desc"));
+ mAuthField.setText(response.getValue("auth"));
+ mVisibleField.setSelectedItem(response.getValue("visible"));
+ mImplName.setText(response.getValue("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();
+
+ Enumeration e = response.getNames();
+ if (e != null) {
+ for (; e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(entry);
+ Debug.println("populatePolicies entry= "+entry);
+ Debug.println("populatePolicies value= "+value);
+
+ StringTokenizer st = new StringTokenizer(value, ";");
+ String def = (String)st.nextToken();
+ String con = (String)st.nextToken();
+ Vector row = new Vector();
+
+ StringTokenizer st1 = new StringTokenizer(entry, ":");
+ String setId = (String)st1.nextToken();
+ String id = (String)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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileImplDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileImplDataModel.java
new file mode 100644
index 000000000..98c188380
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileImplDataModel.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.admin.certsrv.connection.*;
+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.getValue(IMPL_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN),
+ JLabel.LEFT));
+ v.addElement(obj.getValue(IMPL_TYPE));
+ v.addElement(obj.getValue(IMPL_CLASS));
+ //v.addElement(obj.getValue(IMPL_DESC));
+ addRow(v, data);
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileImplTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileImplTab.java
new file mode 100644
index 000000000..fcb03ac28
--- /dev/null
+++ b/pki/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 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 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.getValue(IMPL_NAME),
+ obj.getValue(IMPL_CLASS),
+ obj.getValue(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 };
+ 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 (Enumeration e = response1.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ response.add(entry+";profile", response1.getValue(entry));
+ }
+ try {
+ response2 = mConnection.search(mDestination,
+ "profileInput",
+ new NameValuePairs());
+ } catch (EAdminException e) {
+ //display error dialog
+ showErrorDialog(e.getMessage());
+ mModel.progressStop();
+ return;
+ }
+ for (Enumeration e = response2.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ response.add(entry+";profileInput", response2.getValue(entry));
+ }
+ try {
+ response3 = mConnection.search(mDestination,
+ "profileOutput",
+ new NameValuePairs());
+ } catch (EAdminException e) {
+ //display error dialog
+ showErrorDialog(e.getMessage());
+ mModel.progressStop();
+ return;
+ }
+ for (Enumeration e = response3.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ response.add(entry+";profileOutput", response3.getValue(entry));
+ }
+ try {
+ response4 = mConnection.search(mDestination,
+ "defaultPolicy",
+ new NameValuePairs());
+ } catch (EAdminException e) {
+ //display error dialog
+ showErrorDialog(e.getMessage());
+ mModel.progressStop();
+ return;
+ }
+ for (Enumeration e = response4.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ response.add(entry+";defaultPolicy", response4.getValue(entry));
+ }
+ try {
+ response5 = mConnection.search(mDestination,
+ "constraintPolicy",
+ new NameValuePairs());
+ } catch (EAdminException e) {
+ //display error dialog
+ showErrorDialog(e.getMessage());
+ mModel.progressStop();
+ return;
+ }
+ for (Enumeration e = response5.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ response.add(entry+";constraintPolicy", response5.getValue(entry));
+ }
+
+ //parse the data
+ int i=0;
+ String[] vals = new String[response.size()];
+ Hashtable data = new Hashtable();
+ for (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(entry);
+ int x = value.indexOf(",");
+ int x_end = value.lastIndexOf(",");
+ int y = entry.indexOf(";");
+ NameValuePairs obj = new NameValuePairs();
+ obj.add(IMPL_NAME,entry.substring(0,y));
+ obj.add(IMPL_TYPE,entry.substring(y+1));
+ vals[i++]= entry ;
+ obj.add(IMPL_CLASS, value.substring(0,x));
+ obj.add(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.getValue(IMPL_TYPE),
+ obj.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileInstanceTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileInstanceTab.java
new file mode 100644
index 000000000..6dbc1dceb
--- /dev/null
+++ b/pki/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(<model>,"+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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileListDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileListDataModel.java
new file mode 100644
index 000000000..2e4633046
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicyNewDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicyNewDialog.java
new file mode 100644
index 000000000..05836bc87
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicyNewDialog.java
@@ -0,0 +1,432 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 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.add((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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(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.getValue("name"));
+ if (mIsNew)
+ mDescField.setText(response.getValue("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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicySelDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileNonPolicySelDialog.java
new file mode 100644
index 000000000..c1c90502b
--- /dev/null
+++ b/pki/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 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.*;
+
+/**
+ * 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};
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String name = ((String)e.nextElement()).trim();
+ String val = response.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePluginSelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePluginSelectionDialog.java
new file mode 100644
index 000000000..c3b033221
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePluginSelectionDialog.java
@@ -0,0 +1,191 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 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.add(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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String id = (String)e.nextElement();
+ String value = response.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDataModel.java
new file mode 100644
index 000000000..7b306d1da
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDialog.java
new file mode 100644
index 000000000..12781c6b5
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyEditDialog.java
@@ -0,0 +1,700 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 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.add(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.add(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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(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.getValue("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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyNewDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyNewDialog.java
new file mode 100644
index 000000000..44e1aa512
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicyNewDialog.java
@@ -0,0 +1,716 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 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.add(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.add(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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(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.getValue("name"));
+ mDescField.setText(response.getValue("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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicySelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicySelectionDialog.java
new file mode 100644
index 000000000..44a6f3eca
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfilePolicySelectionDialog.java
@@ -0,0 +1,514 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * 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};
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String name = ((String)e.nextElement()).trim();
+ String val = response.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileRegisterDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileRegisterDialog.java
new file mode 100644
index 000000000..fb9ed20e7
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileRegisterDialog.java
@@ -0,0 +1,305 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+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 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.add(Constants.PR_POLICY_CLASS, mClassField.getText());
+ config.add(Constants.PR_POLICY_DESC, mDescField.getText());
+
+ if (mType) {
+ mScope=mTypeField.getText();
+ }
+
+ //send request
+ mConnection.add(mDestination,
+ mScope,
+ mNameField.getText().trim(),
+ config);
+ }
+
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileRuleDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileRuleDataModel.java
new file mode 100644
index 000000000..73bf5ca91
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/ProfileRuleDataModel.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.admin.certsrv.connection.*;
+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 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.getValue(RULE_STAT).equalsIgnoreCase("enabled")) {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("POLICYRULE_LABEL_ENABLED_LABEL"));
+ } else {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("POLICYRULE_LABEL_DISABLED_LABEL"));
+ }
+ addRow(v, data);
+ mRules.addElement(obj.getValue(RULE_NAME));
+ }
+
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherConfigDialog.java
new file mode 100644
index 000000000..90d67ba9e
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherImplDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherImplDataModel.java
new file mode 100644
index 000000000..18ad05ba2
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherImplDataModel.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.admin.certsrv.connection.*;
+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.getValue(IMPL_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN),
+ JLabel.LEFT));
+ v.addElement(obj.getValue(IMPL_CLASS));
+ //v.addElement(obj.getValue(IMPL_DESC));
+ addRow(v, data);
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherImplTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherImplTab.java
new file mode 100644
index 000000000..706f9ee49
--- /dev/null
+++ b/pki/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 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 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.getValue(IMPL_NAME),
+ obj.getValue(IMPL_CLASS),
+ obj.getValue(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 };
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(entry);
+ int x = value.indexOf(",");
+ NameValuePairs obj = new NameValuePairs();
+ obj.add(IMPL_NAME,entry);
+ vals[i++]= entry ;
+ obj.add(IMPL_CLASS, value.substring(0,x));
+ obj.add(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.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherInstanceTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherInstanceTab.java
new file mode 100644
index 000000000..e9d3bdbb0
--- /dev/null
+++ b/pki/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(<model>,"+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/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherPluginSelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherPluginSelectionDialog.java
new file mode 100644
index 000000000..536d9096f
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherRegisterDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherRegisterDialog.java
new file mode 100644
index 000000000..23e1a5913
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherRuleDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherRuleDataModel.java
new file mode 100644
index 000000000..e8ff44e44
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/PublisherRuleDataModel.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;
+
+import java.util.*;
+import javax.swing.*;
+import com.netscape.admin.certsrv.*;
+import com.netscape.admin.certsrv.connection.*;
+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.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE),
+ JLabel.LEFT));
+ v.addElement(obj.getValue(RULE_IMPL));
+ addRow(v, data);
+ }
+
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/RegisterDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/RegisterDialog.java
new file mode 100644
index 000000000..e1ef3631a
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/RegisterDialog.java
@@ -0,0 +1,287 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * 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.add(Constants.PR_POLICY_CLASS, mClassField.getText());
+
+ if (mType) {
+ mScope=mTypeField.getText();
+ }
+
+ //send request
+ mConnection.add(mDestination,
+ mScope,
+ mNameField.getText().trim(),
+ config);
+ }
+
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/RuleConfigDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/RuleConfigDialog.java
new file mode 100644
index 000000000..7f7cff092
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/RuleImplDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/RuleImplDataModel.java
new file mode 100644
index 000000000..26e065c04
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/RuleImplDataModel.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.admin.certsrv.connection.*;
+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.getValue(IMPL_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_PLUGIN),
+ JLabel.LEFT));
+ v.addElement(obj.getValue(IMPL_CLASS));
+ //v.addElement(obj.getValue(IMPL_DESC));
+ addRow(v, data);
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/RuleImplTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/RuleImplTab.java
new file mode 100644
index 000000000..d1424ff8f
--- /dev/null
+++ b/pki/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 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.*;
+
+/**
+ * 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.getValue(IMPL_NAME),
+ obj.getValue(IMPL_CLASS),
+ obj.getValue(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 };
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ String value = response.getValue(entry);
+ int x = value.indexOf(",");
+ NameValuePairs obj = new NameValuePairs();
+ obj.add(IMPL_NAME,entry);
+ vals[i++]= entry ;
+ obj.add(IMPL_CLASS, value.substring(0,x));
+ obj.add(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.getValue(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/pki/base/console/src/com/netscape/admin/certsrv/config/RuleInstanceTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/RuleInstanceTab.java
new file mode 100644
index 000000000..04a649ed0
--- /dev/null
+++ b/pki/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(<model>,"+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/pki/base/console/src/com/netscape/admin/certsrv/config/RulePluginSelectionDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/RulePluginSelectionDialog.java
new file mode 100644
index 000000000..f1021bc6c
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/RuleRegisterDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/RuleRegisterDialog.java
new file mode 100644
index 000000000..34d1757e6
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/RuleRuleDataModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/RuleRuleDataModel.java
new file mode 100644
index 000000000..0eb22433d
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/RuleRuleDataModel.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.admin.certsrv.connection.*;
+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.getValue(RULE_STAT).equalsIgnoreCase("enabled")) {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("RULERULE_LABEL_ENABLED_LABEL"));
+ } else {
+ v.addElement(new JLabel(obj.getValue(RULE_NAME),
+ CMSAdminUtil.getImage(CMSAdminResources.IMAGE_RULE_DISABLE),
+ JLabel.LEFT));
+ v.addElement(mResource.getString("RULERULE_LABEL_DISABLED_LABEL"));
+ }
+ addRow(v, data);
+ mRules.addElement(obj.getValue(RULE_NAME));
+ }
+
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/TKSKeysTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/TKSKeysTab.java
new file mode 100644
index 000000000..912cfa8b2
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/TKSKeysTab.java
@@ -0,0 +1,372 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 javax.swing.event.*;
+import java.awt.event.*;
+import java.awt.*;
+import java.util.*;
+import com.netscape.management.client.*;
+import com.netscape.management.client.console.*;
+import com.netscape.management.client.util.*;
+import com.netscape.certsrv.common.*;
+import org.mozilla.jss.*;
+import org.mozilla.jss.pkcs10.*;
+import org.mozilla.jss.crypto.*;
+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 };
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ vals[i++] = entry;
+ }
+
+ int sindex = 0;
+ CMSAdminUtil.quickSort(vals, 0, response.size()-1);
+ for (i=0; i<vals.length; i++) {
+ Vector v = new Vector();
+ String entry = vals[i];
+ String value = response.getValue(entry);
+ // look for the comma separator
+
+ StringTokenizer st = new StringTokenizer(value, ",");
+ while (st.hasMoreTokens()) {
+ String currentToken= st.nextToken();
+ mToken.addItem(currentToken);
+ }
+
+ }
+ }
+
+ 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());
+
+
+ }
+
+ //=============================================
+ // SEND REQUESTS TO THE SERVER SIDE
+ //=============================================
+ private void update() {
+ //send request and parse data
+
+ mModel.progressStart();
+
+ NameValuePairs response;
+ NameValuePairs request;
+ request = new NameValuePairs();
+ request.add(Constants.PR_TOKEN_LIST, (String)mToken.getSelectedItem());
+ try {
+ response = mConnection.search(mDestination,
+ ScopeDef.SC_TKSKEYSLIST, request);
+ } 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ vals[i++] = entry;
+ }
+
+ int sindex = 0;
+ CMSAdminUtil.quickSort(vals, 0, response.size()-1);
+ for (i=0; i<vals.length; i++) {
+ String entry = vals[i];
+ if (entry.equals(Constants.PR_TOKEN_LIST)) {
+ String value = response.getValue(entry);
+ // look for the comma separator
+ StringTokenizer st = new StringTokenizer(value, ",");
+ int numberOfKeys = 0;
+ while (st.hasMoreTokens()) {
+ Vector v = new Vector();
+ String currentKey = st.nextToken();
+ v.addElement(currentKey);
+ numberOfKeys++;
+ mDataModel.addRow(v);
+ }
+ if(numberOfKeys==0)
+ {
+ Vector v = new Vector();
+ String currentKey = new String("empty list");
+ v.addElement(currentKey);
+ mDataModel.addRow(v);
+ }
+ }
+ }
+ 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_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/pki/base/console/src/com/netscape/admin/certsrv/config/UserCertsTab.java b/pki/base/console/src/com/netscape/admin/certsrv/config/UserCertsTab.java
new file mode 100644
index 000000000..136f4a446
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/UserCertsTab.java
@@ -0,0 +1,344 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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 javax.swing.event.*;
+import java.awt.event.*;
+import java.awt.*;
+import java.util.*;
+import com.netscape.management.client.*;
+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.add(Constants.PR_NICK_NAME, nickname);
+ nvps.add(Constants.PR_SERIAL_NUMBER, serialno);
+ nvps.add(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;
+ NameValuePair nvp = results.elementAt(0);
+ String name = nvp.getName();
+ String print = nvp.getValue();
+ 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 };
+ 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 (Enumeration e = response.getNames(); e.hasMoreElements() ;) {
+ String entry = ((String)e.nextElement()).trim();
+ vals[i++] = entry;
+ }
+
+ int sindex = 0;
+ String snickname = "";
+ CMSAdminUtil.quickSort(vals, 0, response.size()-1);
+ for (i=0; i<vals.length; i++) {
+ Vector v = new Vector();
+ String entry = vals[i];
+ String value = response.getValue(entry);
+
+ // look for the comma separator
+ int lastindex = entry.lastIndexOf(",");
+ if (lastindex != -1) {
+ String nickname = entry.substring(0, lastindex);
+ int colonindex = nickname.indexOf(":");
+ v.addElement(nickname.substring(colonindex+1));
+ v.addElement(entry.substring(lastindex+1));
+ v.addElement(value);
+ v.addElement(nickname.substring(0, colonindex));
+ mDataModel.addRow(v);
+ }
+ }
+ 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_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/pki/base/console/src/com/netscape/admin/certsrv/config/ViewDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ViewDialog.java
new file mode 100644
index 000000000..277b3d2be
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ViewSelfTestsDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ViewSelfTestsDialog.java
new file mode 100644
index 000000000..09d7892ef
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/ViewTableModel.java b/pki/base/console/src/com/netscape/admin/certsrv/config/ViewTableModel.java
new file mode 100644
index 000000000..f634a182c
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertExtensionPage.java
new file mode 100644
index 000000000..6c92ed61e
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertRequestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseCertRequestPage.java
new file mode 100644
index 000000000..6b9a1667b
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNPage.java
new file mode 100644
index 000000000..97774727b
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNValidityPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseDNValidityPage.java
new file mode 100644
index 000000000..3a5837624
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseKeyPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseKeyPage.java
new file mode 100644
index 000000000..1266099b1
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseManualCertRequestPage.java
new file mode 100644
index 000000000..195979f9c
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseValidityPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WBaseValidityPage.java
new file mode 100644
index 000000000..c09d6efa7
--- /dev/null
+++ b/pki/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);
+
+ Date nowDate = new Date();
+
+ Date afterDate = new Date(nowDate.getYear()+5, nowDate.getMonth(),
+ nowDate.getDate());
+
+ mBYear = new JTextField(""+(nowDate.getYear()+1900));
+ 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.getMonth()+1));
+ mBMonth.setColumns(3);
+ add(mBMonth, gbc);
+
+ mBDay = new JTextField(""+nowDate.getDate());
+ 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.getYear()+1900));
+ 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.getMonth()+1));
+ mEMonth.setColumns(3);
+ add(mEMonth, gbc);
+
+ mEDay = new JTextField(""+afterDate.getDate());
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/WMNNewAgent.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WMNNewAgent.java
new file mode 100644
index 000000000..425eddaaa
--- /dev/null
+++ b/pki/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<data.length; i++) {
+ data[i] = new Vector();
+ data[i].addElement(Integer.toString(i+1));
+ data[i].addElement("");
+ data[i].addElement("");
+ data[i].addElement("");
+ mDataModel.addRow(data[i]);
+ }
+ return true;
+ }
+
+ public boolean validatePanel() {
+
+ 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);
+ }
+ }
+
+ 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<mDataModel.getRowCount(); i++) {
+ String val1 = (String)mDataModel.getValueAt(i,1);
+ table.put(val1.trim(), "1");
+ }
+ if (table.size() != mDataModel.getRowCount()) {
+ table = null;
+ return false;
+ }
+
+ table = null;
+ return true;
+ }
+
+ private boolean checkBlank() {
+ for (int i=0; i<mDataModel.getRowCount(); i++) {
+ String val1 = (String)mDataModel.getValueAt(i,1);
+ String val2 = (String)mDataModel.getValueAt(i,2);
+ String val3 = (String)mDataModel.getValueAt(i,3);
+ if ( (val1.trim().equals(""))||(val2.trim().equals(""))||
+ (val3.trim().equals(""))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private boolean checkConfirm() {
+ for (int i=0; i<mDataModel.getRowCount(); i++) {
+ String val2 = (String)mDataModel.getValueAt(i,2);
+ String val3 = (String)mDataModel.getValueAt(i,3);
+ if (!val2.trim().equals(val3.trim())) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private String getUIDPassword() {
+ String result = "";
+ for (int i=0; i<mDataModel.getRowCount(); i++) {
+ String val1 = (String)mDataModel.getValueAt(i,1);
+ String val2 = (String)mDataModel.getValueAt(i,2);
+ result = result+val1.trim()+"="+val2.trim();
+ if (i < (mDataModel.getRowCount()-1))
+ result = result+",";
+ }
+ return result;
+ }
+
+}
+
+class NewAgentModel extends CMSTableModel
+{
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ public static final String COL1 = "NUMBER";
+ public static final String COL2 = "UID";
+ public static final String COL3 = "PASSWORD";
+ public static final String COL4 = "CONFIRM";
+
+
+ private static String[] mColumns = {COL1, COL2, COL3, COL4};
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public NewAgentModel() {
+ super();
+ init(mColumns);
+ }
+
+ public boolean isCellEditable(int row, int col) {
+ if(col >= 1)
+ return true;
+ return false;
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/WMNOldAgent.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WMNOldAgent.java
new file mode 100644
index 000000000..07973f6c9
--- /dev/null
+++ b/pki/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<data.length; i++) {
+ data[i] = new Vector();
+ data[i].addElement(Integer.toString(i+1));
+ data[i].addElement("");
+ data[i].addElement("");
+ mDataModel.addRow(data[i]);
+ }
+
+ return true;
+ }
+
+ public boolean validatePanel() {
+
+ 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();
+ 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<mDataModel.getRowCount(); i++) {
+ for (int j=1; j<mDataModel.getColumnCount(); j++) {
+ String val = (String)mDataModel.getValueAt(i, j);
+ if (val.equals(""))
+ return "";
+ else if (j == (mDataModel.getColumnCount()-1))
+ result = result+val;
+ else
+ result = result+val+"=";
+ }
+ if (i < (mDataModel.getRowCount()-1))
+ result = result+",";
+ }
+ return result;
+ }
+
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/WMNResultPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WMNResultPage.java
new file mode 100644
index 000000000..55b1d1ccf
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/WMNResultPage.java
@@ -0,0 +1,102 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * Result page for the Recovery MN Scheme
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config
+ */
+class WMNResultPage extends WizardBasePanel
+ implements IWizardPanel
+{
+
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ private static final String PANELNAME = "WMNRESULTPAGE";
+
+ private static final String HELPINDEX =
+ "configuration-kra-wizard-newagentpwd-keyscheme-help";
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ WMNResultPage() {
+ super(PANELNAME);
+ init();
+ }
+
+ public boolean isLastPage() {
+ return true;
+ }
+
+ /*==========================================================
+ * public methods
+ *==========================================================*/
+ public boolean initializePanel(WizardInfo info) {
+ return true;
+ }
+
+ public boolean validatePanel() {
+ return true;
+ }
+
+ public boolean concludePanel(WizardInfo info) {
+ return true;
+ }
+
+ public void getUpdateInfo(WizardInfo info) {
+ }
+
+ public void callHelp() {
+ CMSAdminUtil.help(HELPINDEX);
+ }
+
+ /*==========================================================
+ * 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);
+
+ super.init();
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/WMNSelection.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WMNSelection.java
new file mode 100644
index 000000000..db7753b1d
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/WMNSelection.java
@@ -0,0 +1,226 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+import com.netscape.certsrv.common.*;
+
+/**
+ * MNSelection page for reconfiguring the Recovery MN Scheme
+ *
+ * @author Jack Pan-Chen
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config
+ */
+class WMNSelection extends WizardBasePanel
+ implements IWizardPanel
+{
+
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ private static final String PANELNAME = "WMNSELECTION";
+
+ private JTextField mMField, mNField;
+ private JLabel mMLabel, mNLabel;
+ private int mRequired, mAvail;
+
+ private MNSchemeWizardInfo mInfo;
+ private static final String HELPINDEX =
+ "configuration-kra-wizard-change-keyscheme-help";
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ WMNSelection() {
+ super(PANELNAME);
+ init();
+ }
+
+ public boolean isLastPage() {
+ return false;
+ }
+
+ /*==========================================================
+ * public methods
+ *==========================================================*/
+
+ public boolean initializePanel(WizardInfo info) {
+ //let's set the values
+ mInfo = (MNSchemeWizardInfo)info;
+ mMField.setText(mInfo.getNewM());
+ mNField.setText(mInfo.getNewN());
+ mMLabel.setText(mInfo.getM());
+ mNLabel.setText(mInfo.getN());
+ return true;
+ }
+
+ public boolean validatePanel() {
+ if ((mMField.getText().trim().equals("")) ||
+ (mNField.getText().trim().equals("")) ) {
+ setErrorMessage("CANNOTBEBLANK");
+ return false;
+ }
+
+ String str = mMField.getText().trim();
+ if (str.equals("")) {
+ setErrorMessage("CANNOTBEBLANK");
+ return false;
+ }
+
+ try {
+ mRequired = Integer.parseInt(str);
+ str = mNField.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 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/pki/base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java
new file mode 100644
index 000000000..ce0ced102
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/WarningDialog.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WarningDialog.java
new file mode 100644
index 000000000..bedf0b67f
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/ComponentCellRenderer.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/ComponentCellRenderer.java
new file mode 100644
index 000000000..f6dcff392
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizard.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizard.java
new file mode 100644
index 000000000..557dc2739
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java
new file mode 100644
index 000000000..a88101cc4
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIAdminPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIAdminPage.java
new file mode 100644
index 000000000..467632102
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIAllCertsInstalledPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIAllCertsInstalledPage.java
new file mode 100644
index 000000000..b84460814
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1CustomPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1CustomPage.java
new file mode 100644
index 000000000..6f8c26032
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1Page.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACert1Page.java
new file mode 100644
index 000000000..c3ca75420
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACert2Page.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACert2Page.java
new file mode 100644
index 000000000..79fc00b02
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertDNPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertDNPage.java
new file mode 100644
index 000000000..531de6be5
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertExtensionPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertExtensionPage.java
new file mode 100644
index 000000000..1a1a1a8b9
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertPage.java
new file mode 100644
index 000000000..b962c6ca1
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertSubmitPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertSubmitPage.java
new file mode 100644
index 000000000..efa2d8b0c
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertValidityPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICACertValidityPage.java
new file mode 100644
index 000000000..cb8fa550d
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICAKeyPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICAKeyPage.java
new file mode 100644
index 000000000..accc866b2
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICAMessageDigestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICAMessageDigestPage.java
new file mode 100644
index 000000000..e19fc6586
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICAOCSPServicePage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICAOCSPServicePage.java
new file mode 100644
index 000000000..9245b14bf
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICARequestResultPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICARequestResultPage.java
new file mode 100644
index 000000000..f40898821
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICASerialNumberPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICASerialNumberPage.java
new file mode 100644
index 000000000..3b1653d7f
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICATokenLogonPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICATokenLogonPage.java
new file mode 100644
index 000000000..f7068b3d3
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertDNPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertDNPage.java
new file mode 100644
index 000000000..cf7e623ad
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java
new file mode 100644
index 000000000..7ba0636fd
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java
@@ -0,0 +1,176 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+import com.netscape.management.client.console.*;
+import com.netscape.admin.certsrv.task.*;
+import java.util.*;
+
+/**
+ * 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.add(Constants.PR_CERTIFICATE_TYPE, wizardInfo.getCertType());
+ nvps.add(Constants.PR_SUBJECT_NAME, wizardInfo.getSubjectName());
+ nvps.add(Constants.PR_TOKEN_NAME, wizardInfo.getTokenName());
+ nvps.add(Constants.PR_KEY_LENGTH, wizardInfo.getKeyLength());
+ nvps.add(Constants.PR_KEY_TYPE, wizardInfo.getKeyType());
+ nvps.add(Constants.PR_KEY_CURVENAME, wizardInfo.getKeyCurveName());
+ addValidityPeriod(wizardInfo, nvps);
+
+ if (mBasicCheckBox.isSelected())
+ addBasicConstraints(nvps);
+
+ if (mExtendedKeyCheckBox.isSelected())
+ addExtendedKey(nvps);
+
+ if (mAKICheckBox.isSelected())
+ nvps.add(Constants.PR_AKI, Constants.TRUE);
+
+ if (mSKICheckBox.isSelected())
+ nvps.add(Constants.PR_SKI, Constants.TRUE);
+
+ if (mKeyUsageBox.isSelected())
+ nvps.add(Constants.PR_KEY_USAGE, Constants.TRUE);
+
+ if (mMIMECheckBox.isSelected())
+ nvps.add(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.add(Constants.PR_BEGIN_YEAR, wizardInfo.getBeginYear());
+ nvps.add(Constants.PR_BEGIN_MONTH, wizardInfo.getBeginMonth());
+ nvps.add(Constants.PR_BEGIN_DATE, wizardInfo.getBeginDate());
+ nvps.add(Constants.PR_BEGIN_HOUR, wizardInfo.getBeginHour());
+ nvps.add(Constants.PR_BEGIN_MIN, wizardInfo.getBeginMin());
+ nvps.add(Constants.PR_BEGIN_SEC, wizardInfo.getBeginSec());
+ nvps.add(Constants.PR_AFTER_YEAR, wizardInfo.getAfterYear());
+ nvps.add(Constants.PR_AFTER_MONTH, wizardInfo.getAfterMonth());
+ nvps.add(Constants.PR_AFTER_DATE, wizardInfo.getAfterDate());
+ nvps.add(Constants.PR_AFTER_HOUR, wizardInfo.getAfterHour());
+ nvps.add(Constants.PR_AFTER_MIN, wizardInfo.getAfterMin());
+ nvps.add(Constants.PR_AFTER_SEC, wizardInfo.getAfterSec());
+ }
+
+ private void addBasicConstraints(NameValuePairs nvps) {
+ if (mCACheckBox.isSelected())
+ nvps.add(Constants.PR_IS_CA, Constants.TRUE);
+
+ if (mCertPathBox.isSelected()) {
+ String certLen = mCertPathText.getText().trim();
+ if (!certLen.equals(""))
+ nvps.add(Constants.PR_CERT_LEN, certLen);
+ } else {
+ // negative number means infinity
+ nvps.add(Constants.PR_CERT_LEN, "-1");
+ }
+ }
+
+ private void addExtendedKey(NameValuePairs nvps) {
+ if (mSSLClient.isSelected())
+ nvps.add(Constants.PR_SSL_CLIENT_BIT, Constants.TRUE);
+ if (mSSLServer.isSelected())
+ nvps.add(Constants.PR_SSL_SERVER_BIT, Constants.TRUE);
+ if (mSSLMail.isSelected())
+ nvps.add(Constants.PR_SSL_MAIL_BIT, Constants.TRUE);
+ if (mObjectSigning.isSelected())
+ nvps.add(Constants.PR_OBJECT_SIGNING_BIT, Constants.TRUE);
+ if (mTimeStamping.isSelected())
+ nvps.add(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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertRequestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertRequestPage.java
new file mode 100644
index 000000000..d4926e1e9
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertSetupStatusPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertSetupStatusPage.java
new file mode 100644
index 000000000..ff9ca97a6
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertSubmitPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertSubmitPage.java
new file mode 100644
index 000000000..18beac219
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertValidityPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertValidityPage.java
new file mode 100644
index 000000000..8f2acd493
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneCAKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneCAKeyCertPage.java
new file mode 100644
index 000000000..d5722df32
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneKRAKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneKRAKeyCertPage.java
new file mode 100644
index 000000000..bea79b2e0
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneMasterPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneMasterPage.java
new file mode 100644
index 000000000..c8498f306
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneOCSPKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneOCSPKeyCertPage.java
new file mode 100644
index 000000000..9061b5f7a
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIClonePage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIClonePage.java
new file mode 100644
index 000000000..cdfa23199
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneRAKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneRAKeyCertPage.java
new file mode 100644
index 000000000..7194ee3cc
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneTKSKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICloneTKSKeyCertPage.java
new file mode 100644
index 000000000..baeaaec8d
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIConfigWebServerPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIConfigWebServerPage.java
new file mode 100644
index 000000000..ad9e8b4d6
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICreateInternalDBPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICreateInternalDBPage.java
new file mode 100644
index 000000000..4aee62e27
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDBEnrollPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDBEnrollPage.java
new file mode 100644
index 000000000..d63a07129
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCACertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCACertPage.java
new file mode 100644
index 000000000..442fa2b29
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayCertPage.java
new file mode 100644
index 000000000..30e0bac13
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayKRACertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayKRACertPage.java
new file mode 100644
index 000000000..cae06e6cf
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayOCSPCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayOCSPCertPage.java
new file mode 100644
index 000000000..e9db0e436
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayRACertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplayRACertPage.java
new file mode 100644
index 000000000..891e68038
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplaySSLCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIDisplaySSLCertPage.java
new file mode 100644
index 000000000..3a791b4ed
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIExistingDBPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIExistingDBPage.java
new file mode 100644
index 000000000..93bbde830
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertPage.java
new file mode 100644
index 000000000..2bbb2f570
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertReqPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenCAKeyCertReqPage.java
new file mode 100644
index 000000000..c1f3c11ea
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertPage.java
new file mode 100644
index 000000000..98ef24812
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertReqPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKRAKeyCertReqPage.java
new file mode 100644
index 000000000..f6e5df9fe
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertPage.java
new file mode 100644
index 000000000..9a5c0b617
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertPage.java
@@ -0,0 +1,147 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * 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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = (NameValuePair)nvps.elementAt(i);
+ rawData = rawData+"&"+nvp.getName()+"="+nvp.getValue();
+ }
+ }
+
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertReqPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertReqPage.java
new file mode 100644
index 000000000..7d83c8b65
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenKeyCertReqPage.java
@@ -0,0 +1,297 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * 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.getValue(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 (int i=0; i<nvps.size(); i++) {
+ NameValuePair nvp = (NameValuePair)nvps.elementAt(i);
+
+ if (nvp.getName()!= null && nvp.getValue()!= null)
+ rawData = rawData+"&"+nvp.getName()+"="+nvp.getValue();
+ }
+ }
+
+ 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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertPage.java
new file mode 100644
index 000000000..2e2fbdbed
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertReqPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenOCSPKeyCertReqPage.java
new file mode 100644
index 000000000..7c27f673d
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertPage.java
new file mode 100644
index 000000000..05859e54c
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertReqPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenRAKeyCertReqPage.java
new file mode 100644
index 000000000..89aa21f14
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenSSLKeyCertReqPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenSSLKeyCertReqPage.java
new file mode 100644
index 000000000..58a85f790
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenServerKeyCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIGenServerKeyCertPage.java
new file mode 100644
index 000000000..e93c378f6
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCACertStatusPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCACertStatusPage.java
new file mode 100644
index 000000000..d26b79ab0
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCAIntroPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCAIntroPage.java
new file mode 100644
index 000000000..033897c79
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert1Page.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert1Page.java
new file mode 100644
index 000000000..240134536
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert2Page.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCert2Page.java
new file mode 100644
index 000000000..fc9eaacb0
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCertStatusPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallCertStatusPage.java
new file mode 100644
index 000000000..860e5b60e
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallIntroPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallIntroPage.java
new file mode 100644
index 000000000..29ddd0a46
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRACertStatusPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRACertStatusPage.java
new file mode 100644
index 000000000..d33601151
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRAIntroPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallKRAIntroPage.java
new file mode 100644
index 000000000..cba792c1c
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPCertStatusPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPCertStatusPage.java
new file mode 100644
index 000000000..c98b7b045
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPIntroPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallOCSPIntroPage.java
new file mode 100644
index 000000000..96c843e57
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRACertStatusPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRACertStatusPage.java
new file mode 100644
index 000000000..326f5067a
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRAIntroPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallRAIntroPage.java
new file mode 100644
index 000000000..d3d48492c
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLCertStatusPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLCertStatusPage.java
new file mode 100644
index 000000000..27ca1755f
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLIntroPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInstallSSLIntroPage.java
new file mode 100644
index 000000000..7115f96bf
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBInfoPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBInfoPage.java
new file mode 100644
index 000000000..5338e820d
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalDBPage.java
new file mode 100644
index 000000000..936d252d8
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalTokenLogonPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIInternalTokenLogonPage.java
new file mode 100644
index 000000000..3bc9bd2f3
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroMigrationPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroMigrationPage.java
new file mode 100644
index 000000000..616911252
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroPage.java
new file mode 100644
index 000000000..208a92cb8
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroSingleSignonPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIIntroSingleSignonPage.java
new file mode 100644
index 000000000..659dd6969
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertDNPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertDNPage.java
new file mode 100644
index 000000000..2dca713b5
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertExtensionPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertExtensionPage.java
new file mode 100644
index 000000000..2b1f0dc99
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertSubmitPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertSubmitPage.java
new file mode 100644
index 000000000..992bd7f14
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertValidityPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRACertValidityPage.java
new file mode 100644
index 000000000..feaa29983
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAKeyPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAKeyPage.java
new file mode 100644
index 000000000..00b12d43c
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAMessageDigestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAMessageDigestPage.java
new file mode 100644
index 000000000..38941ec7b
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRANumberPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRANumberPage.java
new file mode 100644
index 000000000..000b3eb9f
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRARequestResultPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRARequestResultPage.java
new file mode 100644
index 000000000..1580b7101
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme1Page.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme1Page.java
new file mode 100644
index 000000000..d6171e651
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme2Page.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAScheme2Page.java
new file mode 100644
index 000000000..f8c9c9f8e
--- /dev/null
+++ b/pki/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<data.length; i++) {
+ data[i] = new Vector();
+ data[i].addElement(Integer.toString(i+1));
+ // initialize userid
+ data[i].addElement("agent"+(i+1));
+ data[i].addElement("");
+ data[i].addElement("");
+ mDataModel.addRow(data[i]);
+ }
+
+ setBorder(makeTitledBorder(PANELNAME));
+
+ if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled())
+ mHelpIndex = CAKRAHELPINDEX;
+ else if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled())
+ mHelpIndex = RAKRAHELPINDEX;
+ else
+ mHelpIndex = KRAHELPINDEX;
+
+ return true;
+ }
+
+ public boolean validatePanel() {
+
+ 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);
+ }
+ }
+
+ 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<mDataModel.getRowCount(); i++) {
+ String val1 = (String)mDataModel.getValueAt(i,1);
+ String val2 = (String)mDataModel.getValueAt(i,2);
+ String val3 = (String)mDataModel.getValueAt(i,3);
+ if ( (val1.trim().equals(""))||(val2.trim().equals(""))||
+ (val3.trim().equals(""))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private boolean checkDuplicate() {
+ Hashtable table = new Hashtable();
+ for (int i=0; i<mDataModel.getRowCount(); i++) {
+ String val1 = (String)mDataModel.getValueAt(i,1);
+ table.put(val1.trim(), "1");
+ }
+ if (table.size() != mDataModel.getRowCount()) {
+ table = null;
+ return false;
+ }
+
+ table = null;
+ return true;
+ }
+
+ private boolean checkConfirm() {
+ for (int i=0; i<mDataModel.getRowCount(); i++) {
+ String val2 = (String)mDataModel.getValueAt(i,2);
+ String val3 = (String)mDataModel.getValueAt(i,3);
+ if (!val2.trim().equals(val3.trim())) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private String getUIDPassword() {
+ String result = "";
+ for (int i=0; i<mDataModel.getRowCount(); i++) {
+ String val1 = (String)mDataModel.getValueAt(i,1);
+ String val2 = (String)mDataModel.getValueAt(i,2);
+ result = result+val1.trim()+"="+val2.trim();
+ if (i < (mDataModel.getRowCount()-1))
+ result = result+",";
+ }
+ return result;
+ }
+
+ public boolean concludePanel(WizardInfo info) {
+ InstallWizardInfo wizardInfo = (InstallWizardInfo)info;
+
+ String rawData = "";
+ int total = Integer.parseInt(wizardInfo.getTotalAgents());
+ for (int i=0; i<total; i++) {
+ String val1 = (String)mDataModel.getValueAt(i,1);
+ String val2 = (String)mDataModel.getValueAt(i,2);
+ rawData = rawData+ConfigConstants.PR_AGENT_UID+i+"="+val1;
+ rawData = rawData+"&"+ConfigConstants.PR_AGENT_PWD+i+"="+val2;
+ }
+
+ rawData = rawData+"&"+ConfigConstants.TASKID+"="+TaskId.TASK_AGENTS;
+ rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY;
+ rawData = rawData+"&"+ConfigConstants.PR_AGENT_N+"="+
+ wizardInfo.getTotalAgents();
+ rawData = rawData+"&"+ConfigConstants.PR_AGENT_M+"="+
+ wizardInfo.getRequiredAgents();
+ 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(mHelpIndex);
+ }
+
+ protected void init() {
+ GridBagLayout gb = new GridBagLayout();
+ GridBagConstraints gbc = new GridBagConstraints();
+ setLayout(gb);
+
+ CMSAdminUtil.resetGBC(gbc);
+ JTextArea headingLbl = createTextArea(mResource.getString(
+ PANELNAME+"_LABEL_HEADING_LABEL"));
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE,COMPONENT_SPACE,
+ COMPONENT_SPACE);
+ gbc.gridwidth = gbc.REMAINDER;
+ add(headingLbl, gbc);
+
+ mDataModel = new NewAgentModel();
+ mTable = new JTable(mDataModel);
+ JScrollPane scrollPane = JTable.createScrollPaneForTable(mTable);
+ scrollPane.setHorizontalScrollBarPolicy(scrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+ scrollPane.setVerticalScrollBarPolicy(scrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+ mTable.setAutoscrolls(true);
+ mTable.sizeColumnsToFit(true);
+ mTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
+ scrollPane.setBackground(Color.white);
+ setLabelCellRenderer(mTable, 1);
+ setLabelCellEditor(mTable, 2);
+ setLabelCellEditor(mTable, 3);
+
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.fill = gbc.BOTH;
+ gbc.weighty = 1.0;
+ gbc.weightx = 1.0;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE,
+ COMPONENT_SPACE, COMPONENT_SPACE);
+ gb.setConstraints(scrollPane, gbc);
+ add(scrollPane);
+
+ super.init();
+ }
+
+ public void getUpdateInfo(WizardInfo info) {
+ }
+
+ //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()));
+ }
+}
+
+class NewAgentModel extends CMSTableModel
+{
+ /*==========================================================
+ * variables
+ *==========================================================*/
+ public static final String COL1 = "NUMBER";
+ public static final String COL2 = "UID";
+ public static final String COL3 = "PASSWORD";
+ public static final String COL4 = "CONFIRM";
+
+
+ private static String[] mColumns = {COL1, COL2, COL3, COL4};
+
+ /*==========================================================
+ * constructors
+ *==========================================================*/
+ public NewAgentModel() {
+ super();
+ init(mColumns);
+ }
+
+ public boolean isCellEditable(int row, int col) {
+ if(col >= 1)
+ return true;
+ return false;
+ }
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAStorageKeyPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRAStorageKeyPage.java
new file mode 100644
index 000000000..6cce19d95
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRATokenLogonPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKRATokenLogonPage.java
new file mode 100644
index 000000000..82857a154
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKeyPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIKeyPage.java
new file mode 100644
index 000000000..d67d0e339
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WILDAPPublishingPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WILDAPPublishingPage.java
new file mode 100644
index 000000000..5cb6b3db3
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WILoggingPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WILoggingPage.java
new file mode 100644
index 000000000..a28a4795d
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WILogonAllTokensPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WILogonAllTokensPage.java
new file mode 100644
index 000000000..9a8060b30
--- /dev/null
+++ b/pki/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<mTable.getRowCount(); i++) {
+ JComponent comp = (JComponent)mTable.getValueAt(i,1);
+ if (comp instanceof JPasswordField) {
+ String val2 = ((JPasswordField)comp).getText().trim();
+ if (val2.trim().equals("")) {
+ setErrorMessage("CANNOTBEBLANK");
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ public boolean concludePanel(WizardInfo info) {
+ InstallWizardInfo wizardInfo = (InstallWizardInfo)info;
+ cleanUpWizardInfo(wizardInfo);
+ String tokenNames = "";
+ String pwds = "";
+
+ String val1 = "";
+ String val2 = "";
+ for (int i=0; i<mTable.getRowCount(); i++) {
+ JComponent comp = (JComponent)mTable.getValueAt(i,0);
+ if (comp instanceof JLabel) {
+ val1 = ((JLabel)comp).getText().trim();
+ }
+ JComponent comp1 = (JComponent)mTable.getValueAt(i,1);
+ if (comp1 instanceof JPasswordField) {
+ val2 = ((JPasswordField)comp1).getText().trim();
+ }
+ wizardInfo.put("TOKEN:"+val1, val2);
+ if (i == 0) {
+ tokenNames = val1;
+ pwds = val2;
+ } else {
+ tokenNames = tokenNames+":"+val1;
+ pwds = pwds+":"+val2;
+ }
+ }
+
+ startProgressStatus();
+ String rawData = ConfigConstants.PR_TOKEN_LOGONLIST+"="+tokenNames;
+ rawData = rawData+"&"+ConfigConstants.PR_TOKEN_LOGON_PWDS+"="+pwds;
+ rawData = rawData+"&"+ConfigConstants.TASKID+"="+TaskId.TASK_LOGON_ALL_TOKENS;
+ rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY;
+ rawData = rawData+"&"+ConfigConstants.PR_CMS_SEED+"="+
+ (new Long(WizardBasePanel.mSeed).toString());
+
+ boolean ready = send(rawData, wizardInfo);
+
+ if (!ready) {
+ String str = getErrorMessage(wizardInfo);
+ if (str == null) {
+ String errorMsg = mResource.getString(
+ PANELNAME+"_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 == null)
+ setErrorMessage("Server Error");
+ else
+ setErrorMessage(str);
+ }
+
+ endProgressStatus();
+
+ 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);
+
+ Vector colNames = new Vector();
+ colNames.addElement("Token Name");
+ colNames.addElement("Password");
+ Vector data = new Vector();
+ Vector row = new Vector();
+ row.addElement("x");
+ row.addElement("x");
+ data.addElement(row);
+ ProfilePolicyEditDataModel dataModel = new ProfilePolicyEditDataModel();
+ dataModel.setInfo(data, colNames);
+ mTable = new ProfileDataTable(dataModel);
+ JScrollPane scrollPane = JTable.createScrollPaneForTable(mTable);
+ scrollPane.setHorizontalScrollBarPolicy(
+ scrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+ scrollPane.setVerticalScrollBarPolicy(
+ scrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+ mTable.setAutoscrolls(true);
+ mTable.sizeColumnsToFit(true);
+ mTable.getSelectionModel().setSelectionMode(
+ ListSelectionModel.SINGLE_INTERVAL_SELECTION);
+ scrollPane.setBackground(Color.white);
+ mTable.setDefaultRenderer(JComponent.class, new ComponentCellRenderer());
+ mTable.setDefaultEditor(JComponent.class,
+ new ProfileComponentCellEditor());
+
+ CMSAdminUtil.resetGBC(gbc);
+ gbc.anchor = gbc.NORTHWEST;
+ gbc.fill = gbc.BOTH;
+ gbc.weighty = 1.0;
+ gbc.weightx = 1.0;
+ gbc.gridwidth = gbc.REMAINDER;
+ gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE,
+ COMPONENT_SPACE, COMPONENT_SPACE);
+ gb.setConstraints(scrollPane, gbc);
+ add(scrollPane, 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) {
+ }
+
+ private void setLabelCellRenderer(JTable table, int index) {
+ table.getColumnModel().getColumn(index).setCellRenderer(
+ new DefaultTableCellRenderer());
+ }
+
+ private void setLabelCellEditor(JTable table, int index) {
+ table.getColumnModel().getColumn(index).setCellRenderer(
+ new PasswordCellRenderer());
+ table.getColumnModel().getColumn(index).setCellEditor(
+ new DefaultCellEditor(new JPasswordField()));
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualCACertRequestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualCACertRequestPage.java
new file mode 100644
index 000000000..cb1e092de
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualCACertRequestPage.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 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.console.*;
+
+/**
+ * Generate the CA signing certificate request
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config.install
+ */
+class WIManualCACertRequestPage extends WIManualCertRequestPage {
+ private static final String PANELNAME = "INSTALLMANUALCACERTREQUESTWIZARD";
+ private static final String CAHELPINDEX = "install-cacertrequest-manual-wizard-help";
+ private static final String CAKRAHELPINDEX = "install-cakracertrequest-manual-wizard-help";
+
+ WIManualCACertRequestPage(JDialog parent) {
+ super(PANELNAME);
+ mParent = parent;
+ }
+
+ WIManualCACertRequestPage(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() ||
+ wizardInfo.isCACertRequestSucc() ||
+ wizardInfo.isSelfSignedCACertDone())
+ return false;
+
+ if (wizardInfo.isCAInstalled() && wizardInfo.isKRAInstalled())
+ mHelpIndex = CAKRAHELPINDEX;
+ else
+ mHelpIndex = CAHELPINDEX;
+
+/*
+ mDesc.setText(mResource.getString(
+ mPanelName+"_TEXT_DESC_LABEL"));
+*/
+
+ return super.initializePanel(info);
+ }
+
+ public void back_cb(WizardInfo info) {
+ super.back_cb(info);
+ info.put(ConfigConstants.CA_CERT_REQUEST_BACK,ConfigConstants.TRUE);
+ info.put(ConfigConstants.CA_CERT_REQUEST_BACK,ConfigConstants.TRUE);
+ }
+
+}
+
+
+
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualCertRequestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualCertRequestPage.java
new file mode 100644
index 000000000..37adddb98
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualCertRequestPage.java
@@ -0,0 +1,178 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.io.*;
+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.*;
+import com.netscape.management.client.console.*;
+import com.netscape.management.client.util.*;
+
+/**
+ * Manual certificate request page for installation wizard.
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config.install
+ */
+class WIManualCertRequestPage extends WBaseManualCertRequestPage implements IWizardPanel {
+// private static final String PANELNAME = "INSTALLMANUALCERTREQUESTWIZARD";
+ String mHelpIndex;
+
+ WIManualCertRequestPage(String panelName) {
+ super(panelName);
+ init();
+ }
+
+ public boolean isLastPage() {
+ return false;
+ }
+
+ public boolean initializePanel(WizardInfo info) {
+ return super.initializePanel(info);
+ }
+
+ public boolean validatePanel() {
+ return super.validatePanel();
+ }
+
+ 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");
+ String certType = null;
+ String rawData = "";
+ if (mReqType.equals(Constants.PR_CA_SIGNING_CERT)){
+ rawData = "profileId=caCACert";
+ }else if (mReqType.equals(Constants.PR_SERVER_CERT) ||
+ mReqType.equals(Constants.PR_KRA_TRANSPORT_CERT)){
+ rawData = "profileId=caServerCert";
+ }else if (mReqType.equals(Constants.PR_OCSP_SIGNING_CERT)){
+ rawData = "profileId=caOCSPCert";
+ }else if (mReqType.equals(Constants.PR_RA_SIGNING_CERT)){
+ rawData = "profileId=caRACert";
+ }else {
+ setErrorMessage("Wrong cert request type!");
+ return false;
+ }
+
+ if (mReqFormat.equals(ConfigConstants.PR_REQUEST_PKCS10)){
+ rawData = rawData+"&cert_request_type=pkcs10";
+ rawData = rawData+"&cert_request="+mReq;
+ } else {
+ rawData = rawData+"&cert_request_type=cmc";
+ rawData = rawData+"&cert_request="+mReq;
+ // test full response, but we don't really need it
+ // data.put("fullResponse", "true");
+ }
+
+ startProgressStatus();
+ boolean ready = send(mHost, Integer.parseInt(mPort),
+ "/ca/ee/ca/profileSubmit", rawData, wizardInfo);
+ endProgressStatus();
+
+ if (!ready) {
+ String str = 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)) ) {
+ rawData = ConfigConstants.TASKID+"="+TaskId.TASK_REQUEST_SUCCESS;
+ rawData = rawData+"&"+ConfigConstants.OPTYPE+"="+OpDef.OP_MODIFY;
+ rawData = rawData+"&"+Constants.PR_CERTIFICATE_TYPE+"="+mReqType;
+ rawData = rawData+"&"+mReqType+ConfigConstants.PR_REQUEST_ID+"="+
+ reqID;
+ rawData = rawData+"&"+ConfigConstants.CA_EEPORT+"="+
+ mPortText.getText();
+ rawData = rawData+"&"+ConfigConstants.CA_EETYPE+"="+
+ wizardInfo.getCMEEType();
+ rawData = rawData+"&"+ConfigConstants.CA_HOST+"="+
+ mHostText.getText();
+
+ 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);
+ return ready;
+ }
+ }
+ return ready;
+ }
+
+ public void callHelp() {
+ CMSAdminUtil.help(mHelpIndex);
+ }
+
+ protected void back_cb(WizardInfo info) {
+ // clear up the status
+ InstallWizardInfo wizardInfo = (InstallWizardInfo)info;
+ wizardInfo.remove(wizardInfo.getCertType()+ConfigConstants.PR_CERT_REQUEST+"Status");
+ wizardInfo.remove(wizardInfo.getCertRequest()+"Error");
+ wizardInfo.remove(wizardInfo.getCertType()+ConfigConstants.PR_REQUEST_ID);
+ }
+
+ protected void init() {
+ super.init();
+ }
+
+ public void getUpdateInfo(WizardInfo info) {
+ }
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualKRACertRequestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualKRACertRequestPage.java
new file mode 100644
index 000000000..c1355b3d5
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualKRACertRequestPage.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.*;
+
+/**
+ * Generate the CA signing certificate request
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config.install
+ */
+class WIManualKRACertRequestPage extends WIManualCertRequestPage {
+ private static final String PANELNAME = "INSTALLMANUALKRACERTREQUESTWIZARD";
+ private static final String KRAHELPINDEX = "install-kracertrequest-manual-wizard-help";
+ private static final String RAKRAHELPINDEX = "install-rakra-kracertrequest-manual-wizard-help";
+ private static final String CAKRAHELPINDEX = "install-cakra-kracertrequest-manual-wizard-help";
+
+ WIManualKRACertRequestPage(JDialog parent) {
+ super(PANELNAME);
+ mParent = parent;
+ }
+
+ WIManualKRACertRequestPage(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.isKRACertInstalledDone() ||
+ wizardInfo.isKRACertRequestSucc())
+ 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 void back_cb(WizardInfo info) {
+ super.back_cb(info);
+ info.put(ConfigConstants.KRA_CERT_REQUEST_BACK,ConfigConstants.TRUE);
+ info.put(ConfigConstants.KRA_REQUEST_DISPLAYED,ConfigConstants.FALSE);
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualOCSPCertRequestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualOCSPCertRequestPage.java
new file mode 100644
index 000000000..268c6c395
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualOCSPCertRequestPage.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 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 WIManualOCSPCertRequestPage extends WIManualCertRequestPage {
+ private static final String PANELNAME = "INSTALLMANUALOCSPCERTREQUESTWIZARD";
+ private static final String OCSPHELPINDEX = "install-ocspcertrequest-manual-wizard-help";
+
+ WIManualOCSPCertRequestPage(JDialog parent) {
+ super(PANELNAME);
+ mParent = parent;
+ }
+
+ WIManualOCSPCertRequestPage(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.isOCSPLocalCertDone() ||
+ wizardInfo.isOCSPCertInstalledDone() ||
+ wizardInfo.isOCSPCertRequestSucc() )
+ return false;
+
+ mHelpIndex = OCSPHELPINDEX;
+
+ return super.initializePanel(info);
+ }
+
+ public void back_cb(WizardInfo info) {
+ super.back_cb(info);
+ info.put(ConfigConstants.OCSP_CERT_REQUEST_BACK,ConfigConstants.TRUE);
+ info.put(ConfigConstants.OCSP_REQUEST_DISPLAYED,ConfigConstants.FALSE);
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualRACertRequestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualRACertRequestPage.java
new file mode 100644
index 000000000..7439ed7b5
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualRACertRequestPage.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 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 WIManualRACertRequestPage extends WIManualCertRequestPage {
+ private static final String PANELNAME = "INSTALLMANUALRACERTREQUESTWIZARD";
+ private static final String RAHELPINDEX = "install-racertrequest-manual-wizard-help";
+ private static final String RAKRAHELPINDEX = "install-rakracertrequest-manual-wizard-help";
+
+ WIManualRACertRequestPage(JDialog parent) {
+ super(PANELNAME);
+ mParent = parent;
+ }
+
+ WIManualRACertRequestPage(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.isRACertInstalledDone() ||
+ wizardInfo.isRACertRequestSucc() )
+ return false;
+
+ if (wizardInfo.isRAInstalled() && wizardInfo.isKRAInstalled())
+ mHelpIndex = RAKRAHELPINDEX;
+ else
+ mHelpIndex = RAHELPINDEX;
+
+ return super.initializePanel(info);
+ }
+
+ public void back_cb(WizardInfo info) {
+ super.back_cb(info);
+ info.put(ConfigConstants.RA_CERT_REQUEST_BACK,ConfigConstants.TRUE);
+ info.put(ConfigConstants.RA_REQUEST_DISPLAYED,ConfigConstants.FALSE);
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualSSLCertRequestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualSSLCertRequestPage.java
new file mode 100644
index 000000000..f96ea5208
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIManualSSLCertRequestPage.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 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 WIManualSSLCertRequestPage extends WIManualCertRequestPage {
+ private static final String PANELNAME = "INSTALLMANUALSSLCERTREQUESTWIZARD";
+ private static final String HELPINDEX = "install-sslcertrequest-manual-wizard-help";
+
+ WIManualSSLCertRequestPage(JDialog parent) {
+ super(PANELNAME);
+ mHelpIndex = HELPINDEX;
+ mParent = parent;
+ }
+
+ WIManualSSLCertRequestPage(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.isSSLLocalCertDone() ||
+ wizardInfo.isSSLCertInstalledDone() ||
+ wizardInfo.isSSLCertRequestSucc())
+ return false;
+ return super.initializePanel(info);
+ }
+
+ public void back_cb(WizardInfo info) {
+ super.back_cb(info);
+ info.put(ConfigConstants.SSL_CERT_REQUEST_BACK,ConfigConstants.TRUE);
+ info.put(ConfigConstants.SSL_REQUEST_DISPLAYED,ConfigConstants.FALSE);
+ }
+}
+
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIMasterOrClone.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIMasterOrClone.java
new file mode 100644
index 000000000..96c764381
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIMasterOrClone.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 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 WIMasterOrClone extends WizardBasePanel implements IWizardPanel {
+ protected JRadioButton mYes;
+ protected JRadioButton mNo;
+ protected JTextArea mLabel;
+ private static final String PANELNAME = "MASTERORCLONE";
+ private static final String HELPINDEX =
+ "install-internaldb-createdbagain-help";
+
+ WIMasterOrClone(JDialog parent) {
+ super(PANELNAME);
+ mParent = parent;
+ init();
+ }
+
+ WIMasterOrClone(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.isCloning()) {
+ mYes.setSelected(true);
+ mNo.setSelected(false);
+ }else{
+ mYes.setSelected(false);
+ mNo.setSelected(true);
+ }
+ if(wizardInfo.isClonePageDone())
+ return false;
+ else
+ return true;
+ }
+
+ public boolean validatePanel() {
+ return true;
+ }
+
+ public boolean concludePanel(WizardInfo info) {
+ InstallWizardInfo wizardInfo = (InstallWizardInfo)info;
+ cleanUpWizardInfo(wizardInfo);
+ startProgressStatus();
+ Debug.println("WIMasterOrClone:concludePanel() 1");
+ String rawData = ConfigConstants.TASKID+"="+TaskId.TASK_MASTER_OR_CLONE;
+ rawData = rawData+"&"+ ConfigConstants.OPTYPE+"="+OpDef.OP_READ;
+ if (mYes.isSelected()) {
+ rawData = rawData+"&"+"cloning="+ConfigConstants.TRUE;
+ } else {
+ rawData = rawData+"&"+"cloning="+ConfigConstants.FALSE;
+ rawData = rawData+"&"+ConfigConstants.PR_CLONE_SETTING_DONE+"="+ConfigConstants.TRUE;
+ }
+ rawData = rawData+"&"+ConfigConstants.PR_CMS_SEED+"="+(new Long(WizardBasePanel.mSeed).toString());
+ Debug.println("WIMasterOrClone:concludePanel() 2");
+ boolean ready = send(rawData, wizardInfo);
+ endProgressStatus();
+
+ if (!ready) {
+ String str = getErrorMessage(wizardInfo);
+ if (str == null)
+ setErrorMessage("Server Error");
+ else
+ setErrorMessage(str);
+ }else if (!mYes.isSelected()){
+ 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);
+
+ 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", 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(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.setCloning(ConfigConstants.TRUE);
+ } else {
+ wizardInfo.setCloning(ConfigConstants.FALSE);
+ }
+ }
+}
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIMigrationPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIMigrationPage.java
new file mode 100644
index 000000000..ab9bcebb9
--- /dev/null
+++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIMigrationPage.java
@@ -0,0 +1,715 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, 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.*;
+
+/**
+ * Migration page for installation wizard.
+ *
+ * @author Christine Ho
+ * @version $Revision$, $Date$
+ * @see com.netscape.admin.certsrv.config.install
+ */
+class WIMigrationPage extends WizardBasePanel implements IWizardPanel, ItemListener {
+ private JLabel mTransportLbl, mDBLbl;
+ private JPasswordField mTransportPassword, mDBPassword;
+ private JLabel mCAPasswdLbl, mCAPasswdAgainLbl, mCASOPLbl;
+ private JPasswordField mCAPassword, mCAPasswordAgain, mCASOPPassword;
+ private JLabel mSSLPasswdLbl, mSSLPasswdAgainLbl, mSSLSOPLbl;
+ private JPasswordField mSSLPassword, mSSLPasswordAgain, mSSLSOPPassword;
+ private JLabel mPathLbl, mCATokenHeading, mSSLTokenHeading;
+ private JLabel mCATokenLbl, mSSLTokenLbl;
+ private JTextField mPathText;
+ private JComboBox mCATokenBox, mSSLTokenBox;
+ private String[] mTokenInitialized;
+ private String[] mTokenLogin;
+ private Color mActiveColor;
+ private JLabel mLogonInitCATokenLbl, mLogonInitSSLTokenLbl;
+ private String mHelpIndex;
+ private InstallWizardInfo mWizardInfo;
+ private static final String PANELNAME = "MIGRATIONWIZARD";
+ private static final String CAHELPINDEX =
+ "install-ca-migration-configuration-wizard-help";
+ private static final String CAKRAHELPINDEX =
+ "install-cakra-migration-configuration-wizard-help";
+
+ WIMigrationPage(JDialog parent) {
+ super(PANELNAME);
+ mParent = parent;
+ init();
+ }
+
+ WIMigrationPage(JDialog parent, JFrame adminFrame) {
+ super(PANELNAME);
+ mParent = parent;
+ mAdminFrame = adminFrame;
+ init();
+ }
+
+ public boolean isLastPage() {
+ return false;
+ }
+
+ public boolean initializePanel(WizardInfo info) {
+ mWizardInfo = (InstallWizardInfo)info;
+ if (!mWizardInfo.isMigrationEnable() || !mWizardInfo.isCAInstalled() ||
+ mWizardInfo.isMigrationDone())
+ return false;
+ setBorder(makeTitledBorder(PANELNAME));
+ initializeTokenBox(mCATokenBox);
+
+ if (mSSLTokenBox.getItemCount() > 0)
+ mSSLTokenBox.removeAllItems();
+ for (int i=0; i<mCATokenBox.getItemCount(); i++) {
+ String str = (String)mCATokenBox.getItemAt(i);
+ mSSLTokenBox.addItem(str);
+ }
+ int index = mCATokenBox.getSelectedIndex();
+ mWizardInfo.setMigrateCACertTokenName((String)mCATokenBox.getSelectedItem());
+ enableFields(index, mLogonInitCATokenLbl, mCAPasswdLbl, mCAPassword,
+ mCAPasswdAgainLbl, mCAPasswordAgain, mCASOPLbl, mCASOPPassword);
+
+ index = mSSLTokenBox.getSelectedIndex();
+ mWizardInfo.setMigrateSSLCertTokenName((String)mSSLTokenBox.getSelectedItem());
+ enableFields(index, mLogonInitSSLTokenLbl, mSSLPasswdLbl, mSSLPassword,
+ mSSLPasswdAgainLbl, mSSLPasswordAgain, mSSLSOPLbl, mSSLSOPPassword);
+
+ mCATokenBox.addItemListener(this);
+ mSSLTokenBox.addItemListener(this);
+ enablePasswordFields();
+
+ if (mWizardInfo.isCAInstalled() && mWizardInfo.isKRAInstalled())
+ mHelpIndex = CAKRAHELPINDEX;
+ else
+ mHelpIndex = CAHELPINDEX;
+
+ return true;
+ }
+
+ private void initializeTokenBox(JComboBox tokenBox) {
+ if (tokenBox.getItemCount() > 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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WINetworkPage.java
new file mode 100644
index 000000000..823980d56
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertDNPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertDNPage.java
new file mode 100644
index 000000000..d13124de6
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertSubmitPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPCertSubmitPage.java
new file mode 100644
index 000000000..dd58b5f1a
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPKeyPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPKeyPage.java
new file mode 100644
index 000000000..a49b428a7
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPMessageDigestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPMessageDigestPage.java
new file mode 100644
index 000000000..ec250dcd1
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPRequestResultPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPRequestResultPage.java
new file mode 100644
index 000000000..a94fbf6e3
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPTokenLogonPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIOCSPTokenLogonPage.java
new file mode 100644
index 000000000..aa4be933a
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCACertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCACertPage.java
new file mode 100644
index 000000000..816554588
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteCertPage.java
new file mode 100644
index 000000000..063382f32
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteKRACertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteKRACertPage.java
new file mode 100644
index 000000000..7166d64bf
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteOCSPCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteOCSPCertPage.java
new file mode 100644
index 000000000..783d87da7
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteRACertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteRACertPage.java
new file mode 100644
index 000000000..584c375d4
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteSSLCertPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIPasteSSLCertPage.java
new file mode 100644
index 000000000..bf133bc15
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertDNPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertDNPage.java
new file mode 100644
index 000000000..788fab869
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertExtensionPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertExtensionPage.java
new file mode 100644
index 000000000..85553c5c7
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertSubmitPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertSubmitPage.java
new file mode 100644
index 000000000..771aa51b3
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertValidityPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRACertValidityPage.java
new file mode 100644
index 000000000..fec7619df
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRAKeyPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRAKeyPage.java
new file mode 100644
index 000000000..9abb9e0ac
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRAMessageDigestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRAMessageDigestPage.java
new file mode 100644
index 000000000..ef843ba37
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRARequestResultPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRARequestResultPage.java
new file mode 100644
index 000000000..36c81b7d9
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRATokenLogonPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRATokenLogonPage.java
new file mode 100644
index 000000000..d6f9dbafe
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRecreateDBPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRecreateDBPage.java
new file mode 100644
index 000000000..f07de3134
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteCASubsystem.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteCASubsystem.java
new file mode 100644
index 000000000..890c8ce4b
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteKRASubsystem.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRemoteKRASubsystem.java
new file mode 100644
index 000000000..29beb04af
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIReplAgreementPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIReplAgreementPage.java
new file mode 100644
index 000000000..df9bb1ab0
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRequestResultPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIRequestResultPage.java
new file mode 100644
index 000000000..e3f9c53f3
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WISMTPPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WISMTPPage.java
new file mode 100644
index 000000000..3b7ba9d00
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WISSLMessageDigestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WISSLMessageDigestPage.java
new file mode 100644
index 000000000..820c17646
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WISSLRequestResultPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WISSLRequestResultPage.java
new file mode 100644
index 000000000..119221105
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WISSLTokenLogonPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WISSLTokenLogonPage.java
new file mode 100644
index 000000000..ff1ed7826
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertDNPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertDNPage.java
new file mode 100644
index 000000000..b6ee85acc
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertExtensionPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertExtensionPage.java
new file mode 100644
index 000000000..f958c88a1
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertSubmitPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertSubmitPage.java
new file mode 100644
index 000000000..417e706a5
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertValidityPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerCertValidityPage.java
new file mode 100644
index 000000000..047b9d7e8
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerKeyPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServerKeyPage.java
new file mode 100644
index 000000000..c14d0d2b3
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServicesPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WIServicesPage.java
new file mode 100644
index 000000000..fb524e62f
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WISingleSignonPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WISingleSignonPage.java
new file mode 100644
index 000000000..49e06ac1e
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WITokenLogonPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WITokenLogonPage.java
new file mode 100644
index 000000000..b3ecdbf5a
--- /dev/null
+++ b/pki/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/pki/base/console/src/com/netscape/admin/certsrv/config/install/WITrustDBPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WITrustDBPage.java
new file mode 100644
index 000000000..cd19963ff
--- /dev/null
+++ b/pki/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) {
+ }
+}