Author: owulff
Date: Tue Jun 12 19:23:48 2012
New Revision: 1349481

URL: http://svn.apache.org/viewvc?rev=1349481&view=rev
Log:
Metadata document support added for Tomcat plugin

Modified:
    
cxf/fediz/trunk/plugins/tomcat/src/main/java/org/apache/cxf/fediz/tomcat/FederationAuthenticator.java
    cxf/fediz/trunk/pom.xml

Modified: 
cxf/fediz/trunk/plugins/tomcat/src/main/java/org/apache/cxf/fediz/tomcat/FederationAuthenticator.java
URL: 
http://svn.apache.org/viewvc/cxf/fediz/trunk/plugins/tomcat/src/main/java/org/apache/cxf/fediz/tomcat/FederationAuthenticator.java?rev=1349481&r1=1349480&r2=1349481&view=diff
==============================================================================
--- 
cxf/fediz/trunk/plugins/tomcat/src/main/java/org/apache/cxf/fediz/tomcat/FederationAuthenticator.java
 (original)
+++ 
cxf/fediz/trunk/plugins/tomcat/src/main/java/org/apache/cxf/fediz/tomcat/FederationAuthenticator.java
 Tue Jun 12 19:23:48 2012
@@ -21,6 +21,7 @@ package org.apache.cxf.fediz.tomcat;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.PrintWriter;
 import java.security.Principal;
 import java.util.ArrayList;
 import java.util.Date;
@@ -30,6 +31,8 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletResponse;
 import javax.xml.bind.JAXBException;
 
+import org.w3c.dom.Document;
+
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.Session;
 import org.apache.catalina.authenticator.Constants;
@@ -48,6 +51,8 @@ import org.apache.cxf.fediz.core.config.
 import org.apache.cxf.fediz.core.exception.ProcessingException;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
+import org.apache.ws.security.util.DOM2Writer;
+
 
 public class FederationAuthenticator extends FormAuthenticator {
 
@@ -148,6 +153,30 @@ public class FederationAuthenticator ext
     ServletException {
 
         LOG.debug("WsFedAuthenticator:invoke()");
+        if 
(request.getRequestURL().indexOf(FederationConstants.METADATA_PATH_URI) != -1) {
+            if (LOG.isInfoEnabled()) {
+                LOG.info("WS-Federation Metadata document requested");
+            }
+            response.setContentType("text/xml");
+            PrintWriter out = response.getWriter();
+            
+            String contextName = request.getServletContext().getContextPath();
+            if (contextName == null || contextName.isEmpty()) {
+                contextName = "/";
+            }
+            FederationContext fedConfig = getContextConfiguration(contextName);
+            FederationProcessor wfProc = new FederationProcessorImpl();
+            try {
+                Document metadata = wfProc.getMetaData(fedConfig);
+                out.write(DOM2Writer.nodeToString(metadata));
+                return;
+            } catch (Exception ex) {
+                LOG.error("Failed to get metadata document: " + 
ex.getMessage());
+                
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                return;
+            }            
+        }
+        
         super.invoke(request, response);
 
     }

Modified: cxf/fediz/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/cxf/fediz/trunk/pom.xml?rev=1349481&r1=1349480&r2=1349481&view=diff
==============================================================================
--- cxf/fediz/trunk/pom.xml (original)
+++ cxf/fediz/trunk/pom.xml Tue Jun 12 19:23:48 2012
@@ -30,7 +30,7 @@
     <parent>
         <groupId>org.apache</groupId>
         <artifactId>apache</artifactId>
-        <version>9</version>
+        <version>10</version>
     </parent>
 
     <properties>


Reply via email to