a4544a5a0e622ef69e38641f87ab1b5685e05911Phill Cunnington/*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Copyright (c) 2009 Sun Microsystems Inc. All Rights Reserved
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * The contents of this file are subject to the terms
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * of the Common Development and Distribution License
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * (the License). You may not use this file except in
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * compliance with the License.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * You can obtain a copy of the License at
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * opensso/legal/CDDLv1.0.txt
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * See the License for the specific language governing
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * permission and limitations under the License.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * When distributing Covered Code, include this CDDL
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Header Notice in each file and include the License file
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * at opensso/legal/CDDLv1.0.txt.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * If applicable, add the following below the CDDL Header,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * with the fields enclosed by brackets [] replaced by
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * your own identifying information:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * $Id: Agent.java,v 1.9 2009/11/10 01:33:22 bigfatrat Exp $
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
a4544a5a0e622ef69e38641f87ab1b5685e05911Phill Cunnington * Portions Copyrighted 2011-2015 ForgeRock AS.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterpackage com.sun.identity.monitoring;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport com.iplanet.am.util.SystemProperties;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport com.iplanet.services.ldap.DSConfigMgr;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport com.iplanet.services.ldap.Server;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport com.iplanet.services.ldap.ServerGroup;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport com.sun.identity.shared.Constants;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport com.sun.identity.shared.debug.Debug;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport com.sun.identity.sm.DNMapper;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport com.sun.jdmk.comm.AuthInfo;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport com.sun.jdmk.comm.HtmlAdaptorServer;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport com.sun.management.comm.SnmpAdaptorServer;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport com.sun.management.snmp.SnmpStatusException;
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenkimport java.io.File;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.io.IOException;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.net.MalformedURLException;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport java.rmi.registry.LocateRegistry;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport java.rmi.registry.Registry;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport java.rmi.server.UnicastRemoteObject;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.text.SimpleDateFormat;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.util.Collection;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.util.Date;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.util.HashMap;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.util.Hashtable;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.util.Iterator;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.util.List;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.util.Map;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.util.Properties;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.util.Set;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.InstanceAlreadyExistsException;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.InstanceNotFoundException;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.JMException;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.JMRuntimeException;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.MBeanRegistrationException;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.MBeanServer;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.MBeanServerFactory;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.MalformedObjectNameException;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.NotCompliantMBeanException;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.ObjectName;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport javax.management.RuntimeOperationsException;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport javax.management.remote.JMXConnectorServer;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport javax.management.remote.JMXConnectorServerFactory;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport javax.management.remote.JMXServiceURL;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Lunaimport org.forgerock.openam.monitoring.cts.CtsConnectionFailureRate;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Lunaimport org.forgerock.openam.monitoring.cts.CtsConnectionSuccessRate;
dcaf67650b5323dbf22121c7bf12be9be903f8c5David Lunaimport org.forgerock.openam.monitoring.cts.CtsMonitoring;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport org.forgerock.openam.monitoring.cts.FORGEROCK_OPENAM_CTS_MIB;
88f608b8855a99b19653376900fc5f234b7e771cDavid Lunaimport org.forgerock.openam.monitoring.cts.FORGEROCK_OPENAM_CTS_MIBImpl;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Lunaimport org.forgerock.openam.monitoring.policy.FORGEROCK_OPENAM_POLICY_MIB;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Lunaimport org.forgerock.openam.monitoring.policy.FORGEROCK_OPENAM_POLICY_MIBImpl;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Lunaimport org.forgerock.openam.monitoring.policy.PolicyEvaluation;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Lunaimport org.forgerock.openam.monitoring.policy.SelfEvaluation;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Lunaimport org.forgerock.openam.monitoring.policy.SelfTiming;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Lunaimport org.forgerock.openam.monitoring.policy.SubtreeEvaluation;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Lunaimport org.forgerock.openam.monitoring.policy.SubtreeTiming;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Lunaimport org.forgerock.openam.monitoring.session.CtsSessions;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Lunaimport org.forgerock.openam.monitoring.session.FORGEROCK_OPENAM_SESSION_MIB;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Lunaimport org.forgerock.openam.monitoring.session.FORGEROCK_OPENAM_SESSION_MIBImpl;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Lunaimport org.forgerock.openam.monitoring.session.InternalSessions;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Lunaimport org.forgerock.openam.monitoring.session.RemoteSessions;
87d68743726585ee101ba2e7be2cf06cd34ebb80Neil Maddenimport org.forgerock.openam.monitoring.session.StatelessSessions;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * The Agent class provides a simple example on how to use the SNMP
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * protocol adaptor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * A subset of MIB II (RFC1213) is implemented. The MIB is loaded and
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * initialized. As such you can now see the MIB using your favorite
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * SNMP manager, or you can use a web browser and see the MIB through
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the HTML adaptor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * When calling the program, you can specify:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * - nb_traps: number of traps the SNMP agent will send.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * If not specified, the agent will send traps continuously.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * In this example, the SNMP adaptor is started on port 8085, and the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * traps are sent to the port 8086, i.e. non standard ports for SNMP.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * As such you do not need to be root to start the agent.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterpublic class Agent {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static SnmpAdaptorServer snmpAdaptor = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static HtmlAdaptorServer htmlAdaptor = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Debug debug;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * This variable defines the number of traps this agent has to send.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * If not specified in the command line arguments, the traps will be
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * sent continuously.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static int nbTraps = -1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static boolean agentStarted;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static MBeanServer server;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static ObjectName htmlObjName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static ObjectName snmpObjName;
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna private static ObjectName sunMibObjName;
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna private static ObjectName forgerockCtsMibObjName;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna private static ObjectName forgerockPolicyMibObjName;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna private static ObjectName forgerockSessionMibObjName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static int monHtmlPort;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static int monSnmpPort;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static int monRmiPort;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna private static int policyWindow;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna private static int sessionWindow;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static String monAuthFilePath;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static String ssoProtocol;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static String ssoName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static String ssoPort;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static String ssoURI;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static String ssoSiteID;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static String ssoServerID;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static boolean dsIsEmbedded;
1d407e39b7d8f68d9a2b1e178f35fab037d9835aRobert Wapshott private static Map<String, String> siteIdTable;
1d407e39b7d8f68d9a2b1e178f35fab037d9835aRobert Wapshott private static Map<String, String> serverIDTable;
1d407e39b7d8f68d9a2b1e178f35fab037d9835aRobert Wapshott private static Map<String, String> namingTable;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Map<String, String> siteToURL;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Map<String, String> URLToSite;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static String startDate;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static JMXConnectorServer cs;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna //static mib references
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna static SUN_OPENSSO_SERVER_MIBImpl sunMib;
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna static FORGEROCK_OPENAM_CTS_MIBImpl forgerockCtsMib;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna static FORGEROCK_OPENAM_POLICY_MIBImpl forgerockPolicyMib;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna static FORGEROCK_OPENAM_SESSION_MIBImpl forgerockSessionMib;
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static SSOServerInfo agentSvrInfo;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Map<String, Integer> realm2Index = new HashMap<String, Integer>(); // realm name to index map
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Map<Integer, String> index2Realm = new HashMap<Integer, String>(); // index to realm name map
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Map<String, String> realm2DN = new HashMap<String, String>(); // realm name to DN map
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Map<String, String> DN2Realm = new HashMap(); // DN to realm name map
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Map<String, SsoServerAuthModulesEntryImpl> realmAuthInst =
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster new HashMap<String, SsoServerAuthModulesEntryImpl>(); // realm|authname entries
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Map<String, SsoServerSAML2IDPEntryImpl> realmSAML2IDPs =
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster new HashMap<String, SsoServerSAML2IDPEntryImpl>(); // realm|idp entries
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Map<String, SsoServerSAML2SPEntryImpl> realmSAML2SPs =
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster new HashMap<String, SsoServerSAML2SPEntryImpl>(); // realm|sp entries
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static boolean monitoringEnabled;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static boolean monHtmlPortEnabled;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static boolean monSnmpPortEnabled;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static boolean monRmiPortEnabled;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static boolean isSessFOEnabled;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static SimpleDateFormat sdf =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static final int MON_CONFIG_DISABLED = -1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static final int MON_MBEANSRVR_PROBLEM = -2;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static final int MON_RMICONNECTOR_PROBLEM = -3;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static final int MON_CREATEMIB_PROBLEM = -4;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static final int MON_READATTRS_PROBLEM = -5;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster static final String NotAvail = "NotAvailable";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster static final String None = "NONE";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static Registry registry = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster static {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug = Debug.getInstance("amMonitoring");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Agent constructor
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private Agent() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static void stopRMI() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (monitoringEnabled && monRmiPortEnabled && (cs != null)) {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna if ((server != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna if (sunMibObjName != null) {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna server.unregisterMBean(sunMibObjName);
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna }
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna if (forgerockCtsMibObjName != null) {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna server.unregisterMBean(forgerockCtsMibObjName);
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna }
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna if (forgerockPolicyMibObjName != null) {
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna server.unregisterMBean(forgerockPolicyMibObjName);
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna }
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna if (forgerockSessionMibObjName != null) {
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna server.unregisterMBean(forgerockSessionMibObjName);
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (InstanceNotFoundException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Agent.stopRMI: error unregistering MBean:" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (MBeanRegistrationException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Agent.stopRMI: error unregistering MBean:" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cs.stop();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (registry != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster UnicastRemoteObject.unexportObject(registry, true);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning("Agent.stopRMI:rmi adaptor stopped.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error("Agent.stopRMI: error stopping monitoring " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " agent RMI server: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning("Agent.stopRMI: cs is null, or " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "monitoring or RMI port not enabled.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (monitoringEnabled && monSnmpPortEnabled && (snmpAdaptor != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpAdaptor.stop();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning("Agent.stopRMI:snmp adaptor stopped.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (monitoringEnabled && monHtmlPortEnabled && (htmlAdaptor != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster htmlAdaptor.stop();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning("Agent.stopRMI:html adaptor stopped.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Receives Site and Server configuration information from
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * WebtopNaming. Information is saved and the corresponding
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Monitoring MBeans are created after the Agent ports are started.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static void siteAndServerInfo(SSOServerInfo svrInfo) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster agentSvrInfo = svrInfo;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * This method starts up the monitoring agent. Returns either
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * zero (0) if intialization has completed successfully, or one (1)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * if not.
2fe1e6ab330f5f88e97684012ff29cde7e61c9c4Dirk Hogan * @param srvInfo Server information
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static void startMonitoringAgent(SSOServerInfo svrInfo) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster agentSvrInfo = svrInfo;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssoServerID = svrInfo.serverID;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssoSiteID = svrInfo.siteID;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssoProtocol = svrInfo.serverProtocol;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssoName = svrInfo.serverName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssoURI = svrInfo.serverURI;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssoPort = svrInfo.serverPort;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster dsIsEmbedded = svrInfo.isEmbeddedDS;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster siteIdTable = svrInfo.siteIDTable;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster serverIDTable = svrInfo.serverIDTable;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster namingTable = svrInfo.namingTable;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster startDate = svrInfo.startDate;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String classMethod = "Agent.startMonitoringAgent:";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * ServerIDTable has form:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <proto>://<host>:<port>/<uri>=nn,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * while NamingTable has form
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * nn=<proto>://<host>:<port>/<uri>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster StringBuilder sb =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new StringBuilder("Agent.startMonitoringAgent:ServerInfo:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" ServerID = ").append(ssoServerID).append("\n").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(" SiteID = ").append(ssoSiteID).append("\n").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(" ServerProtocol = ").append(ssoProtocol).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append("\n").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(" ServerName = ").append(ssoName).append("\n").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(" ServerURI = ").append(ssoURI).append("\n").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(" IsEmbeddedDS = ").append(dsIsEmbedded).append("\n").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * can get this server's URL from the naming table, using
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * its serverID. get the site's URL with siteID
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String svrURL = namingTable.get(ssoServerID);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" Naming table entry for serverID ").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(ssoServerID).append(" is ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((svrURL != null) && (svrURL.length() > 0)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(svrURL).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("NULL!\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster svrURL = namingTable.get(ssoSiteID);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" Naming table entry for siteID ").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(ssoSiteID).append(" is ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((svrURL != null) && (svrURL.length() > 0)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(svrURL).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("NULL!\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" start date/time = ").append(startDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * if there's a site configured, then siteIdTable will contain
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the serverIDs
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb = new StringBuilder(classMethod);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((siteIdTable != null) && !siteIdTable.isEmpty()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("Site ID Table:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, String> entry : siteIdTable.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String siteid = entry.getKey();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String svrid = siteIdTable.get(siteid);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String sURL = namingTable.get(siteid);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" ").append(siteid).append('(').
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(sURL).append(')').append(" = ").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(svrid).append('\n');
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("siteIdTable is null or empty");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * print out the serverIDTable
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb = new StringBuilder(classMethod);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((serverIDTable != null) && !serverIDTable.isEmpty()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("Server ID Table:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, String> entry : serverIDTable.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" server ").append(entry.getKey()).append(" ==> svrid ").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(entry.getValue()).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("ServerIdTable is null or empty");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * print out the namingTable
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb = new StringBuilder(classMethod);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((namingTable != null) && !namingTable.isEmpty()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Set ks = namingTable.keySet();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("Naming Table:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Iterator it = ks.iterator(); it.hasNext(); ) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String svr = (String)it.next();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String svrid = (String)namingTable.get(svr);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" key ").append(svr).append(" ==> value ").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(svrid).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("NamingTable is null or empty");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * This method starts up the monitoring agent from the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * common/ConfigMonitoring module (load-on-startup or at the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * end of AMSetupServlet/configuration). Since web-app startup
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * is sensitive to exceptions in load-on-startup stuff, this has
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * quite a few try/catch blocks.
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * If any of HTML, SNMP, or RMI adaptors has a problem getting created
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * or started, attempts to create/start the others will be made; If
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * at least one adaptor is started, monitoring will be "active"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * (Agent.isRunning() will return true).
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8d3140b524c0e28c0a49dc7c7d481123ef3cfe11Chris Lee * @param monConfig SSOServerMonConfig structure of OpenAM configuration
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @return 0 (zero) if at least one of HTML/SNMP/RMI adaptors started up;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * MON_CONFIG_DISABLED:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * if monitoring configured as disabled
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * MON_MBEANSRVR_PROBLEM:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * if MBeanServer problem encountered
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * MON_RMICONNECTOR_PROBLEM:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * if RMI connector problem
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * (MIB not registered with MBeanServer)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * MON_CREATEMIB_PROBLEM:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * if problem creating/registering MIB
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static int startAgent (SSOServerMonConfig monConfig) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monHtmlPort = monConfig.htmlPort;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monSnmpPort = monConfig.snmpPort;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monRmiPort = monConfig.rmiPort;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monitoringEnabled = monConfig.monitoringEnabled;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monHtmlPortEnabled = monConfig.monHtmlPortEnabled;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monSnmpPortEnabled = monConfig.monSnmpPortEnabled;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monRmiPortEnabled = monConfig.monRmiPortEnabled;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monAuthFilePath = monConfig.monAuthFilePath;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna policyWindow = monConfig.policyWindow;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna sessionWindow = monConfig.sessionWindow;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String classMethod = "Agent.startAgent:";
8d3140b524c0e28c0a49dc7c7d481123ef3cfe11Chris Lee // OpenAM server port comes from WebtopNaming.siteAndServerInfo
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String serverPort = agentSvrInfo.serverPort;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk // Check for Legacy MonAuthFile.
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk if ( (monAuthFilePath != null) && (monAuthFilePath.endsWith("opensso_mon_auth")) )
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk {
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk // Perform a rename of the old filename to the latest naming.
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk File monAuthFile = new File(monAuthFilePath);
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk File newMonAuthFile = new File(monAuthFile.getParentFile()+"/"+"openam_mon_auth");
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk if (monAuthFile.renameTo(newMonAuthFile)) {
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk monAuthFilePath = newMonAuthFile.getAbsolutePath();
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk }
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk }
636f2dcf39bd5b102f4204903069609d12a7dcd6jeff.schenk
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * there are a lot of exception checks in this method, as
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * it's invoked from a load-on-startup servlet. if it
8d3140b524c0e28c0a49dc7c7d481123ef3cfe11Chris Lee * chokes in here, OpenAM won't start up.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + "entry:\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " htmlPort = " + monHtmlPort + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " authFilePath = " + monAuthFilePath + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " snmpPort = " + monSnmpPort + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " rmiPort = " + monRmiPort + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " monEna = " + monitoringEnabled + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " htmlEna = " + monHtmlPortEnabled + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " snmpEna = " + monSnmpPortEnabled + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " rmiEna = " + monRmiPortEnabled + "\n" +
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna " policyWindow = " + policyWindow + "\n" +
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna " sessionWindow = " + sessionWindow + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " serverPort = " + serverPort + "\n"
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna );
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (!monitoringEnabled) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod + "Monitoring configured as disabled.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_CONFIG_DISABLED;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * verify that the HTML, SNMP and RMI ports aren't the same as
8d3140b524c0e28c0a49dc7c7d481123ef3cfe11Chris Lee * the OpenAM server port. if HTML or SNMP conflict with it,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * then they'll be disabled (warning message). if the RMI port
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * conflicts, then all of monitoring is disabled. there might
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * be other ports that should be checked.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int sport = Integer.parseInt(serverPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (monRmiPort == sport) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "RMI port conflicts with OpenSSO server port (" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna sport + "); Monitoring disabled.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_RMICONNECTOR_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (monHtmlPort == sport) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monHtmlPortEnabled = false;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "HTML port conflicts with OpenSSO server port (" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna sport + "); Monitoring HTML port disabled.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (monSnmpPort == sport) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monSnmpPortEnabled = false;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SNMP port conflicts with OpenSSO server port (" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna sport + "); Monitoring SNMP port disabled.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (NumberFormatException nfe) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * odd. if serverPort's not a valid int, then there'll be
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * other problems
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna debug.error(classMethod + "Server port (" + serverPort +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " is invalid: " + nfe.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + "config:\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " monitoring Enabled = " + monitoringEnabled + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " HTML Port = " + monHtmlPort +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ", enabled = " + monHtmlPortEnabled + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " SNMP Port = " + monSnmpPort +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ", enabled = " + monSnmpPortEnabled + "\n" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " RMI Port = " + monRmiPort +
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna ", enabled = " + monRmiPortEnabled + "\n" +
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna " SessionWindow size = " + sessionWindow + "\n" +
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna " PolicyWindow size = " + policyWindow + "\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8d3140b524c0e28c0a49dc7c7d481123ef3cfe11Chris Lee * if OpenAM's deployed on a container that has MBeanServer(s),
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * will the findMBeanServer(null) "find" those? if so,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * is using the first one the right thing to do?
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster List<MBeanServer> servers = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster servers = MBeanServerFactory.findMBeanServer(null);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SecurityException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * if can't find one, try creating one below, although
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * if there's no findMBeanServer permission, it's unlikely
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * that there's a createMBeanServer permission...
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "findMBeanServer permission error: " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + "MBeanServer list is not empty: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ((servers != null) && !servers.isEmpty()));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((servers != null) && !servers.isEmpty()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server = servers.get(0);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server = MBeanServerFactory.createMBeanServer();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SecurityException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "createMBeanServer permission error: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_MBEANSRVR_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMRuntimeException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "createMBeanServer JMRuntime error: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_MBEANSRVR_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (ClassCastException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "createMBeanServer ClassCast error: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_MBEANSRVR_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (server == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod + "no MBeanServer");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_MBEANSRVR_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String domain = server.getDefaultDomain(); // throws no exception
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Create the MIB II (RFC 1213), add to the MBean server.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna sunMibObjName =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new ObjectName("snmp:class=SUN_OPENSSO_SERVER_MIB");
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna forgerockCtsMibObjName =
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna new ObjectName("snmp:class=FORGEROCK_OPENAM_CTS_MIB");
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna forgerockPolicyMibObjName =
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna new ObjectName("snmp:class=FORGEROCK_OPENAM_POLICY_MIB");
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna forgerockSessionMibObjName =
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna new ObjectName("snmp:class=FORGEROCK_OPENAM_SESSION_MIB");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Adding SUN_OPENSSO_SERVER_MIB to MBean server " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "with name '" + sunMibObjName + "'");
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna debug.message(classMethod +
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna "Adding FORGEROCK_OPENAM_CTS_MIB to MBean server " +
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna "with name '" + forgerockCtsMibObjName + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (MalformedObjectNameException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from ObjectName
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error getting ObjectName for the MIB: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_CREATEMIB_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Create an instance of the customized MIB
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna sunMib = new SUN_OPENSSO_SERVER_MIBImpl();
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna forgerockCtsMib = new FORGEROCK_OPENAM_CTS_MIBImpl();
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna forgerockPolicyMib = new FORGEROCK_OPENAM_POLICY_MIBImpl();
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna forgerockSessionMib = new FORGEROCK_OPENAM_SESSION_MIBImpl();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (RuntimeException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error (classMethod + "Runtime error instantiating MIB", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_CREATEMIB_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error (classMethod + "Error instantiating MIB", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_CREATEMIB_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna server.registerMBean(sunMib, sunMibObjName);
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna server.registerMBean(forgerockCtsMib, forgerockCtsMibObjName);
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna server.registerMBean(forgerockPolicyMib, forgerockPolicyMibObjName);
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna server.registerMBean(forgerockSessionMib, forgerockSessionMibObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (RuntimeOperationsException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from registerMBean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Null parameter or no object name for MIB specified: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_CREATEMIB_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (InstanceAlreadyExistsException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from registerMBean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error registering MIB MBean: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // probably can just continue
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (MBeanRegistrationException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from registerMBean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error registering MIB MBean: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_CREATEMIB_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (NotCompliantMBeanException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from registerMBean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error registering MIB MBean: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_CREATEMIB_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * now that we have the MBeanServer, see if the HTML,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * SNMP and RMI adaptors specified will start up
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster boolean monHTMLStarted = false;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster boolean monSNMPStarted = false;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster boolean monRMIStarted = false;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // HTML port adaptor
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (monHtmlPortEnabled) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Create and start the HTML adaptor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster htmlObjName = new ObjectName(domain +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ":class=HtmlAdaptorServer,protocol=html,port=" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna monHtmlPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Adding HTML adaptor to MBean server with name '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna htmlObjName + "'\n " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "HTML adaptor is bound on TCP port " + monHtmlPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, String> users = MonitoringUtil.getMonAuthList(monAuthFilePath);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (users != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster AuthInfo authInfo[] = new AuthInfo[users.size()];
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int i = 0;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, String> entry : users.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster authInfo[i] = new AuthInfo(entry.getKey(), entry.getValue());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster i++;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster htmlAdaptor = new HtmlAdaptorServer(monHtmlPort, authInfo);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "HTML monitoring interface disabled; no " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "authentication file found");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster htmlAdaptor = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (htmlAdaptor == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod + "HTTP port " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna monHtmlPort + " unavailable or invalid. " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Monitoring HTML adaptor not started.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(htmlAdaptor, htmlObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster htmlAdaptor.start(); // throws no exception
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monHTMLStarted = true;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (MalformedObjectNameException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from ObjectName
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error getting ObjectName for HTML adaptor: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (NullPointerException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from ObjectName
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster "NPE getting ObjectName for HTML adaptor", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "NPE getting ObjectName for HTML adaptor: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (InstanceAlreadyExistsException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from registerMBean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error registering HTML adaptor MBean: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (MBeanRegistrationException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from registerMBean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error registering HTML adaptor MBean: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (NotCompliantMBeanException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from registerMBean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error registering HTML adaptor MBean: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Monitoring HTML port not enabled in configuration.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // SNMP port adaptor
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (monSnmpPortEnabled) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // SNMP specific code:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Create and start the SNMP adaptor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Specify the port to use in the constructor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * The standard port for SNMP is 161.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna snmpObjName = new ObjectName(domain +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ":class=SnmpAdaptorServer,protocol=snmp,port=" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna monSnmpPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Adding SNMP adaptor to MBean server with name '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna snmpObjName + "'\n " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SNMP Adaptor is bound on UDP port " + monSnmpPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpAdaptor = new SnmpAdaptorServer(monSnmpPort); // no exc
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (snmpAdaptor == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Unable to get SNMP adaptor.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(snmpAdaptor, snmpObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpAdaptor.start(); // throws no exception
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Send a coldStart SNMP Trap.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Use port = monSnmpPort+1.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Sending a coldStart SNMP trap to each " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "destination defined in the ACL file...");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpAdaptor.setTrapPort(new Integer(monSnmpPort+1));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpAdaptor.snmpV1Trap(0, 0, null);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + "Done sending coldStart.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Bind the SNMP adaptor to the MIB in order to make the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * MIB accessible through the SNMP protocol adaptor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * If this step is not performed, the MIB will still live
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * in the Java DMK agent:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * its objects will be addressable through HTML but not
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * SNMP.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna sunMib.setSnmpAdaptor(snmpAdaptor); // throws no exception
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna forgerockCtsMib.setSnmpAdaptor(snmpAdaptor);
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna forgerockPolicyMib.setSnmpAdaptor(snmpAdaptor);
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna forgerockSessionMib.setSnmpAdaptor(snmpAdaptor);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monSNMPStarted = true;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error while setting up SNMP adaptor " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ex instanceof IOException || ex instanceof SnmpStatusException) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna // should be from the snmpV1Trap call, which
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna //*shouldn't* affect the rest of snmp operations...
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monSNMPStarted = true;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Monitoring SNMP port not enabled.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // RMI port adaptor
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (monRmiPortEnabled) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Create an RMI connector and start it
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster registry = LocateRegistry.createRegistry(monRmiPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster JMXServiceURL url = new JMXServiceURL(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "service:jmx:rmi:///jndi/rmi://localhost:" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna monRmiPort + "/server");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cs = JMXConnectorServerFactory.newJMXConnectorServer(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna url, null, server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cs.start();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monRMIStarted = true;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// * Create a LinkTrapGenerator.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// * Specify the ifIndex to use in the object name.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// String trapGeneratorClass = "LinkTrapGenerator";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// int ifIndex = 1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// trapGeneratorObjName = new ObjectName("trapGenerator" +
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// ":class=LinkTrapGenerator,ifIndex=" + ifIndex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// debug.message(classMethod +
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// "Adding LinkTrapGenerator to MBean server " +
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// "with name '" +
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// trapGeneratorObjName + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster//
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// LinkTrapGenerator trapGenerator =
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// new LinkTrapGenerator(nbTraps);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster// server.registerMBean(trapGenerator, trapGeneratorObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster//
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (MalformedURLException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * from JMXServiceURL or
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * JMXConnectorServerFactory.JMXConnectorServer
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error getting JMXServiceURL or JMXConnectorServer " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "for RMI adaptor: " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (NullPointerException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * from JMXServiceURL or
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * JMXConnectorServerFactory.JMXConnectorServer
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error getting JMXServiceURL or JMXConnectorServer " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "for RMI adaptor: " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (IOException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * from JMXConnectorServerFactory.JMXConnectorServer or
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * JMXConnectorServer.start
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error getting JMXConnectorServer for, or starting " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "RMI adaptor: " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (IllegalStateException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // from JMXConnectorServer.start
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.warningEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Illegal State Error from JMXConnectorServer for " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "RMI adaptor: " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * compiler says that JMXProviderException and
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * NullPointerException already caught
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error starting RMI: executing rmiregistry " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna monRmiPort + ".", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod + "Monitoring RMI port not enabled.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the HTML and SNMP adaptors may or may not be started,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * but if the RMI connector had a problem, monitoring is
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * non-functional, as the opensso MIB didn't get registered.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (!monRMIStarted && !monSNMPStarted && !monHTMLStarted) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.warning(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "No Monitoring interfaces started; monitoring disabled.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return MON_RMICONNECTOR_PROBLEM;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster agentStarted = true; // if all/enough has gone well
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster startMonitoringAgent(agentSvrInfo);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return 0;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return whether agent is "running" or not
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Monitoring implementations should not call this method directly, but
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * instead, they should call {@link MonitoringUtil#isRunning()}.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster protected static boolean isRunning() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentStarted;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna /**
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna * Return the size of the policy window to configure.
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna *
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna * @return size of the number of policy samples to use as our history.
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna */
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna protected static int getPolicyWindowSize() {
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna return policyWindow;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna }
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna /**
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna * Return the size of the session window to configure.
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna *
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna * @return size of the number of session samples to use as our history.
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna */
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna protected static int getSessionWindowSize() {
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna return sessionWindow;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna }
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the authentication service mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerAuthSvcImpl getAuthSvcMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getAuthSvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerConnPoolSvcImpl getConnPoolSvcMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getConnPoolGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the session service mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerSessSvcImpl getSessSvcMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getSessSvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the logging service mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerLoggingSvcImpl getLoggingSvcMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getLoggingSvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the policy service mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerPolicySvcImpl getPolicySvcMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getPolicySvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the IdRepo service mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerIdRepoSvcImpl getIdrepoSvcMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getIdrepoSvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the service service mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerSvcMgmtSvcImpl getSmSvcMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getSmSvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the SAML1 service mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerSAML1SvcImpl getSaml1SvcMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getSaml1SvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the SAML2 service mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerSAML2SvcImpl getSaml2SvcMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getSaml2SvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the IDFF service mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerIDFFSvcImpl getIdffSvcMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getIdffSvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the Topology mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerTopologyImpl getTopologyMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getTopologyGroup();
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna }
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna public static SubtreeEvaluation getSubtreeEvaluationMBean() {
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna return forgerockPolicyMib == null ? null : forgerockPolicyMib.getSubtreeEvaluation();
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna }
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna public static SubtreeTiming getSubtreeTimingMBean() {
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna return forgerockPolicyMib == null ? null : forgerockPolicyMib.getSubtreeTiming();
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna }
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna public static SelfEvaluation getSelfEvaluationMBean() {
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna return forgerockPolicyMib == null ? null : forgerockPolicyMib.getSelfEvaluation();
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna }
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna public static PolicyEvaluation getPrivilegeEvaluationMBean() {
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna return forgerockPolicyMib == null ? null : forgerockPolicyMib.getPolicyEvaluation();
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna }
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna public static SelfTiming getSelfTimingMBean() {
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna return forgerockPolicyMib == null ? null : forgerockPolicyMib.getSelfTiming();
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna }
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna public static InternalSessions getInternalSessionsMBean() {
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna return forgerockSessionMib == null ? null : forgerockSessionMib.getInternalSessions();
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna }
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna public static CtsSessions getCtsSessionsMBean() {
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna return forgerockSessionMib == null ? null : forgerockSessionMib.getCtsSessions();
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna }
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna public static RemoteSessions getRemoteSessionsMBean() {
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna return forgerockSessionMib == null ? null : forgerockSessionMib.getRemoteSessions();
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna }
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna
87d68743726585ee101ba2e7be2cf06cd34ebb80Neil Madden public static StatelessSessions getStatelessSessionsMBean() {
87d68743726585ee101ba2e7be2cf06cd34ebb80Neil Madden return forgerockSessionMib == null ? null : forgerockSessionMib.getStatelessSessions();
87d68743726585ee101ba2e7be2cf06cd34ebb80Neil Madden }
87d68743726585ee101ba2e7be2cf06cd34ebb80Neil Madden
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna /**
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna * Return the pointer to the CTSMonitor mbean
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna */
dcaf67650b5323dbf22121c7bf12be9be903f8c5David Luna public static CtsMonitoring getCtsMonitoringMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return forgerockCtsMib == null ? null : forgerockCtsMib.getCtsMonitoringGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna /**
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna * Return the pointer to the CtsConnectionFailureRate mbean
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna */
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna public static CtsConnectionFailureRate getCtsConnectionFailureRateMBean() {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna return forgerockCtsMib == null ? null : forgerockCtsMib.getCtsConnectionFailureRate();
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna /**
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna * Return the pointer to the CtsConnectionFailureRate mbean
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna */
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna public static CtsConnectionSuccessRate getCtsConnectionSuccessRateMBean() {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna return forgerockCtsMib == null ? null : forgerockCtsMib.getCtsConnectionSuccessRate();
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the Server Instance mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerInstanceImpl getSvrInstanceMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getSvrInstanceGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the Fed COTs mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerFedCOTsImpl getFedCOTsMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getFedCotsGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the Federation Entities mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerFedEntitiesImpl getFedEntsMBean() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getFedEntitiesGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return the pointer to the Entitlements Service mbean
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerEntitlementSvcImpl getEntitlementsGroup() {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna return sunMib == null ? null : sunMib.getEntitlementsGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static String getSsoProtocol() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (agentSvrInfo != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentSvrInfo.serverProtocol;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static String getSsoName() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (agentSvrInfo != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentSvrInfo.serverName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static String getSsoPort() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (agentSvrInfo != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentSvrInfo.serverPort;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static String getSsoURI() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (agentSvrInfo != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentSvrInfo.serverURI;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static String getSsoSvrID() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (agentSvrInfo != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentSvrInfo.serverID;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
1d407e39b7d8f68d9a2b1e178f35fab037d9835aRobert Wapshott public static Map<String, String> getSiteIdTable() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (agentSvrInfo != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentSvrInfo.siteIDTable;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
1d407e39b7d8f68d9a2b1e178f35fab037d9835aRobert Wapshott public static Map<String, String> getServerIdTable() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (agentSvrInfo != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentSvrInfo.serverIDTable;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
1d407e39b7d8f68d9a2b1e178f35fab037d9835aRobert Wapshott public static Map<String, String> getNamingTable() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (agentSvrInfo != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentSvrInfo.namingTable;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static Map<String, String> getSiteToURLTable() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return siteToURL;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static Map<String, String> getURLToSiteTable() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return URLToSite;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static boolean getDsIsEmbedded() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return dsIsEmbedded;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static String getStartDate() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return startDate;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static String getSiteId() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (agentSvrInfo != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentSvrInfo.siteID;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * receive Set of site names
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @param sNames site name -> primary URL
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @param urlSites is opposite... primary URL -> site name
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static void siteNames (Map<String, String> sNames, Map<String, String> urlSites) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String classMethod = "Agent.siteNames:";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sNames.isEmpty()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + "no sites");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Date startDate = new Date();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster siteToURL = sNames;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster URLToSite = urlSites;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster StringBuilder sb = new StringBuilder("Site Names and URLs:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, String> entry : sNames.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" siteName = ").append(entry.getKey()).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(", primary URL = ").append(entry.getValue()).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * with the urlSites map (url => sitename), can do the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * SsoServerSitesEntryImpl entries
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * where the key==value in siteIdTable is a site
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * where the key!=value, then do the sitemap entries
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int i = 1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, String> entry : siteIdTable.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String svrId = entry.getKey();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String siteId = entry.getValue();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String svrURL = namingTable.get(siteId);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String siteName = urlSites.get(svrURL);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String escSiteName = getEscapedString(siteName);
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerTopologyImpl tg = sunMib.getTopologyGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (siteId.equals(svrId)) { // is a site
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerSitesEntryImpl ssse = new SsoServerSitesEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Integer sid = Integer.valueOf(0);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sid = Integer.valueOf(siteId);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (NumberFormatException nfe) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "invalid siteid (" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna siteId + "): " + nfe.getMessage(), nfe);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssse.SiteId = sid;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssse.SiteName = escSiteName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + "doing siteName " + siteName +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ", svrURL = " + svrURL);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster final ObjectName stName =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssse.createSsoServerSitesEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (stName == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for siteName '" + siteName +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerSitesTable stTbl =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna tg.accessSsoServerSitesTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster stTbl.addEntry(ssse, stName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((server != null) && (stName != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(ssse, stName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + siteId, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else { // is a server
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerSiteMapEntryImpl ssse =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerSiteMapEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssse.MapServerURL = namingTable.get(svrId);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssse.MapSiteName = escSiteName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssse.MapId = siteId;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssse.SiteMapId = Integer.valueOf(svrId);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (NumberFormatException nfe) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "invalid serverID (" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna svrId + "): " + nfe.getMessage(), nfe);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssse.SiteMapIndex = new Integer(i++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster final ObjectName smName =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssse.createSsoServerSiteMapEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (smName == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for server siteName '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna siteName + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "doing servermap entry; sitemapid = " + svrId +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ", mapid = " + siteId + ", siteName = " + siteName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerSiteMapTable stTbl =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna tg.accessSsoServerSiteMapTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster stTbl.addEntry(ssse, smName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((server != null) && (smName != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(ssse, smName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + siteId + "/" + svrId, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Date stopDate = new Date();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String stDate = sdf.format(startDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String endDate = sdf.format(stopDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message("Agent.siteNames:\n Start Time = " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna stDate + "\n End Time = " + endDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * receive ordered list of realms
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static int realmsConfig (List<String> realmList) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String classMethod = "Agent.realmsConfig:";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * no realm "service", so have to create the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * realm table here.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Date startDate = new Date();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster StringBuilder sb =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new StringBuilder("receiving list of realms (size = ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(realmList.size()).append("):\n");
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerInstanceImpl sig = sunMib.getSvrInstanceGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerRealmTable rtab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sig != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster rtab = sig.accessSsoServerRealmTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "getting realm table: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -1;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int realmsAdded = 0;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (int i = 0; i < realmList.size(); i++) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String ss = realmList.get(i);
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerRealmEntryImpl rei = new SsoServerRealmEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster rei.SsoServerRealmIndex = Integer.valueOf(i+1);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String ss2 = ss;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ss2 = getEscapedString(ss2);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster rei.SsoServerRealmName = ss2;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName oname = rei.createSsoServerRealmEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (oname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "Error creating object for realm '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ss + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String rlmToDN = DNMapper.orgNameToDN(ss);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" realm #").append(i).append(" = ").append(ss).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(", DN = ").append(rlmToDN).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * each realm gets a realm-to-index, index-to-realm,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * realm-to-DN and DN-to-realm map entry
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster rtab.addEntry(rei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((server != null) && (rei != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(rei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster realm2Index.put(ss, rei.SsoServerRealmIndex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster index2Realm.put(rei.SsoServerRealmIndex, ss);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster realm2DN.put(ss, rlmToDN);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster DN2Realm.put(rlmToDN, ss);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + ss, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + ss, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster realmsAdded++;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * could have used TableSsoServerRealmTable.getEntries(),
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * but that's a little more complicated than just counting
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * entries as they're successfully added here.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (realmsAdded == 0) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "No realms processed successfully.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -2;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message (classMethod + sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * create the Entitlements MBeans for this realm as specified by Ii.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the Network Monitors are not per-real. the set list is in
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * MonitoringUtil.java (getNetworkMonitorNames()).
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the Policy Stats are realm-based.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String[] nms = MonitoringUtil.getNetworkMonitorNames();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((nms != null) && (nms.length > 0)) {
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerEntitlementSvc esi = sunMib.getEntitlementsGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (esi != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // now the realm-based policy stats
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerEntitlementPolicyStatsTable ptab =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna esi.accessSsoServerEntitlementPolicyStatsTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (int i = 0; i < realmList.size(); i++) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String ss = realmList.get(i);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Integer Ii = Integer.valueOf(i+1);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerEntitlementPolicyStatsEntryImpl ssi =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerEntitlementPolicyStatsEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssi.EntitlementPolicyCaches = 0;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssi.EntitlementReferralCaches = 0;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssi.EntitlementPolicyStatsIndex = Integer.valueOf(i+1);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssi.SsoServerRealmIndex = Ii;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName sname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssi.
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna createSsoServerEntitlementPolicyStatsEntryObjectName(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for Entitlements " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Policy Stats, realm = '" + ss + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ptab.addEntry(ssi, sname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((server != null) && (ssi != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(ssi, sname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "on Entitlements Policy Stats '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ss + "': ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "on Entitlements Policy Stats '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ss + "': ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "getting Entitlements Policy Stats table: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Entitlement NetworkMonitor list empty.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Date stopDate = new Date();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String stDate = sdf.format(startDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String endDate = sdf.format(stopDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message("Agent.realmsConfig:\n Start Time = " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna stDate + "\n End Time = " + endDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return 0;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * process configuration for a realm
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static int realmConfigMonitoringAgent (SSOServerRealmInfo rlmInfo) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String classMethod = "Agent.realmConfigMonitoringAgent:";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String realm = rlmInfo.realmName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, String> authMods = rlmInfo.authModules;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Integer realmIndex = realm2Index.get(realm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (realmIndex == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "could not find realm " + realm +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " in realm2Index map");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerAuthSvcImpl sig = sunMib.getAuthSvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerAuthModulesTable atab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sig != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster atab = sig.accessSsoServerAuthModulesTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "getting auth table: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -2;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster StringBuilder sb = new StringBuilder();
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("receiving config info for realm = ").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(realm).append(":\n Authentication Modules:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * auth module table entries have realm index, and auth module index
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int i = 1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, String> entry : authMods.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String modInst = entry.getKey();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String modType = entry.getValue();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" instance = ").append(modInst).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(", value(type) = ").append(modType).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerAuthModulesEntryImpl aei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerAuthModulesEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.SsoServerRealmIndex = realmIndex;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.AuthModuleIndex = new Integer(i++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.AuthModuleName = modInst;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.AuthModuleType = getEscapedString(modType);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.AuthModuleSuccessCount = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.AuthModuleFailureCount = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName aname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna aei.createSsoServerAuthModulesEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for auth module name '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna modInst + "', type '" + modType + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster atab.addEntry(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((server != null) && (aei != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /* is a Map of realm/authmodule to index needed? */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String rai = realm + "|" + modInst;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // aei is this module's SsoServerAuthModulesEntryImpl instance
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster realmAuthInst.put(rai, aei);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + modInst, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + modInst, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // if no realm info added because mbean not created...
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (realmAuthInst.isEmpty()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -3;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return 0;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * process realm's Agents (only)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the HashMap of attributes/values:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * CLIConstants.ATTR_NAME_AGENT_TYPE
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * type is extracted from the set; can be:
2fe1e6ab330f5f88e97684012ff29cde7e61c9c4Dirk Hogan * J2EEAgent, 2.2_Agent
2fe1e6ab330f5f88e97684012ff29cde7e61c9c4Dirk Hogan * WebAgent
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * don't do "SharedAgent" (authenticators)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * J2EEAgent should have:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "com.sun.identity.agents.config.login.url"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "com.sun.identity.client.notification.url"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "groupmembership"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * WebAgent should have:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "com.sun.identity.agents.config.agenturi.prefix"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "com.sun.identity.agents.config.login.url"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "groupmembership"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * 2.2_Agent should have:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "groupmembership"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static void configAgentsOnly (String realm, Map<String, Map<String, String>> agtAttrs) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String classMethod = "Agent.configAgentsOnly:";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((agtAttrs == null) || agtAttrs.isEmpty()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + "got null attr map for realm " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna realm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerPolicyAgents sss = sunMib.getPolicyAgentsGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerPolicy22AgentTable t22tab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerPolicyJ2EEAgentTable j2eetab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerPolicyWebAgentTable watab = null;
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerWSSAgents ssa = sunMib.getWssAgentsGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerWSSAgentsSTSAgentTable ststab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerWSSAgentsWSPAgentTable wsptab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerWSSAgentsWSCAgentTable wsctab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerWSSAgentsDSCAgentTable dsctab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * get the tables
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sss != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster t22tab = sss.accessSsoServerPolicy22AgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster j2eetab = sss.accessSsoServerPolicyJ2EEAgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster watab = sss.accessSsoServerPolicyWebAgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ststab = ssa.accessSsoServerWSSAgentsSTSAgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster wsptab = ssa.accessSsoServerWSSAgentsWSPAgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster wsctab = ssa.accessSsoServerWSSAgentsWSCAgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster dsctab = ssa.accessSsoServerWSSAgentsDSCAgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "getting Agents tables: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return; // can't do anything without the tables
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ssa != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ststab = ssa.accessSsoServerWSSAgentsSTSAgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster wsptab = ssa.accessSsoServerWSSAgentsWSPAgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster wsctab = ssa.accessSsoServerWSSAgentsWSCAgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster dsctab = ssa.accessSsoServerWSSAgentsDSCAgentTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "getting WSS Agents tables: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return; // can't do anything without the tables
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster StringBuilder sb = new StringBuilder(classMethod);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("agents for realm ").append(realm).append(", # = ").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(agtAttrs.size()).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int wai = 1; // index for web agents
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int j2eei = 1; // index for j2ee agents
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int t22i = 1; // index for 2.2_agents
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int stsi = 1; // index for STS agents
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int wspi = 1; // index for WSP agents
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int wsci = 1; // index for WSC agents
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int dsci = 1; // index for DSC agents
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Integer ri = getRealmIndexFromName(realm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * if the realm isn't in the table, there's not much point
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * in doing the rest
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ri == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "didn't find index for realm " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna realm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, Map<String, String>> entry : agtAttrs.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String agtname = entry.getKey();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, String> hm = entry.getValue();;
80ca0b9f5ad61b2335af25d4dcf25a04ebfcbc91Peter Major String atype = hm.get(Constants.ATTR_NAME_AGENT_TYPE);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String grpmem = hm.get("groupmembership");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // group and agent name can't have ":" in it, or jdmk gags
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (grpmem == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster grpmem = None;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster grpmem = getEscapedString(grpmem);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster agtname = getEscapedString(agtname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" agent name = ").append(agtname).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(", type = ").append(atype).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(", membership = ").append(grpmem).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (atype.equals("WebAgent")) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String aurl = hm.get(
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster "com.sun.identity.agents.config.agenturi.prefix");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String lurl = hm.get("com.sun.identity.agents.config.login.url");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerPolicyWebAgentEntryImpl aei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerPolicyWebAgentEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyWebAgentIndex = new Integer(wai++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyWebAgentName = agtname;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyWebAgentGroup = grpmem;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyWebAgentAgentURL = aurl;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyWebAgentServerURL = lurl;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName aname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna aei.createSsoServerPolicyWebAgentEntryObjectName(server);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for Policy WebAgent '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna agtname + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster watab.addEntry(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((server != null) && (aei != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + agtname + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + agtname + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (atype.equals("2.2_Agent")) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerPolicy22AgentEntryImpl aei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerPolicy22AgentEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.Policy22AgentIndex = new Integer(t22i++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.Policy22AgentName = agtname;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName aname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna aei.createSsoServerPolicy22AgentEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for Policy 2.2 Agent '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna agtname + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster t22tab.addEntry(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((server != null) && (aei != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + agtname + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + agtname + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (atype.equals("J2EEAgent")) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerPolicyJ2EEAgentEntryImpl aei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerPolicyJ2EEAgentEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String aurl =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna hm.get("com.sun.identity.client.notification.url");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (aurl == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aurl = None;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String lurl =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna hm.get("com.sun.identity.agents.config.login.url");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyJ2EEAgentGroup = grpmem;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyJ2EEAgentAgentURL = aurl;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyJ2EEAgentServerURL = lurl;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyJ2EEAgentName = agtname;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyJ2EEAgentIndex = new Integer(j2eei++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName aname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna aei.createSsoServerPolicyJ2EEAgentEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for Policy J2EE Agent '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna agtname + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster j2eetab.addEntry(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((server != null) && (aei != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + agtname + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + agtname + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
2fe1e6ab330f5f88e97684012ff29cde7e61c9c4Dirk Hogan }
2fe1e6ab330f5f88e97684012ff29cde7e61c9c4Dirk Hogan else if (atype.equals("SharedAgent")) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // SharedAgent type are agent authenticators
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "agent type = " + atype +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ", agent name = " + agtname + " not supported.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * process realm's Agent Groups
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the HashMap of attributes/values:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * CLIConstants.ATTR_NAME_AGENT_TYPE
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * type is extracted from the set; can be:
2fe1e6ab330f5f88e97684012ff29cde7e61c9c4Dirk Hogan * WebAgent
2fe1e6ab330f5f88e97684012ff29cde7e61c9c4Dirk Hogan * J2EEAgent
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * don't do "SharedAgent" (authenticators)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * WebAgent should have:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "com.sun.identity.agents.config.agenturi.prefix"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "com.sun.identity.agents.config.login.url"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * J2EEAgents should have:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "com.sun.identity.agents.config.login.url"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "com.sun.identity.client.notification.url"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * 2.2_Agent
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * no groups
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static void configAgentGroups (String realm, Map<String, Map<String, String>> agtAttrs) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String classMethod = "Agent.configAgentGroups:";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((agtAttrs == null) || agtAttrs.isEmpty()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + "got null attr map for realm " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna realm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * only doing the J2EEAgent and WebAgent Groups
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * for now.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerPolicyAgents sss = sunMib.getPolicyAgentsGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerPolicyJ2EEGroupTable j2eetab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerPolicyWebGroupTable wgtab = null;
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerWSSAgents ssa = sunMib.getWssAgentsGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerWSSAgentsSTSAgtGrpTable ststab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerWSSAgentsWSPAgtGrpTable wsptab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerWSSAgentsWSCAgtGrpTable wsctab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerWSSAgentsDSCAgtGrpTable dsctab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sss != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster j2eetab = sss.accessSsoServerPolicyJ2EEGroupTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster wgtab = sss.accessSsoServerPolicyWebGroupTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "getting Agent Groups tables: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return; // can't do anything without the tables
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ssa != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ststab = ssa.accessSsoServerWSSAgentsSTSAgtGrpTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster wsptab = ssa.accessSsoServerWSSAgentsWSPAgtGrpTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster wsctab = ssa.accessSsoServerWSSAgentsWSCAgtGrpTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster dsctab = ssa.accessSsoServerWSSAgentsDSCAgtGrpTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "getting WSS Agent Groups tables: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return; // can't do anything without the tables
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster StringBuilder sb = new StringBuilder(classMethod);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("agents for realm ").append(realm).append(", # = ").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(agtAttrs.size()).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int wai = 1; // index for web agent groups
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int j2eei = 1; // index for j2ee agent groups
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int stsi = 1; // index for STS agent groups
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int wspi = 1; // index for WSP agent groups
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int wsci = 1; // index for WSC agent groups
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int dsci = 1; // index for DSC agent groups
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Integer ri = getRealmIndexFromName(realm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * if the realm isn't in the table, there's not much point
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * in doing the rest
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ri == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "didn't find index for realm " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna realm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, Map<String, String>> entry : agtAttrs.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String agtname = entry.getKey();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, String> hm = entry.getValue();
80ca0b9f5ad61b2335af25d4dcf25a04ebfcbc91Peter Major String atype = hm.get(Constants.ATTR_NAME_AGENT_TYPE);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" agent group name = ").append(agtname).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(", type = ").append(atype).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster agtname = getEscapedString(agtname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (atype.equals("WebAgent")) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (wgtab == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue; // no table to put it into
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String lurl =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna hm.get("com.sun.identity.agents.config.login.url");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerPolicyWebGroupEntryImpl aei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerPolicyWebGroupEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyWebGroupIndex = new Integer(wai++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyWebGroupName = agtname;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyWebGroupServerURL = lurl;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName aname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna aei.createSsoServerPolicyWebGroupEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for Policy Web Agent Group '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna agtname + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster wgtab.addEntry(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((server != null) && (aei != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + agtname + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + agtname + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (atype.equals("J2EEAgent")) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (j2eetab == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue; // no table to put it into
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerPolicyJ2EEGroupEntryImpl aei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerPolicyJ2EEGroupEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String lurl =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna hm.get("com.sun.identity.agents.config.login.url");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyJ2EEGroupServerURL = lurl;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyJ2EEGroupName = agtname;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.PolicyJ2EEGroupIndex = new Integer(j2eei++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName aname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna aei.createSsoServerPolicyJ2EEGroupEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for Policy J2EE Agent Group '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna agtname + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster j2eetab.addEntry(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((server != null) && (aei != null)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(aei, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + agtname + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + agtname + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (atype.equals("SharedAgent")) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "agent group type = " + atype +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ", agent group name = " + agtname + " not supported.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * process saml1.x trusted partners (global)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static int saml1TPConfig (List<String> s1TPInfo) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String classMethod = "Agent.saml1TPConfig:";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster StringBuilder sb = new StringBuilder(classMethod);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int sz = s1TPInfo.size();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster boolean skipSAML1EndPoints = true; // until instrumentation done
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Date startDate = new Date();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("number of SAML1 Trusted Partners = ").append(sz).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (server == null) { // can't do anything without a server
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "no server");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (int i = 0; i < sz; i++) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String pName = s1TPInfo.get(i);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" ").append(pName).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerSAML1TrustPrtnrsEntryImpl sstpe =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerSAML1TrustPrtnrsEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sstpe.SAML1TrustPrtnrIndex = new Integer(i+1);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sstpe.SAML1TrustPrtnrName = getEscapedString(pName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerSAML1Svc sss =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna (SsoServerSAML1SvcImpl) sunMib.getSaml1SvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerSAML1TrustPrtnrsTable tptab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sss != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster tptab = sss.accessSsoServerSAML1TrustPrtnrsTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "getting SAML1 trusted partner table: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -2; // can't do anything without the table
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (tptab == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -2; // can't do anything without the table
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName aname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna sstpe.createSsoServerSAML1TrustPrtnrsEntryObjectName(server);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for SAML1 Trusted Partner '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna pName + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster tptab.addEntry(sstpe, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sstpe != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(sstpe, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + pName + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + pName + ": " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * while we're here, setup the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * SAML1 Cache table (Artifacts and Assertions)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * SAML1 Endpoints for SOAPReceiver, POSTProfile,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * SAMLAware/ArtifactProfile
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // assertions
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerSAML1CacheEntryImpl ssce =
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna new SsoServerSAML1CacheEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheIndex = Integer.valueOf(1);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheName = "Assertion_Cache";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheMisses = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheHits = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheWrites = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheReads = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna SsoServerSAML1SvcImpl sss = sunMib.getSaml1SvcGroup();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerSAML1CacheTable tptab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sss != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster tptab = sss.accessSsoServerSAML1CacheTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "getting SAML1 Cache table: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (tptab != null) { // if sss is null, so will tptab
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sss.assertCache = ssce;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName aname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssce.createSsoServerSAML1CacheEntryObjectName(server);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for SAML1 Assertion Cache");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster tptab.addEntry(ssce, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ssce != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(ssce, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SAML1 Assertion Cache table: " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SAML1 Assertion Cache table: " + ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // artifacts
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna ssce = new SsoServerSAML1CacheEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheIndex = Integer.valueOf(2);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheName = "Artifact_Cache";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheMisses = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheHits = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheWrites = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssce.SAML1CacheReads = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster aname = ssce.createSsoServerSAML1CacheEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for SAML1 Artifact Cache");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster tptab.addEntry(ssce, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ssce != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(ssce, aname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "SAML1 Artifact Cache table: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "SAML1 Artifact Cache table: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sss.artifactCache = ssce;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // SOAPReceiver endpoint
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (!skipSAML1EndPoints) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna SsoServerSAML1EndPointEntryImpl ssee =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerSAML1EndPointEntryImpl(sunMib);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointIndex = Integer.valueOf(1);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointName = "SOAPReceiver_EndPoint";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssee.SAML1EndPointRqtFailed = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssee.SAML1EndPointRqtOut = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssee.SAML1EndPointRqtIn = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssee.SAML1EndPointRqtAborted = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ssee.SAML1EndPointStatus = "operational";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna TableSsoServerSAML1EndPointTable tetab = null;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna if (sss != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna tetab = sss.accessSsoServerSAML1EndPointTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "getting SAML1 EndPoint table: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna if (tetab != null) { // if sss is null, so will tetab
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ObjectName aname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.createSsoServerSAML1EndPointEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna if (aname == null) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for SAML1 SOAPReceiver_EndPoint");
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna } else {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna try {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna tetab.addEntry(ssee, aname);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna if (ssee != null) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna server.registerMBean(ssee, aname);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna } catch (JMException ex) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SAML1 SOAPReceiver EndPoint table: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna } catch (SnmpStatusException ex) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SAML1 SOAPReceiver EndPoint table: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna sss.soapEP = ssee;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna // POSTProfile table
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee = new SsoServerSAML1EndPointEntryImpl(sunMib);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointIndex = Integer.valueOf(2);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointName = "POSTProfile_EndPoint";
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointRqtFailed = 0L;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointRqtOut = 0L;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointRqtIn = 0L;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointRqtAborted = 0L;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointStatus = "operational";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna aname = ssee.createSsoServerSAML1EndPointEntryObjectName(server);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for SAML1 POSTProfile_EndPoint");
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna } else {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna try {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna tetab.addEntry(ssee, aname);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna if (ssee != null) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna server.registerMBean(ssee, aname);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna } catch (JMException ex) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SAML1 POSTProfile EndPoint table: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna } catch (SnmpStatusException ex) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SAML1 POSTProfile EndPoint table: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna sss.pprofEP = ssee;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna // SAMLAware/ArtifactProfile table
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee = new SsoServerSAML1EndPointEntryImpl(sunMib);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointIndex = Integer.valueOf(3);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointName = "SAMLAware_EndPoint";
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointRqtFailed = 0L;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointRqtOut = 0L;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointRqtIn = 0L;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointRqtAborted = 0L;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ssee.SAML1EndPointStatus = "operational";
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna aname = ssee.createSsoServerSAML1EndPointEntryObjectName(server);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna if (aname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for SAML1 SAMLAware_EndPoint");
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna } else {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna try {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna tetab.addEntry(ssee, aname);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna if (ssee != null) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna server.registerMBean(ssee, aname);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna } catch (JMException ex) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SAML1 SAMLAware/ArtifactProfile EndPoint table: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna } catch (SnmpStatusException ex) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SAML1 SAMLAware/ArtifactProfile EndPoint table: " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ex.getMessage());
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna sss.samlAwareEP = ssee;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } // if (!skipSAML1EndPoints)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Date stopDate = new Date();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String stDate = sdf.format(startDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String endDate = sdf.format(stopDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message("Agent.saml1TPConfig:\n Start Time = " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna stDate + "\n End Time = " + endDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return 0;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static int federationConfig (SSOServerRealmFedInfo srfi)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String classMethod = "Agent.federationConfig:";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Date startDate = new Date();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String realm = srfi.realmName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Integer ri = getRealmIndexFromName(realm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Set<String> cots = srfi.cots;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, Map<String, String>> saml2Ents = srfi.samlv2Ents;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, Map<String, String>> wsEnts = srfi.wsEnts;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, Map<String, String>> idffEnts = srfi.idffEnts;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, Map<String, Set<String>>> cotMembs = srfi.membEnts;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster StringBuilder sb = new StringBuilder(classMethod);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("fed entities for realm ").append(realm).append(":\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" Circle of Trusts set has ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (server == null) { // can't do anything without a server
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "no server");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerFedCOTs ssfc = getFedCOTsMBean();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((cots != null) && (cots.size() > 0)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(cots.size()).append(" entries:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerFedCOTsTable ftab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ftab = ssfc.accessSsoServerFedCOTsTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "getting fed COTs table: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ftab != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int i = 1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (String ss : cots) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ss = getEscapedString(ss);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna sb.append(" #").append(i).append(": ").append(ss).
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerFedCOTsEntryImpl cei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerFedCOTsEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedCOTName = ss;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedCOTIndex = new Integer(i++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName oname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna cei.createSsoServerFedCOTsEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (oname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for Fed COT '" + ss + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ftab.addEntry(cei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (cei != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(cei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + ss, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + ss, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("no entries\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the federation entities all go into the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * SsoServerFedEntitiesTable
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerFedEntities ssfe = getFedEntsMBean();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerFedEntitiesTable ftab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ftab = ssfe.accessSsoServerFedEntitiesTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "getting FederationEntities table: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -1; // can't proceed without the table
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ftab != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the SAML2 entities map:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * entity name -> hashmap of:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * key="location"; value="hosted" or "remote"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * key="roles"; value=some combo of IDP;SP
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int tabinx = 1; // increments for all entries
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("\n SAML2 entities map has ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((saml2Ents != null) && (saml2Ents.size() > 0)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerSAML2IDPTable iTab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerSAML2SPTable sTab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerSAML2SvcImpl ss2s = getSaml2SvcMBean();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster iTab = ss2s.accessSsoServerSAML2IDPTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sTab = ss2s.accessSsoServerSAML2SPTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "getting SAML2 IDP and/or SP tables: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return -1; // can't proceed without the tables
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(saml2Ents.size()).append(" entries:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Set ks = saml2Ents.keySet();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int idpi = 1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int spi = 1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, Map<String, String>> entry : saml2Ents.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String entname = entry.getKey();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, String> hm = entry.getValue();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String loc = hm.get("location");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String roles = hm.get("roles");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerFedEntitiesEntryImpl cei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerFedEntitiesEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityName = getEscapedString(entname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityIndex = new Integer(tabinx++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityProto = "SAMLv2";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityType = roles;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityLoc = loc;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName oname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna cei.createSsoServerFedEntitiesEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (oname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for SAML2 Entity '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ftab.addEntry(cei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (cei != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(cei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "JMEx adding SAMLv2 entity " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + " in realm " + realm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SnmpEx adding SAMLv2 entity " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + " in realm " + realm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * these also need to be added to either (possibly
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * both if in both roles?) SAML2's IDP or SP table
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (((roles.indexOf("IDP")) >= 0) &&
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna loc.equalsIgnoreCase("hosted"))
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (iTab == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerSAML2IDPEntryImpl sei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerSAML2IDPEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2IDPArtifactsIssued = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2IDPAssertionsIssued = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2IDPInvalRqtsRcvd = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2IDPRqtsRcvd = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2IDPArtifactsInCache = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2IDPAssertionsInCache = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2IDPIndex = new Integer(idpi++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2IDPName = getEscapedString(entname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster oname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna sei.createSsoServerSAML2IDPEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ss2s.incHostedIDPCount();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster iTab.addEntry(sei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sei != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(sei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /* is a Map of realm/saml2idp to index needed? */
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna String rai = realm + "|" + entname;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna // sei is this bean's instance
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna realmSAML2IDPs.put(rai, sei);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "JMEx adding SAMLv2 IDP entity " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + " in realm " + realm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SnmpEx adding SAMLv2 IDP entity " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + " in realm " + realm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (((roles.indexOf("IDP")) >= 0) &&
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna loc.equalsIgnoreCase("remote"))
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ss2s.incRemoteIDPCount();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (((roles.indexOf("SP")) >= 0) &&
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna loc.equalsIgnoreCase("hosted"))
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sTab == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerSAML2SPEntryImpl sei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerSAML2SPEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2SPInvalidArtifactsRcvd = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2SPValidAssertionsRcvd = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2SPRqtsSent = 0L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2SPName = getEscapedString(entname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sei.SAML2SPIndex = new Integer(spi++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster oname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna sei.createSsoServerSAML2SPEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sTab.addEntry(sei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (sei != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(sei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /* is a Map of realm/saml2sp to index needed? */
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna String rai = realm + "|" + entname;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna // sei is this bean's instance
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna realmSAML2SPs.put(rai, sei);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "JMEx adding SAMLv2 SP entity " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + " in realm " + realm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SnmpEx adding SAMLv2 SP entity " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + " in realm " + realm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" name=").append(entname).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(", loc=").append(loc).append(", roles=").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(roles).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("no entries\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the WSFed entities map:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * entity name -> hashmap of:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * key="location"; value="hosted" or "remote"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * key="roles"; value=some combo of IDP;SP
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("\n WSFed entities map has ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((wsEnts != null) && (wsEnts.size() > 0)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(wsEnts.size()).append(" entries:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, Map<String, String>> entry : wsEnts.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String entname = entry.getKey();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, String> hm = entry.getValue();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String loc = hm.get("location");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String roles = hm.get("roles");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerFedEntitiesEntryImpl cei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerFedEntitiesEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityName = getEscapedString(entname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityIndex = new Integer(tabinx++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityProto = "WSFed";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityType = roles;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityLoc = loc;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName oname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna cei.createSsoServerFedEntitiesEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (oname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for WSFed Entity '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ftab.addEntry(cei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (cei != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(cei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "JMEx adding WSFed entity " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + " in realm " + realm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SnmpEx adding WSFed entity " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + " in realm " + realm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" name=").append(entname).append(", loc=").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(loc).append(", roles=").append(roles).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("no entries\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the IDFF entities map:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * entity name -> hashmap of:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * key="location"; value="hosted" or "remote"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * key="roles"; value=some combo of IDP;SP
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("\n IDFF entities map has ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((idffEnts != null) && (idffEnts.size() > 0)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(idffEnts.size()).append(" entries:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, Map<String, String>> entry : idffEnts.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String entname = entry.getKey();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, String> hm = entry.getValue();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String loc = hm.get("location");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String roles = hm.get("roles");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerFedEntitiesEntryImpl cei =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerFedEntitiesEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityName = getEscapedString(entname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityIndex = new Integer(tabinx++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityProto = "IDFF";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityType = roles;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cei.FedEntityLoc = loc;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ObjectName oname =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna cei.createSsoServerFedEntitiesEntryObjectName(server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (oname == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for IDFF Entity '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ftab.addEntry(cei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (cei != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(cei, oname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (JMException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "JMEx adding IDFF entity " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + " in realm " + realm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "SnmpEx adding IDFF entity " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna entname + " in realm " + realm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" name=").append(entname).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(", loc=").append(loc).append(", roles=").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(roles).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("no entries\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "FederationEntities table is null");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * the COT members map:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * cot name -> hashmap of:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * key="SAML"; value=Set of member names
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * key="IDFF"; value=Set of member names
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * key="WSFed"; value=Set of member names
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append("\n COT Members map has ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((cotMembs != null) && (cotMembs.size() > 0)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(cotMembs.size()).append(" entries:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int coti = 1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster TableSsoServerFedCOTMemberTable mtab = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster mtab = ssfc.accessSsoServerFedCOTMemberTable();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (SnmpStatusException ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "getting fed COT members table: ", ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<String, Map<String, Set<String>>> entry : cotMembs.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String cotname = entry.getKey();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Map<String, Set<String>> hm = entry.getValue();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cotname = getEscapedString(cotname);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" COT name = ").append(cotname).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(", SAML members = ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Set<String> fset = hm.get("SAML");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int mi = 1;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Integer cotI = new Integer(coti++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((fset != null) && fset.size() > 0) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (String mbm : fset) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" ").append(mbm).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerFedCOTMemberEntryImpl cmi =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerFedCOTMemberEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTMemberType = "SAMLv2";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTMemberName = getEscapedString(mbm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTMemberIndex = new Integer(mi++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTIndex = cotI; // xxx - need to get from tbl
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ObjectName ceName =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna cmi.createSsoServerFedCOTMemberEntryObjectName(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ceName == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for SAMLv2 COT Member '"+
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna mbm + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster mtab.addEntry(cmi, ceName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ceName != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(cmi, ceName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "cotmember = " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna mbm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" NONE\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster fset = hm.get("IDFF");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" IDFF members = ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((fset != null) && fset.size() > 0) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (String mbm : fset) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" ").append(mbm).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerFedCOTMemberEntryImpl cmi =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerFedCOTMemberEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTMemberType = "IDFF";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTMemberName = getEscapedString(mbm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTMemberIndex = new Integer(mi++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTIndex = cotI; // xxx - need to get from tbl
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ObjectName ceName =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna cmi.createSsoServerFedCOTMemberEntryObjectName(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ceName == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for IDFF COT Member '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna mbm + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster mtab.addEntry(cmi, ceName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ceName != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(cmi, ceName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "cotmember = " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna mbm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" NONE\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster fset = hm.get("WSFed");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" WSFed members = ");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((fset != null) && fset.size() > 0) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (String mbm : fset) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" ").append(mbm).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SsoServerFedCOTMemberEntryImpl cmi =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new SsoServerFedCOTMemberEntryImpl(sunMib);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTMemberType = "WSFed";
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTMemberName = getEscapedString(mbm);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTMemberIndex = new Integer(mi++);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.SsoServerRealmIndex = ri;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cmi.FedCOTIndex = cotI; // xxx - need to get from tbl
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ObjectName ceName =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna cmi.createSsoServerFedCOTMemberEntryObjectName(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ceName == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error creating object for WSFed Member '" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna mbm + "'");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster continue;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster mtab.addEntry(cmi, ceName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (ceName != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(cmi, ceName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.error(classMethod + "cotmember = " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna mbm, ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sb.append(" NONE\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(sb.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * have to do it here?
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (debug.messageEnabled()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster DSConfigMgr dscm = DSConfigMgr.getDSConfigMgr();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster ServerGroup sgrp = dscm.getServerGroup("sms");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Collection<Server> slist = sgrp.getServersList();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster StringBuilder sbp1 = new StringBuilder("DSConfigMgr:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Server sobj : slist) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String svr = sobj.getServerName();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int port = sobj.getPort();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sbp1.append(" svrname = ").append(svr).
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(", port = ").append(port).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + sbp1.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception d) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "trying to get Directory Server Config");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Properties props = SystemProperties.getProperties();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster StringBuilder sbp = new StringBuilder("SYSPROPS:\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster for (Map.Entry<Object, Object> entry : props.entrySet()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String entname = (String) entry.getKey();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String val = (String) entry.getValue();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sbp.append(" key = ").append(entname).append(", val = ").
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna append(val).append("\n");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + sbp.toString());
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String dirHost = SystemProperties.get(Constants.AM_DIRECTORY_HOST);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String dirPort = SystemProperties.get(Constants.AM_DIRECTORY_PORT);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String drSSL =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna SystemProperties.get(Constants.AM_DIRECTORY_SSL_ENABLED);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster boolean dirSSL = SystemProperties.getAsBoolean(
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Constants.AM_DIRECTORY_SSL_ENABLED);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message(classMethod + "SMS CONFIG:\n host = " + dirHost +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "\n port = " + dirPort + "\n ssl = " + drSSL +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "\n dirSSL = " + dirSSL);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Date stopDate = new Date();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String stDate = sdf.format(startDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String endDate = sdf.format(stopDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster debug.message("Agent.federationConfig:\n Start Time = " +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna stDate + "\n End Time = " + endDate);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return 0;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static String getEscapedString (String str) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (str != null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster str = str.replaceAll(":", "&#58;");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster str = str.replaceAll("=", "&#61;");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster str = str.replaceAll("\\?", "&#63;");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return str;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static String getRealmNameFromIndex (Integer index) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return index2Realm.get(index);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static String getEscRealmNameFromIndex (Integer index) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String ss = index2Realm.get(index);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return getEscapedString(ss);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static Integer getRealmIndexFromName (String name) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return realm2Index.get(name) ;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static String getRealmNameFromDN(String rlmDN) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return DN2Realm.get(rlmDN);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerAuthModulesEntryImpl getAuthModuleEntry (
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna String rlmAuthInst)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return realmAuthInst.get(rlmAuthInst);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SSOServerInfo getAgentSvrInfo() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return agentSvrInfo;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerSAML2IDPEntryImpl getSAML2IDPEntry (
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna String rlmSAMLIDP)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return realmSAML2IDPs.get(rlmSAMLIDP);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SsoServerSAML2SPEntryImpl getSAML2SPEntry (
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna String rlmSAMLSP)
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return realmSAML2SPs.get(rlmSAMLSP);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static void setSFOStatus (boolean sfoStatus) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster isSessFOEnabled = sfoStatus;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static boolean getSFOStatus() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return isSessFOEnabled;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static void setMonitoringDisabled () {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster monitoringEnabled = false;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster agentStarted = false; // so Agent.isRunning() is false
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Main entry point.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * When calling the program, you can specify:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * 1) nb_traps: number of traps the SNMP agent will send.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * If not specified, the agent will send traps continuously.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static void main(String args[]) {
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster final MBeanServer server;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster final ObjectName htmlObjName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster final ObjectName snmpObjName;
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna final ObjectName sunMibObjName;
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna final ObjectName forgerockCtsMibObjName;
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna final ObjectName forgerockPolicyMibObjName;
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna final ObjectName forgerockSessionMibObjName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster final ObjectName trapGeneratorObjName;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int htmlPort = 8082;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int snmpPort = 11161;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Parse the number of traps to be sent.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster //
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((args.length != 0) && (args.length != 1)) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster usage();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster java.lang.System.exit(1);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (args.length == 1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster nbTraps = (new Integer(args[0])).intValue();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (nbTraps < 0) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster usage();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster System.exit(1);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (java.lang.NumberFormatException e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster usage();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster System.exit(1);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster List<MBeanServer> servers = MBeanServerFactory.findMBeanServer(null);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if ((servers != null) && !servers.isEmpty()) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server = servers.get(0);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server = MBeanServerFactory.createMBeanServer();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String domain = server.getDefaultDomain();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Create and start the HTML adaptor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster //
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster htmlObjName = new ObjectName(domain +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ":class=HtmlAdaptorServer,protocol=html,port=" + htmlPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println("Adding HTML adaptor to MBean server with name \n " +
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster htmlObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println("NOTE: HTML adaptor is bound on TCP port " + htmlPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster HtmlAdaptorServer htmlAdaptor = new HtmlAdaptorServer(htmlPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(htmlAdaptor, htmlObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster htmlAdaptor.start();
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster //
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // SNMP specific code:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster //
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Create and start the SNMP adaptor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Specify the port to use in the constructor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // If you want to use the standard port (161) comment out the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // following line:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // snmpPort = 8085;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster //
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpPort = 11161;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna snmpObjName = new ObjectName(domain +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ":class=SnmpAdaptorServer,protocol=snmp,port=" + snmpPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println("Adding SNMP adaptor to MBean server with name \n " +
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println("NOTE: SNMP Adaptor is bound on UDP port " + snmpPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpAdaptor = new SnmpAdaptorServer(snmpPort);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(snmpAdaptor, snmpObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpAdaptor.start();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Send a coldStart SNMP Trap.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Use port = snmpPort+1.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster //
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna print("NOTE: Sending a coldStart SNMP trap" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna " to each destination defined in the ACL file...");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpAdaptor.setTrapPort(new Integer(snmpPort+1));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster snmpAdaptor.snmpV1Trap(0, 0, null);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println("Done.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Create an RMI connector and start it
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster try {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster JMXServiceURL url =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna new JMXServiceURL(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "service:jmx:rmi:///jndi/rmi://localhost:9999/server");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster JMXConnectorServer cs =
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna JMXConnectorServerFactory.newJMXConnectorServer(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna url, null, server);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster cs.start();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception ex) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Error starting RMI : execute rmiregistry 9999; ex="+ex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Create the MIB II (RFC 1213) and add it to the MBean server.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster //
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna sunMibObjName = new ObjectName("snmp:class=SUN_OPENSSO_SERVER_MIB");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println(
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "Adding SUN_OPENSSO_SERVER_MIB-MIB to MBean server with name" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "\n " + sunMibObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Create an instance of the customized MIB
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster //
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster SUN_OPENSSO_SERVER_MIB mib2 = new SUN_OPENSSO_SERVER_MIB();
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna server.registerMBean(mib2, sunMibObjName);
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna forgerockCtsMibObjName = new ObjectName("snmp:class=FORGEROCK_OPENAM_CTS_MIB");
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna println(
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna "Adding FORGEROCK_OPENAM_CTS_MIB-MIB to MBean server with name" +
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna "\n " + forgerockCtsMibObjName);
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna forgerockPolicyMibObjName = new ObjectName("snmp:class=FORGEROCK_OPENAM_POLICY_MIB");
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna println(
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna "Adding FORGEROCK_OPENAM_POLICY_MIB-MIB to MBean server with name" +
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna "\n " + forgerockPolicyMibObjName);
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna forgerockSessionMibObjName = new ObjectName("snmp:class=FORGEROCK_OPENAM_SESSION_MIB");
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna println(
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna "Adding FORGEROCK_OPENAM_SESSION_MIB-MIB to MBean server with name" +
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna "\n " + forgerockSessionMibObjName);
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna FORGEROCK_OPENAM_CTS_MIB mib3 = new FORGEROCK_OPENAM_CTS_MIB();
88f608b8855a99b19653376900fc5f234b7e771cDavid Luna server.registerMBean(mib3, forgerockCtsMibObjName);
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna FORGEROCK_OPENAM_POLICY_MIB mib4 = new FORGEROCK_OPENAM_POLICY_MIB();
fb3b3a01405c222ae1fdbbe6f5c1d4aa696195bbDavid Luna server.registerMBean(mib4, forgerockPolicyMibObjName);
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna FORGEROCK_OPENAM_SESSION_MIB mib5 = new FORGEROCK_OPENAM_SESSION_MIB();
0f7c5b88fd04e25bea6113dfc783a05e4e2045f8David Luna server.registerMBean(mib5, forgerockSessionMibObjName);
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Bind the SNMP adaptor to the MIB in order to make the MIB
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // accessible through the SNMP protocol adaptor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // If this step is not performed, the MIB will still live in
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // the Java DMK agent:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // its objects will be addressable through HTML but not SNMP.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster //
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster mib2.setSnmpAdaptor(snmpAdaptor);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Create a LinkTrapGenerator.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // Specify the ifIndex to use in the object name.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster //
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int ifIndex = 1;
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna trapGeneratorObjName = new ObjectName("trapGenerator" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna ":class=LinkTrapGenerator,ifIndex=" + ifIndex);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println("Adding LinkTrapGenerator to MBean server with name" +
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna "\n " + trapGeneratorObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster LinkTrapGenerator trapGenerator = new LinkTrapGenerator(nbTraps);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster server.registerMBean(trapGenerator, trapGeneratorObjName);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println("\n>> Press <Enter> if you want to start sending traps.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println(" -or-");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println(">> Press <Ctrl-C> if you want to stop this agent.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster System.in.read();
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster trapGenerator.start();
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } catch (Exception e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster e.printStackTrace();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return a reference to the SNMP adaptor server.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static SnmpAdaptorServer getSnmpAdaptor() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return snmpAdaptor;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Return usage of the program.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static void usage() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println("java Agent <nb_traps>");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster println("where");
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna println(" -nb_traps: " +
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster "number of traps the SNMP agent will send.");
7b8fd79c6177846da551bb2cd5e1579b7c650a3cDavid Luna println(" " +
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster "If not specified, the agent will send traps continuously.");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * print/println stuff...
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private final static void println(String msg) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster System.out.println(msg);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private final static void print(String msg) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster System.out.print(msg);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster}