[Yanel-commits] rev 41618 -
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet
michi at wyona.com
michi at wyona.com
Mon Feb 16 16:11:30 CET 2009
Author: michi
Date: 2009-02-16 16:11:30 +0100 (Mon, 16 Feb 2009)
New Revision: 41618
Modified:
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
getUsecase method cleaned and log warnings if usecase values which do not exist are specified
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 2009-02-16 15:10:37 UTC (rev 41617)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java 2009-02-16 15:11:30 UTC (rev 41618)
@@ -1990,76 +1990,92 @@
* Get usecase. Maps query strings, etc. to usecases, which then can be used for example within access control policies
*/
private Usecase getUsecase(HttpServletRequest request) {
- Usecase usecase = null;
+ // TODO: Replace hardcoded roles by mapping between roles amd query strings ...
+ Usecase usecase = new Usecase("view");
- // TODO: Replace hardcoded roles by mapping between roles amd query strings ...
- String value = request.getParameter(YANEL_RESOURCE_USECASE);
+ String yanelResUsecaseValue = request.getParameter(YANEL_RESOURCE_USECASE);
+ if (yanelResUsecaseValue != null) {
+ if (yanelResUsecaseValue.equals("save")) {
+ log.debug("Save data ...");
+ usecase = new Usecase("write");
+ } else if (yanelResUsecaseValue.equals("checkin")) {
+ log.debug("Checkin data ...");
+ usecase = new Usecase("write");
+ } else if (yanelResUsecaseValue.equals("roll-back")) {
+ log.debug("Roll back to previous revision ...");
+ usecase = new Usecase("write");
+ } else if (yanelResUsecaseValue.equals("introspection")) {
+ if(log.isDebugEnabled()) log.debug("Dynamically generated introspection ...");
+ usecase = new Usecase("introspection");
+ } else if (yanelResUsecaseValue.equals("checkout")) {
+ log.debug("Checkout data ...");
+ usecase = new Usecase("open");
+ } else if (yanelResUsecaseValue.equals("delete")) {
+ log.info("Delete resource (yanel resource usecase delete)");
+ usecase = new Usecase("delete");
+ } else {
+ log.warn("No such resource usecase: " + yanelResUsecaseValue);
+ }
+ }
+
String yanelUsecaseValue = request.getParameter(YANEL_USECASE);
- String workflowTransitionValue = request.getParameter(YANEL_RESOURCE_WORKFLOW_TRANSITION);
+ if (yanelUsecaseValue != null) {
+ if (yanelUsecaseValue.equals("create")) {
+ log.debug("Create new resource ...");
+ usecase = new Usecase("resource.create");
+ } else {
+ log.warn("No such usecase: " + yanelUsecaseValue);
+ }
+ }
+
String contentType = request.getContentType();
String method = request.getMethod();
- if (value != null && value.equals("save")) {
- log.debug("Save data ...");
- usecase = new Usecase("write");
- } else if (value != null && value.equals("checkin")) {
- log.debug("Checkin data ...");
- usecase = new Usecase("write");
- } else if (value != null && value.equals("roll-back")) {
- log.debug("Roll back to previous revision ...");
- usecase = new Usecase("write");
- } else if (yanelUsecaseValue != null && yanelUsecaseValue.equals("create")) {
- log.debug("Create new resource ...");
- usecase = new Usecase("resource.create");
- } else if (value != null && value.equals("introspection")) {
- if(log.isDebugEnabled()) log.debug("Dynamically generated introspection ...");
- usecase = new Usecase("introspection");
- } else if (value != null && value.equals("checkout")) {
- log.debug("Checkout data ...");
- usecase = new Usecase("open");
- } else if (contentType != null && contentType.indexOf("application/atom+xml") >= 0 && (method.equals(METHOD_PUT) || method.equals(METHOD_POST))) {
+ if (contentType != null && contentType.indexOf("application/atom+xml") >= 0 && (method.equals(METHOD_PUT) || method.equals(METHOD_POST))) {
// TODO: Is posting atom entries different from a general post (see below)?!
- log.error("DEBUG: Write/Checkin Atom entry ...");
+ log.warn("Write/Checkin Atom entry ...");
usecase = new Usecase("write");
// TODO: METHOD_POST is not generally protected, but save, checkin, application/atom+xml are being protected. See doPost(....
} else if (method.equals(METHOD_PUT)) {
- log.error("DEBUG: Upload data ...");
+ log.warn("Upload data ...");
usecase = new Usecase("write");
} else if (method.equals(METHOD_DELETE)) {
- log.error("DEBUG: Delete resource (HTTP method delete)");
+ log.warn("Delete resource (HTTP method delete)");
usecase = new Usecase("delete");
- } else if (value != null && value.equals("delete")) {
- log.info("Delete resource (yanel resource usecase delete)");
- usecase = new Usecase("delete");
- } else if (workflowTransitionValue != null) {
+ }
+
+ String workflowTransitionValue = request.getParameter(YANEL_RESOURCE_WORKFLOW_TRANSITION);
+ if (workflowTransitionValue != null) {
// TODO: How shall we protect workflow transitions?!
- log.error("DEBUG: Workflow transition ...");
+ log.warn("Workflow transition is currently handled as view usecase: " + workflowTransitionValue);
usecase = new Usecase("view");
- } else {
- usecase = new Usecase("view");
}
- value = request.getParameter("yanel.toolbar");
- if (value != null && value.equals("on")) {
+
+ String toolbarValue = request.getParameter("yanel.toolbar");
+ if (toolbarValue != null && toolbarValue.equals("on")) {
log.debug("Turn on toolbar ...");
usecase = new Usecase(TOOLBAR_USECASE);
}
- value = request.getParameter("yanel.policy");
- if (value != null) {
- if (value.equals("create")) {
+
+ String yanelPolicyValue = request.getParameter("yanel.policy");
+ if (yanelPolicyValue != null) {
+ if (yanelPolicyValue.equals("create")) {
usecase = new Usecase("policy.create");
- } else if (value.equals("read")) {
+ } else if (yanelPolicyValue.equals("read")) {
usecase = new Usecase("policy.read");
- } else if (value.equals("update")) {
+ } else if (yanelPolicyValue.equals("update")) {
usecase = new Usecase("policy.update");
- } else if (value.equals("delete")) {
+ } else if (yanelPolicyValue.equals("delete")) {
usecase = new Usecase("policy.delete");
} else {
- log.warn("No such policy usecase: " + value);
+ log.warn("No such policy usecase: " + yanelPolicyValue);
}
}
+
String showResourceMeta = request.getParameter(RESOURCE_META_ID_PARAM_NAME);
if (showResourceMeta != null) {
usecase = new Usecase(RESOURCE_META_ID_PARAM_NAME);
}
+
return usecase;
}
More information about the Yanel-commits
mailing list