[Yanel-commits] rev 32824 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Mon Mar 3 16:00:59 CET 2008


Author: michi
Date: 2008-03-03 16:00:58 +0100 (Mon, 03 Mar 2008)
New Revision: 32824

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
write policy implemented

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2008-03-03 15:00:21 UTC (rev 32823)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2008-03-03 15:00:58 UTC (rev 32824)
@@ -2214,10 +2214,15 @@
                     response.setStatus(response.SC_OK);
                     sb.append(getPolicyAsXML(resource.getRealm().getPolicyManager(), resource.getPath()));
                 } else if (postXML != null && postXML.equals("policy")) {
-                    log.warn("Implementation not finished yet!");
-                    response.setStatus(response.SC_NOT_IMPLEMENTED);
                     response.setContentType("application/xml; charset=" + DEFAULT_ENCODING);
-                    sb.append("<?xml version=\"1.0\"?><not-saved-yet/>");
+                    try {
+                        writePolicy(request.getInputStream(), resource.getRealm().getPolicyManager(), resource.getPath());
+                        response.setStatus(response.SC_OK);
+                        sb.append("<?xml version=\"1.0\"?><saved/>");
+                    } catch(Exception e) {
+                        response.setStatus(response.SC_NOT_IMPLEMENTED);
+                        sb.append("<?xml version=\"1.0\"?><not-saved>" + e.getMessage() + "</not-saved>");
+                    }
                 } else {
                     response.setContentType("text/html; charset=" + DEFAULT_ENCODING);
                     response.setStatus(response.SC_OK);
@@ -2449,4 +2454,12 @@
         }
         return sb;
     }
+
+    /**
+     * Write/Save policy
+     */
+    private void writePolicy(InputStream policyAsInputStream, PolicyManager pm, String path) throws Exception {
+        Policy policy = new org.wyona.security.impl.PolicyImplV2(policyAsInputStream);
+        pm.setPolicy(path, policy);
+    }
 }



More information about the Yanel-commits mailing list