Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/FederationAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/Attic/FederationAction.java,v diff -u -r1.1.2.1 -r1.1.2.2 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/FederationAction.java 25 May 2007 05:44:33 -0000 1.1.2.1 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/FederationAction.java 5 Jun 2007 04:31:43 -0000 1.1.2.2 @@ -75,6 +75,7 @@ } // display data + request.setAttribute("fedUrl", service.getFederationRegistryURL()); request.setAttribute("servers", service.getFederationServers()); request.setAttribute("orgs", service.getCoursesCanJoinSharedLessons()); request.setAttribute("lessons", service.getFederationLessons()); Index: lams_admin/web/federation/federation.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_admin/web/federation/Attic/federation.jsp,v diff -u -r1.1.2.2 -r1.1.2.3 --- lams_admin/web/federation/federation.jsp 1 Jun 2007 04:51:43 -0000 1.1.2.2 +++ lams_admin/web/federation/federation.jsp 5 Jun 2007 04:31:43 -0000 1.1.2.3 @@ -1,4 +1,4 @@ -<%@ include file="/taglibs.jsp"%> +<%@ include file="/taglibs.jsp" %>

: @@ -26,6 +26,10 @@ + +

">view federation xml

+

Update servers

+ Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/web/FederationRegistryAction.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/web/federationUpdateResults.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_common/db/sql/insert_unix_config_data.sql =================================================================== RCS file: /usr/local/cvsroot/lams_common/db/sql/Attic/insert_unix_config_data.sql,v diff -u -r1.8.2.3 -r1.8.2.4 --- lams_common/db/sql/insert_unix_config_data.sql 19 Apr 2007 06:51:38 -0000 1.8.2.3 +++ lams_common/db/sql/insert_unix_config_data.sql 5 Jun 2007 04:31:45 -0000 1.8.2.4 @@ -34,3 +34,5 @@ insert into lams_configuration (config_key, config_value) values ('ShibAttrFname','LAMS-Login'); insert into lams_configuration (config_key, config_value) values ('ShibAttrLname','LAMS-Login'); insert into lams_configuration (config_key, config_value) values ('ShibAttrRoles','LAMS-Roles'); +insert into lams_configuration (config_key, config_value) values ('FedRegistryURL','http://localhost'); +insert into lams_configuration (config_key, config_value) values ('FedKey','blah'); Index: lams_common/db/sql/insert_windows_config_data.sql =================================================================== RCS file: /usr/local/cvsroot/lams_common/db/sql/Attic/insert_windows_config_data.sql,v diff -u -r1.12.2.3 -r1.12.2.4 --- lams_common/db/sql/insert_windows_config_data.sql 19 Apr 2007 06:51:38 -0000 1.12.2.3 +++ lams_common/db/sql/insert_windows_config_data.sql 5 Jun 2007 04:31:45 -0000 1.12.2.4 @@ -33,4 +33,6 @@ insert into lams_configuration (config_key, config_value) values ('ShibAttrLogin','LAMS-Login'); insert into lams_configuration (config_key, config_value) values ('ShibAttrFname','LAMS-Login'); insert into lams_configuration (config_key, config_value) values ('ShibAttrLname','LAMS-Login'); -insert into lams_configuration (config_key, config_value) values ('ShibAttrRoles','LAMS-Roles'); \ No newline at end of file +insert into lams_configuration (config_key, config_value) values ('ShibAttrRoles','LAMS-Roles'); +insert into lams_configuration (config_key, config_value) values ('FedRegistryURL','http://localhost'); +insert into lams_configuration (config_key, config_value) values ('FedKey','blah'); \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/federation/service/FederationService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/federation/service/Attic/FederationService.java,v diff -u -r1.1.2.2 -r1.1.2.3 --- lams_common/src/java/org/lamsfoundation/lams/federation/service/FederationService.java 1 Jun 2007 04:52:52 -0000 1.1.2.2 +++ lams_common/src/java/org/lamsfoundation/lams/federation/service/FederationService.java 5 Jun 2007 04:31:45 -0000 1.1.2.3 @@ -14,6 +14,7 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; +import org.apache.commons.beanutils.BeanUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.federation.FederationException; import org.lamsfoundation.lams.federation.FederationLesson; @@ -24,7 +25,10 @@ import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationType; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.HashUtil; +import org.lamsfoundation.lams.util.wddx.FlashMessage; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -84,14 +88,10 @@ private FederationServer getFedServerByFedId(Integer fedId) throws FederationException { List list = service.findByProperty(FederationServer.class, "fedId", fedId); - if (list == null || list.isEmpty()) { - throw new FederationException("Federation server with fed_id=" + fedId + " doesn't exist."); - } else { - return (FederationServer)list.get(0); - } + return (list == null || list.isEmpty()) ? null : (FederationServer)list.get(0); } - private Document getXmlDocumentFromUrl(URL url) throws FederationException { + public Document getXmlDocumentFromUrl(URL url) throws FederationException { try { HttpURLConnection conn = (HttpURLConnection)url.openConnection(); if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) { @@ -157,6 +157,11 @@ return dto; } + public String getWDDXFedServerGroups(Integer fedId) throws IOException, FederationException { + FlashMessage flashMessage = new FlashMessage("getFedServerGroups", getFedServerGroups(fedId)); + return flashMessage.serializeMessage(); + } + public List getFedServerGroups(Integer fedId) throws FederationException { FederationServer fedServer = getFedServerByFedId(fedId); String fedKey = HashUtil.sha1(fedServer.getPrivateKey()); @@ -196,4 +201,79 @@ return list; } + + // Authoritative resource for federation key + private String getFederationKey() { + return Configuration.get(ConfigurationKeys.FED_KEY); + } + + private FederationServer getFedServerFromNode(Node node) { + FederationServer fedServer = new FederationServer(); + + NodeList nodeList = node.getChildNodes(); + for (int i=0; i 0) { + url = url + "?h=" + HashUtil.sha1(getFederationKey()); + } + return url; + } + + public void updateFederationRegistry() throws FederationException { + String url = getFederationRegistryURL(); + + try { + Document document = getXmlDocumentFromUrl(new URL(url)); + NodeList nodeList = document.getElementsByTagName("row"); + for (int i=0; i getFedServerLessons(Integer fedId, Integer orgId) throws FederationException; + + /** + * Get URL used to request updated list of servers from registry + * @return URL + */ + String getFederationRegistryURL(); + + /** + * Syncs local copy of federation servers with remote registry. + * @throws FederationException + */ + void updateFederationRegistry() throws FederationException; } Index: lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java,v diff -u -r1.23.2.1 -r1.23.2.2 --- lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java 19 Apr 2007 06:51:38 -0000 1.23.2.1 +++ lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java 5 Jun 2007 04:31:45 -0000 1.23.2.2 @@ -139,4 +139,8 @@ public static String SHIB_ATTR_FNAME = "ShibAttrFname"; public static String SHIB_ATTR_LNAME = "ShibAttrLname"; + + public static String FED_REGISTRY_URL = "FedRegistryURL"; + + public static String FED_KEY = "FedKey"; } \ No newline at end of file
sid