4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster/**
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Copyright (c) 2007 Sun Microsystems Inc. All Rights Reserved
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
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 *
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 * opensso/legal/CDDLv1.0.txt
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * See the License for the specific language governing
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * permission and limitations under the License.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * When distributing Covered Code, include this CDDL
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Header Notice in each file and include the License file
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * at opensso/legal/CDDLv1.0.txt.
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 *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * $Id: SiteAwareInteractionConfig.java,v 1.6 2008/08/06 17:29:25 exu Exp $
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster *
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster */
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterpackage com.sun.identity.liberty.ws.interaction;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.common.SystemConfigurationUtil;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.iplanet.services.naming.WebtopNaming;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.shared.Constants;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.shared.debug.Debug;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport java.net.URL;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport java.util.HashSet;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport java.util.Iterator;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport java.util.Set;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterpublic class SiteAwareInteractionConfig extends InteractionConfig {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster private static Debug debug = Debug.getInstance("libIDWSF");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster public SiteAwareInteractionConfig() {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if (debug.messageEnabled()) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster debug.message("SiteAwareInteractionConfig: constructor called");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster initialize();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster public void initialize() {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster debug.message("SiteAwareInteractionConfig.initialise(): called");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster super.initialize();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String protocol = SystemConfigurationUtil.getProperty(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster Constants.AM_SERVER_PROTOCOL);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String host = SystemConfigurationUtil.getProperty(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster Constants.AM_SERVER_HOST);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String port = SystemConfigurationUtil.getProperty(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster Constants.AM_SERVER_PORT);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String contextPath = SystemConfigurationUtil.getProperty(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster Constants.AM_SERVICES_DEPLOYMENT_DESCRIPTOR);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if (debug.messageEnabled()) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster debug.message("SiteAwareInteractionConfig.initialise():"
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + "server protocol: " + protocol
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + ", server host:" + host
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + ", server port:" + port
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + ", contextPath:" + contextPath);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster try {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String serverId = WebtopNaming.getServerID(protocol, host, port,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster contextPath);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String server = WebtopNaming.getServerFromID(serverId);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster wspRedirectHandler = server + "/"
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + WSP_REDIRECT_HANDLER_SERVLET;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster boolean siteEnabled = WebtopNaming.isSiteEnabled(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster protocol, host, port, contextPath);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if (debug.messageEnabled()) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster debug.message("SiteAwareInteractionConfig.initialise():"
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + "server id:" + serverId
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + ", server:" + server
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + ",siteEnabled:" + siteEnabled);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if (siteEnabled) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String siteId = WebtopNaming.getSiteID(serverId);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster lbWspRedirectHandler = WebtopNaming.getServerFromID(siteId)
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + "/" + WSP_REDIRECT_HANDLER_SERVLET;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster Set siteNodes = WebtopNaming.getSiteNodes(siteId);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster trustedWspRedirectHandlers.clear();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if ((siteNodes !=null) && !siteNodes.isEmpty()) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster for (Iterator iter = siteNodes.iterator();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster iter.hasNext();) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster serverId = (String)iter.next();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster trustedWspRedirectHandlers.put(serverId,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster WebtopNaming.getServerFromID(serverId)
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + "/" + WSP_REDIRECT_HANDLER_SERVLET);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster } catch (Exception e) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster debug.error("SiteAwareInteractionConfig.initialise():"
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + "error while initializing", e);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if (debug.messageEnabled()) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster debug.message("SiteAwareInteractionConfig.initialise():"
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + "wspRedirectHandler:" + wspRedirectHandler
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + "lbWspRedirectHandler:" + lbWspRedirectHandler
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + "trustedWspRedirectHandlers:"
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + trustedWspRedirectHandlers);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster }
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster}