getServerInfo.jsp revision 7c2b35fb4b3e07fac18cadded895cff744104de6
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith Copyright (c) 2007 Sun Microsystems Inc. All Rights Reserved
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith The contents of this file are subject to the terms
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith of the Common Development and Distribution License
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith (the License). You may not use this file except in
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith compliance with the License.
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith You can obtain a copy of the License at
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith https://opensso.dev.java.net/public/CDDLv1.0.html or
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith See the License for the specific language governing
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith permission and limitations under the License.
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith When distributing Covered Code, include this CDDL
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith Header Notice in each file and include the License file
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith If applicable, add the following below the CDDL Header,
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith with the fields enclosed by brackets [] replaced by
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith your own identifying information:
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith "Portions Copyrighted [year] [name of copyright owner]"
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith $Id: getServerInfo.jsp,v 1.6 2008/09/04 00:34:01 rajeevangal Exp $
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith Portions Copyrighted 2010-2015 ForgeRock AS.
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if ("POST".equals(request.getMethod()) != true) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String username = request.getParameter("IDToken1");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String password = request.getParameter("IDToken2");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if ( username == null && password == null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if ("amadmin".equals(username) == false) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith AuthContext lc = new AuthContext("/");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith lc.login(AuthContext.IndexType.SERVICE, "adminconsoleservice");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith Callback[] callbacks = lc.getRequirements();
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith ArrayList missing = new ArrayList();
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith // loop through the requires setting the needs..
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith for (int i = 0; i < callbacks.length; i++) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (callbacks[i] instanceof NameCallback) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith NameCallback nc = (NameCallback) callbacks[i];
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith } else if (callbacks[i] instanceof PasswordCallback) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith PasswordCallback pc = (PasswordCallback) callbacks[i];
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith missing.add(callbacks[i]);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith // there's missing requirements not filled by this
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith // need add the missing later..
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith // validate the password..
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (lc.getStatus() != AuthContext.Status.SUCCESS) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith SSOTokenManager mgr = SSOTokenManager.getInstance();
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith } catch (SSOException e) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String baseDir = SystemProperties.get(SystemProperties.CONFIG_PATH);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String encKey = SystemProperties.get("am.encryption.pwd");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String defAgentPwd = SystemProperties.get("com.iplanet.am.service.secret");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith BootstrapData bootstrapData = new BootstrapData(baseDir);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith boolean isEmbeddedDS = (new File(baseDir + "/opends")).exists();
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith // Assumption : opends entry is the 1st
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String dsbasedn = (String) bMap.get(BootstrapData.DS_BASE_DN);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String dsport = (String) bMap.get(BootstrapData.DS_PORT);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String dsprotocol = (String) bMap.get(BootstrapData.DS_PROTOCOL);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String dsrelport = (String) bMap.get(BootstrapData.DS_REPLICATIONPORT);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String dshost = (String) bMap.get(BootstrapData.DS_HOST);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String dsmgr = (String) bMap.get(BootstrapData.DS_MGR);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String dspwd = (String) bMap.get(BootstrapData.DS_PWD);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String serverid = WebtopNaming.getLocalServer();
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith // if embedded get replication port status. Two cases :
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith // i) No replication port -> generate a new one
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith // ii) replication port available -> retrieve it
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String replPort = null;
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String replPortAvailable = null;
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith String adminPort = null;
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (isEmbeddedDS) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith replPort = EmbeddedOpenDS.getReplicationPort(dsmgr, JCECrypt.decode(dspwd),
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith "localhost", dsport);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith replPortAvailable = "true";
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (replPort == null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith replPortAvailable = "false";
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith replPort = ""+ AMSetupUtils.getFirstUnusedPort("localhost", 50889, 1000);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith adminPort = EmbeddedOpenDS.getAdminPort(dsmgr, JCECrypt.decode(dspwd),
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith "localhost", dsport);
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (adminPort == null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith adminPort = "4444";
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith // We have collected all the data - return a response
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith StringBuffer buf = new StringBuffer();
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith buf.append(BootstrapData.DS_ISEMBEDDED).append("=").append(isEmbeddedDS).
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append("&");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (dsprotocol != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith buf.append(BootstrapData.DS_PROTOCOL).append("=").
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append(URLEncoder.encode(dsprotocol, "UTF-8")).append("&");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (dshost != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append(URLEncoder.encode(dshost, "UTF-8")).append("&");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (dsport != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith buf.append(BootstrapData.DS_PORT).append("=").append(dsport).
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append("&");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (dsbasedn != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith buf.append(BootstrapData.DS_BASE_DN).append("=").
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append(URLEncoder.encode(dsbasedn, "UTF-8")).append("&");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (replPort != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith buf.append(BootstrapData.DS_REPLICATIONPORT).append("=").
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append(replPort).append("&");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (adminPort != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith buf.append(SetupConstants.DS_EMB_REPL_ADMINPORT2).append("=").
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append(adminPort).append("&");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (replPortAvailable != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith buf.append(BootstrapData.DS_REPLICATIONPORT_AVAILABLE).append("=").
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append(replPortAvailable).append("&");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (dsmgr != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append(URLEncoder.encode(dsmgr, "UTF-8")).append("&");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (dspwd != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append(URLEncoder.encode(dspwd, "UTF-8")).append("&");
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (encKey != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith append(URLEncoder.encode(encKey, "UTF-8"));
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (defAgentPwd != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith buf.append("&ENCLDAPUSERPASSWD=").append(
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith URLEncoder.encode(defAgentPwd, "UTF-8"));
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith if (serverid != null) {
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith buf.append("&existingserverid=").append(
daa301d2a0f17b5c1b04d777de3acf969b9b63d2Luke Smith URLEncoder.encode(serverid, "UTF-8"));