KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > riotfamily > website > cache > RiotAwareCacheableControllerHandlerAdapter


1 /* ***** BEGIN LICENSE BLOCK *****
2  * Version: MPL 1.1
3  * The contents of this file are subject to the Mozilla Public License Version
4  * 1.1 (the "License"); you may not use this file except in compliance with
5  * the License. You may obtain a copy of the License at
6  * http://www.mozilla.org/MPL/
7  *
8  * Software distributed under the License is distributed on an "AS IS" basis,
9  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
10  * for the specific language governing rights and limitations under the
11  * License.
12  *
13  * The Original Code is Riot.
14  *
15  * The Initial Developer of the Original Code is
16  * Neteye GmbH.
17  * Portions created by the Initial Developer are Copyright (C) 2007
18  * the Initial Developer. All Rights Reserved.
19  *
20  * Contributor(s):
21  * Felix Gnass [fgnass at neteye dot de]
22  *
23  * ***** END LICENSE BLOCK ***** */

24 package org.riotfamily.website.cache;
25
26 import javax.servlet.http.HttpServletRequest JavaDoc;
27
28 import org.riotfamily.cachius.Cache;
29 import org.riotfamily.cachius.CacheItem;
30 import org.riotfamily.cachius.spring.CacheableControllerHandlerAdapter;
31 import org.riotfamily.riot.security.AccessController;
32
33 /**
34  * CacheableControllerHandlerAdapter subclass that adds a prefix to the
35  * cache-key when a request is performed by an authenticated Riot user.
36  *
37  * @author Felix Gnass [fgnass at neteye dot de]
38  * @since 6.5
39  */

40 public class RiotAwareCacheableControllerHandlerAdapter
41         extends CacheableControllerHandlerAdapter {
42
43     private String JavaDoc riotCacheKeyPrefix = "riot:";
44     
45     public RiotAwareCacheableControllerHandlerAdapter(Cache cache) {
46         super(cache);
47     }
48
49     /**
50      * Sets the prefix that is added to the cache-key if the request is
51      * performed by an authenticated Riot user.
52      */

53     public void setRiotCacheKeyPrefix(String JavaDoc riotCacheKeyPrefix) {
54         this.riotCacheKeyPrefix = riotCacheKeyPrefix;
55     }
56
57     protected CacheItem getCacheItem(String JavaDoc cacheKey,
58             HttpServletRequest JavaDoc request) {
59         
60         if (cacheKey != null && AccessController.isAuthenticatedUser()) {
61             cacheKey = riotCacheKeyPrefix + cacheKey;
62         }
63         return super.getCacheItem(cacheKey, request);
64     }
65 }
66
Popular Tags