4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Copyright (c) 2009 Sun Microsystems Inc. All Rights Reserved
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * The contents of this file are subject to the terms
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * of the Common Development and Distribution License
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * (the License). You may not use this file except in
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * compliance with the License.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * You can obtain a copy of the License at
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * See the License for the specific language governing
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * permission and limitations under the License.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * When distributing Covered Code, include this CDDL
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Header Notice in each file and include the License file
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * If applicable, add the following below the CDDL Header,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * with the fields enclosed by brackets [] replaced by
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * your own identifying information:
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * "Portions Copyrighted [year] [name of copyright owner]"
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * $Id: SwapClientConfig.java,v 1.2 2009/12/03 18:57:50 mrudul_uchil Exp $
a4544a5a0e622ef69e38641f87ab1b5685e05911Phill Cunnington * Portions Copyrighted 2015 ForgeRock AS.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Tag swap client properties for server protocol, host, port and deploy uri.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster StringBuffer templateFile = getInputStringBuffer(args[5], false);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster createAMConfigProperties(args[6],templateFile,serverURL,baseDir,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param configFile Absolute path to the AMConfig.properties to be created.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param templateFile Template file for AMConfig.properties
8d3140b524c0e28c0a49dc7c7d481123ef3cfe11Chris Lee * @param serverURL OpenAM server URL to be swapped in the template file
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param baseDir Base directory for Debug and Keystore files, to be swapped in the template file
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param appUser Application user name to be swapped in the template file
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param appPassword Application user password to be swapped in the template file
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param wscProviderName Unique agent profile name to be used for WSC
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster private static void createAMConfigProperties(String configFile,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster StringBuffer templateFile, String serverURL, String baseDir,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String appUser, String appPassword, String wscProviderName)
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster server_protocol = serverURL.substring(0,indexProtocol);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String tempServerURL = serverURL.substring(indexProtocol+3);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster server_host = tempServerURL.substring(0,indexHost);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster tempServerURL = tempServerURL.substring(indexHost+1);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster server_port = tempServerURL.substring(0,indexPort);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster deploy_uri = tempServerURL.substring(indexPort);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster System.out.println("Error : Incorrect Server URL Syntax");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster System.out.println("Error : Incorrect Server URL Syntax");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster System.out.println("Error : Incorrect Server URL Syntax");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster // Due with extra / before deployment URI
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if ((deploy_uri != null) && (deploy_uri.length() > 0)) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster content = content.replaceAll("/@DEPLOY_URI@", deploy_uri);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster content = content.replaceAll("@SERVER_PROTOCOL@", server_protocol);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster content = content.replaceAll("@SERVER_HOST@", server_host);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster content = content.replaceAll("@SERVER_PORT@", server_port);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String newBaseDir = baseDir.trim().replace("\\", "/");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster content = content.replaceAll("@DEBUG_DIR@", newBaseDir + "/debug");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster content = content.replaceAll("@KEYSTORE_LOCATION@", newBaseDir + "/resources");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster content = content.replaceAll("@APPLICATION_USER@", appUser);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster content = content.replaceAll("@ENCODED_APPLICATION_PASSWORD@",
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if((wscProviderName != null) && (wscProviderName.trim().length() != 0)
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster && (!wscProviderName.equals("<@wsc.providername@>"))) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster content = content.replaceAll("com.sun.identity.wss.wsc.providername=",
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster "com.sun.identity.wss.wsc.providername=" + wscProviderName);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Returns input file as StringBuffer.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param filename Name of the file.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param skipCopyright if false, keep copyright notice in the beginning
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * of the input file. if true, remove the copyright notice.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @return StringBuffer
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster private static StringBuffer getInputStringBuffer(String filename,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster while (true) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster // done skipping the copyright in the beginning of the file
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster private static void writeToFile(String file1, String filename)