[java-identity-provider COMMIT] /trunk/idp-war/src/main/webapp/WEB-INF/jsp/status.jsp

noreply at shibboleth.net noreply at shibboleth.net
Tue Dec 9 22:37:57 EST 2014


Author: scantor
Date: Tue Dec  9 22:37:57 2014
New Revision: 7055

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7055&view=rev
Log:
IDP-92 - add metadata refresh data to status page

Modified:
    trunk/idp-war/src/main/webapp/WEB-INF/jsp/status.jsp

Modified: trunk/idp-war/src/main/webapp/WEB-INF/jsp/status.jsp
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-war/src/main/webapp/WEB-INF/jsp/status.jsp?rev=7055&r1=7054&r2=7055&view=diff
==============================================================================
--- trunk/idp-war/src/main/webapp/WEB-INF/jsp/status.jsp (original)
+++ trunk/idp-war/src/main/webapp/WEB-INF/jsp/status.jsp Tue Dec  9 22:37:57 2014
@@ -1,13 +1,20 @@
 <%@ page language="java" contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>
 <%@ page trimDirectiveWhitespaces="true" %>
+<%@ page import="java.util.ArrayList" %>
 <%@ page import="java.util.Collection" %>
+<%@ page import="java.util.Collections" %>
 <%@ page import="org.joda.time.DateTime" %>
 <%@ page import="org.joda.time.format.DateTimeFormatter" %>
 <%@ page import="org.joda.time.format.ISODateTimeFormat" %>
 <%@ page import="org.springframework.webflow.execution.RequestContext" %>
+<%@ page import="org.opensaml.saml.metadata.resolver.ChainingMetadataResolver" %>
+<%@ page import="org.opensaml.saml.metadata.resolver.MetadataResolver" %>
+<%@ page import="org.opensaml.saml.metadata.resolver.RefreshableMetadataResolver" %>
 <%@ page import="net.shibboleth.idp.Version" %>
+<%@ page import="net.shibboleth.idp.saml.metadata.impl.RelyingPartyMetadataProvider" %>
 <%@ page import="net.shibboleth.utilities.java.support.component.IdentifiedComponent" %>
 <%@ page import="net.shibboleth.utilities.java.support.service.ReloadableService" %>
+<%@ page import="net.shibboleth.utilities.java.support.service.ServiceableComponent" %>
 <%
 final RequestContext requestContext = (RequestContext) request.getAttribute("flowRequestContext");
 final DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTimeNoMillis();
@@ -46,5 +53,47 @@
     }
     
     out.println();
+    
+    if (((IdentifiedComponent) service).getId().contains("Metadata")) {
+        final ServiceableComponent<MetadataResolver> component = service.getServiceableComponent();
+        try {
+            MetadataResolver rootResolver = component.getComponent();
+            Collection<RefreshableMetadataResolver> resolvers = Collections.emptyList();
+            
+            // Step down into wrapping component.
+            if (rootResolver instanceof RelyingPartyMetadataProvider) {
+                rootResolver = ((RelyingPartyMetadataProvider) rootResolver).getEmbeddedResolver();
+            }
+            
+            if (rootResolver instanceof RefreshableMetadataResolver) {
+                resolvers = Collections.<RefreshableMetadataResolver>singletonList((RefreshableMetadataResolver) rootResolver);
+            } else if (rootResolver instanceof ChainingMetadataResolver) {
+            	resolvers = new ArrayList<RefreshableMetadataResolver>();
+                for (final MetadataResolver childResolver : ((ChainingMetadataResolver) rootResolver).getResolvers()) {
+                    if (childResolver instanceof RefreshableMetadataResolver) {
+                        resolvers.add((RefreshableMetadataResolver) childResolver);
+                    }
+                }
+            }
+            
+            for (final RefreshableMetadataResolver resolver : resolvers) {
+                final DateTime lastRefresh = resolver.getLastRefresh();
+                final DateTime lastUpdate = resolver.getLastUpdate();
+
+                out.println("\tmetadata source: " + resolver.getId());
+                if (lastRefresh != null) {
+                    out.println("\tlast refresh attempt: " + lastRefresh.toString(dateTimeFormatter));
+                }
+                if (lastUpdate != null) {
+                    out.println("\tlast update: " + lastUpdate.toString(dateTimeFormatter));
+                }
+                out.println();
+            }
+        } finally {
+            if (null != component) {
+                component.unpinComponent();
+            }
+        }
+    }
 }
 %>



More information about the commits mailing list