diff options
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/servlet/csadmin/SecurityDomainPanel.java')
-rw-r--r-- | pki/base/common/src/com/netscape/cms/servlet/csadmin/SecurityDomainPanel.java | 216 |
1 files changed, 124 insertions, 92 deletions
diff --git a/pki/base/common/src/com/netscape/cms/servlet/csadmin/SecurityDomainPanel.java b/pki/base/common/src/com/netscape/cms/servlet/csadmin/SecurityDomainPanel.java index 73ab1b07f..bb4dba978 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/csadmin/SecurityDomainPanel.java +++ b/pki/base/common/src/com/netscape/cms/servlet/csadmin/SecurityDomainPanel.java @@ -96,12 +96,14 @@ public class SecurityDomainPanel extends WizardPanelBase { context.put("title", "Security Domain"); IConfigStore config = CMS.getConfigStore(); String errorString = ""; - String url = ""; + String admin_url = ""; String name = ""; + String cstype = ""; try { - url = config.getString("preop.securitydomain.url", ""); + admin_url = config.getString("preop.securitydomain.admin_url", ""); name = config.getString("preop.securitydomain.name", ""); + cstype = config.getString("cs.type", ""); } catch (Exception e) { CMS.debug(e.toString()); } @@ -130,70 +132,60 @@ public class SecurityDomainPanel extends WizardPanelBase { context.put("panelname", "Security Domain Configuration"); context.put("systemname", config.getString("preop.system.name")); context.put("machineName", config.getString("machineName")); - context.put("https_port", CMS.getEESSLPort()); - context.put("http_port", CMS.getEENonSSLPort()); + context.put("http_ee_port", CMS.getEENonSSLPort()); + context.put("https_agent_port", CMS.getAgentPort()); + context.put("https_ee_port", CMS.getEESSLPort()); + context.put("https_admin_port", CMS.getAdminPort()); + context.put("sdomainAdminURL", admin_url); } catch (EBaseException e) {} context.put("panel", "admin/console/config/securitydomainpanel.vm"); context.put("errorString", errorString); - if (url != null) { - String r = null; - - try { - URL u = new URL(url); - - String hostname = u.getHost(); - int port = u.getPort(); - ConfigCertApprovalCallback certApprovalCallback = new ConfigCertApprovalCallback(); - r = pingCS(hostname, port, true, certApprovalCallback); - } catch (Exception e) { - CMS.debug("SecurityDomainPanel: exception caught: "+e.toString()); - } - - if (r != null) { - CMS.debug("SecurityDomainPanel: pingCS returns: "+r); - context.put("sdomainURL", url); - } else { - CMS.debug("SecurityDomainPanel: pingCS no successful response"); - context.put("sdomainURL", ""); - } - } - - // from url, find hostname, if fully qualified, get network + // from admin_url, find hostname, if fully qualified, get network // domain name and generate default security domain name - if (name.equals("") && (url != null)) { + if (name.equals("") && (admin_url != null)) { try { - URL u = new URL(url); + URL u = new URL(admin_url); String hostname = u.getHost(); StringTokenizer st = new StringTokenizer(hostname, "."); - boolean first = true; - int numTokens = st.countTokens(); - int count = 0; - String defaultDomain = ""; - StringBuffer sb = new StringBuffer(); - while (st.hasMoreTokens()) { - count++; - String n = st.nextToken(); - if (first) { //skip the hostname - first = false; - continue; + boolean first = true; + int numTokens = st.countTokens(); + int count = 0; + String defaultDomain = ""; + StringBuffer sb = new StringBuffer(); + while (st.hasMoreTokens()) { + count++; + String n = st.nextToken(); + if (first) { //skip the hostname + first = false; + continue; } - if (count == numTokens) // skip the last element (e.g. com) - continue; - sb.append((defaultDomain.length()==0)? "":" "); - sb.append(capitalize(n)); - } - defaultDomain = sb.toString() + " "+ "Domain"; - name = defaultDomain; - CMS.debug("SecurityDomainPanel: defaultDomain generated:"+ name); + if (count == numTokens) // skip the last element (e.g. com) + continue; + sb.append((defaultDomain.length()==0)? "":" "); + sb.append(capitalize(n)); + } + defaultDomain = sb.toString() + " "+ "Domain"; + name = defaultDomain; + CMS.debug("SecurityDomainPanel: defaultDomain generated:"+ name); } catch (MalformedURLException e) { errorString = "Malformed URL"; - // not being able to come up with default domain name is ok + // not being able to come up with default domain name is ok } } context.put("sdomainName", name); + + // Information for "existing" Security Domain CAs + String instanceId = "<security_domain_instance_name>"; + String os = System.getProperty( "os.name" ); + if( os.equalsIgnoreCase( "Linux" ) ) { + context.put( "initCommand", "/sbin/service " + instanceId ); + } else { + /* default case: e. g. - ( os.equalsIgnoreCase( "SunOS" ) */ + context.put( "initCommand", "/etc/init.d/" + instanceId ); + } } public static String capitalize(String s) { @@ -219,10 +211,41 @@ public class SecurityDomainPanel extends WizardPanelBase { throw new IOException("Missing name value for the security domain"); } } else if (select.equals("existingdomain")) { - String url = HttpInput.getURL(request, "sdomainURL"); - if (url == null || url.equals("")) { - initParams(request, context); - throw new IOException("Missing url value for the security domain"); + CMS.debug( "SecurityDomainPanel: validating " + + "SSL Admin HTTPS . . ." ); + String admin_url = HttpInput.getURL( request, "sdomainURL" ); + if( admin_url == null || admin_url.equals("") ) { + initParams( request, context ); + throw new IOException( "Missing SSL Admin HTTPS url value " + + "for the security domain" ); + } else { + String r = null; + + try { + URL u = new URL( admin_url ); + + String hostname = u.getHost(); + int admin_port = u.getPort(); + ConfigCertApprovalCallback + certApprovalCallback = new ConfigCertApprovalCallback(); + r = pingCS( hostname, admin_port, true, + certApprovalCallback ); + } catch( Exception e ) { + CMS.debug( "SecurityDomainPanel: exception caught: " + + e.toString() ); + throw new IOException( "Illegal SSL Admin HTTPS url value " + + "for the security domain" ); + } + + if (r != null) { + CMS.debug("SecurityDomainPanel: pingAdminCS returns: " + + r ); + context.put( "sdomainURL", admin_url ); + } else { + CMS.debug( "SecurityDomainPanel: pingAdminCS " + + "no successful response for SSL Admin HTTPS" ); + context.put( "sdomainURL", "" ); + } } } } @@ -250,10 +273,10 @@ public class SecurityDomainPanel extends WizardPanelBase { name = ""; context.put("sdomainName", name); - String url = request.getParameter("sdomainURL"); - if (url == null) - url = ""; - context.put("sdomainURL", url); + String admin_url = request.getParameter("sdomainURL"); + if (admin_url == null) + admin_url = ""; + context.put("sdomainURL", admin_url); } /** @@ -274,22 +297,20 @@ public class SecurityDomainPanel extends WizardPanelBase { if (select.equals("newdomain")) { config.putString("preop.securitydomain.select", "new"); config.putString("securitydomain.select", "new"); - config.putString("preop.securitydomain.host", - CMS.getEENonSSLHost()); + config.putString("preop.securitydomain.name", + HttpInput.getDomainName(request, "sdomainName")); + config.putString("securitydomain.name", + HttpInput.getDomainName(request, "sdomainName")); config.putString("securitydomain.host", CMS.getEENonSSLHost()); - config.putString("preop.securitydomain.httpport", - CMS.getEENonSSLPort()); config.putString("securitydomain.httpport", CMS.getEENonSSLPort()); - config.putString("preop.securitydomain.httpsport", - CMS.getEESSLPort()); - config.putString("securitydomain.httpsport", + config.putString("securitydomain.httpsagentport", + CMS.getAgentPort()); + config.putString("securitydomain.httpseeport", CMS.getEESSLPort()); - config.putString("preop.securitydomain.name", - HttpInput.getDomainName(request, "sdomainName")); - config.putString("securitydomain.name", - HttpInput.getDomainName(request, "sdomainName")); + config.putString("securitydomain.httpsadminport", + CMS.getAdminPort()); // make sure the subsystem certificate is issued by the security // domain @@ -315,29 +336,25 @@ public class SecurityDomainPanel extends WizardPanelBase { config.putString("preop.cert.subsystem.type", "remote"); config.putString("preop.cert.subsystem.profile", "caInternalAuthSubsystemCert"); - String url = HttpInput.getURL(request, "sdomainURL"); + String admin_url = HttpInput.getURL(request, "sdomainURL"); String hostname = ""; - int port = -1; + int admin_port = -1; - if (url != null) { + if( admin_url != null ) { try { - URL u = new URL(url); + URL admin_u = new URL( admin_url ); - hostname = u.getHost(); - port = u.getPort(); - } catch (MalformedURLException e) { - errorString = "Malformed URL"; - throw new IOException(errorString); + hostname = admin_u.getHost(); + admin_port = admin_u.getPort(); + } catch( MalformedURLException e ) { + errorString = "Malformed SSL Admin HTTPS URL"; + throw new IOException( errorString ); } - - context.put("sdomainURL", url); - config.putString("preop.securitydomain.url", url); - config.putString("preop.securitydomain.host", hostname); - config.putString("securitydomain.host", hostname); - config.putInteger("preop.securitydomain.httpsport", port); - config.putInteger("securitydomain.httpsport", port); - } else { - config.putString("preop.securitydomain.url", ""); + + context.put( "sdomainURL", admin_url ); + config.putString( "securitydomain.host", hostname ); + config.putInteger( "securitydomain.httpsadminport", + admin_port ); } try { @@ -345,8 +362,8 @@ public class SecurityDomainPanel extends WizardPanelBase { } catch (EBaseException e) {} ConfigCertApprovalCallback certApprovalCallback = new ConfigCertApprovalCallback(); - updateCertChain(config, "securitydomain", hostname, port, true, - context, certApprovalCallback); + updateCertChain( config, "securitydomain", hostname, admin_port, + true, context, certApprovalCallback ); } else { CMS.debug("SecurityDomainPanel: invalid choice " + select); errorString = "Invalid choice"; @@ -369,7 +386,7 @@ public class SecurityDomainPanel extends WizardPanelBase { } /** - * If validiate() returns false, this method will be called. + * If validate() returns false, this method will be called. */ public void displayError(HttpServletRequest request, HttpServletResponse response, @@ -381,9 +398,24 @@ public class SecurityDomainPanel extends WizardPanelBase { } try { context.put("machineName", config.getString("machineName")); - context.put("https_port", CMS.getEESSLPort()); - context.put("http_port", CMS.getEENonSSLPort()); + context.put("http_ee_port", CMS.getEENonSSLPort()); + context.put("https_agent_port", CMS.getAgentPort()); + context.put("https_ee_port", CMS.getEESSLPort()); + context.put("https_admin_port", CMS.getAdminPort()); + context.put("sdomainAdminURL", + config.getString("preop.securitydomain.admin_url")); } catch (EBaseException e) {} + + // Information for "existing" Security Domain CAs + String instanceId = "<security_domain_instance_name>"; + String os = System.getProperty( "os.name" ); + if( os.equalsIgnoreCase( "Linux" ) ) { + context.put( "initCommand", "/sbin/service " + instanceId ); + } else { + /* default case: e. g. - ( os.equalsIgnoreCase( "SunOS" ) */ + context.put( "initCommand", "/etc/init.d/" + instanceId ); + } + context.put("title", "Security Domain"); context.put("panel", "admin/console/config/securitydomainpanel.vm"); } |