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

michi at wyona.com michi at wyona.com
Thu Sep 15 13:40:16 CEST 2011


Author: michi
Date: 2011-09-15 13:40:16 +0200 (Thu, 15 Sep 2011)
New Revision: 60724

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
beside mime type also check if resource implements trackable interface

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	2011-09-15 10:34:24 UTC (rev 60723)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2011-09-15 11:40:16 UTC (rev 60724)
@@ -1204,10 +1204,12 @@
                         - Or authentication was successful and web authenticator sends a redirect
                 */
 
-                if(logAccessEnabled) { // INFO: Although authorization has been denied and user first needs to authenticate, let's log the request anyway (TODO: Check mime type, whereas only introspection is currently excluded)
+                // TODO: Check "would be mime type", etc.: if (logAccessIsApplicable(view.getMimeType())) {
+                if(logAccessEnabled) { // INFO: Although authorization has been denied and user first needs to authenticate, let's log the request anyway
                     if (usecase!= null && !usecase.equals("introspection")) {
                         log.debug("Ignore introspection requests ...");
                     } else {
+                        log.info("Authentication not completed yet, but let's log request anyway...");
                         doLogAccess(request, response, null, null);
                     }
                 }
@@ -2039,7 +2041,7 @@
 
         // INFO: Check if viewable resource has already created a response
         if (!view.isResponse()) {
-            if(logAccessIsApplicable(view.getMimeType())) {
+            if(logAccessIsApplicable(view.getMimeType(), res)) {
                 //log.debug("Mime type '" + view.getMimeType() + "' of request: " + request.getServletPath() + "?" + request.getQueryString());
                 doLogAccess(request, response, res, trackInfo);
             }
@@ -2071,7 +2073,7 @@
             }
         }
 
-        if(logAccessIsApplicable(mimeType)) {
+        if(logAccessIsApplicable(mimeType, res)) {
             //log.debug("Mime type '" + mimeType + "' of request: " + request.getServletPath() + "?" + request.getQueryString());
             doLogAccess(request, response, res, trackInfo);
         }
@@ -2920,22 +2922,27 @@
     /**
      * Check whether access logging makes sense
      * @param mimeType Content type of requested resource
+     * @param resource Resource/controller handling request
      */
-    private boolean logAccessIsApplicable(String mimeType) {
+    private boolean logAccessIsApplicable(String mimeType, Resource resource) {
         if(logAccessEnabled) {
             // TODO: Check whether resource is trackable
-            if (mimeType != null) {
-                if (isMimeTypeOk(mimeType)) {
-                    return true;
-                } else {
-                   //log.debug("Do not track this mime type: " + mimeType);
-                }
+            if (isTrackable(resource) || (mimeType != null && isMimeTypeOk(mimeType))) {
+                return true;
             } else {
-                //log.debug("No mime type, hence do not track.");
+                //log.debug("Neither trackable nor a mime type which makes sense, hence do not track.");
             }
         } else {
             //log.debug("Tracking disabled globally.");
         }
         return false;
     }
+
+    /**
+     * Check whether a resource/controller is trackable
+     * @param resource Resource/controller which might has the trackable interface implemented
+     */
+    private boolean isTrackable(Resource resource) {
+        return ResourceAttributeHelper.hasAttributeImplemented(resource, "Trackable", "1");
+    }
 }



More information about the Yanel-commits mailing list