// The contents of this file are subject to the Mozilla Public License Version 1.1 // (the "License"); you may not use this file except in compliance with the License. // You may obtain a copy of the License at . // // Software distributed under the License is distributed on an "AS IS" basis, WITHOUT // WARRANTY OF ANY KIND, either express or implied. See the License for the specific // language governing rights and limitations under the License. // // The Original Code is the Venice Web Communities System. // // The Initial Developer of the Original Code is Eric J. Bowersox , // for Silverwrist Design Studios. Portions created by Eric J. Bowersox are // Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. // // Contributor(s): importPackage(java.util); importPackage(Packages.org.sourceid.sso.util); importPackage(Packages.org.sourceid.sso.xml); importPackage(Packages.org.sourceid.sso.xml.lib); importClass(Packages.com.silverwrist.dynamo.Namespaces); importPackage(Packages.com.silverwrist.dynamo.iface); importPackage(Packages.com.silverwrist.dynamo.util); importClass(Packages.com.silverwrist.venice.VeniceNamespaces); importPackage(Packages.com.silverwrist.venice.content); importPackage(Packages.com.silverwrist.venice.frame); req = bsf.lookupBean("request"); req_help = bsf.lookupBean("request_help"); target = req_help.getParameterString("tgt"); if (target==null) target = "top.js.vs"; vlib.setOnError(req,target); user = vlib.getUser(req); // Check the user account. user = vlib.getUser(req); if (user.isAnonymous()) { // user not logged in, must log in first - so bounce us to the login dialog new_target = "sourceid/federations.js.vs?tgt=" + stringutils.encodeURL(target); dynamo.scriptReturn(new Redirect("SERVLET","login.js.vs?tgt=" + stringutils.encodeURL(new_target))); } // end if // Load the profile menu. mprov = vcast.queryMenuProvider(req_help.getRequestObject(Namespaces.DYNAMO_OBJECT_NAMESPACE,"venice-menus")); menu = mprov.getInlineMenu(user,VeniceNamespaces.USER_PROFILE_NAMESPACE,"user.profile.menu",cast.newIntArray(0)); if (menu.getItemCount()>1) { // set up the menu properly menu.setVariable("target",stringutils.encodeURL(target)); ndx = menu.getItemContainingLinkText("sourceid/federations.js.vs"); menu.setSelectedIndex(ndx); } // end if else // don't display the menu menu = null; // Create the return value. rc = new VelocityView("Identity Federations","sourceid/federations.vm"); rc.setParameter("target",target); if (menu!=null) rc.setParameter("menu",menu); // Get the list of identity providers and a bunch of information about them. pdir = sourceid.getProviderDirectory(req); it = pdir.getIDPList().iterator(); plist = new ArrayList(); while (it.hasNext()) { // get each identity provider in turn map = new HashMap(); idp = sourceid.castIDPDescriptorType(it.next()); map.put("provider",idp.providerID); sps = sourceid.getSessionInfoForProvider(req,idp.providerID); if (sps!=null) { // we're logged into this session - get the attributes of it map.put("logged_in",cast.booleanObject(true)); astmt = sps.getAuthenticationStatement(); map.put("login_time",astmt.getAuthenticationInstant()); ex_time = astmt.getReauthenticateOnOrAfter(); if (ex_time!=null) map.put("expire_time",ex_time); } // end if else // not logged in map.put("logged_in",cast.booleanObject(false)); map.put("federated",cast.booleanObject(sourceid.isUserFederatedWith(req,idp.providerID))); plist.add(map); // add to provider list } // end while rc.setParameter("provider_data",plist); dynamo.scriptOutput(rc); // all done