[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