Author: scottbw
Date: Sun Feb  9 19:38:50 2014
New Revision: 1566374

URL: http://svn.apache.org/r1566374
Log:
updated to use AuthToken and SPIs instead of PersistenceManager and 
IWidgetInstance

Modified:
    
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/ParticipantsController.java
    
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/PropertiesController.java
    
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetInstancesController.java
    
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/wave/WaveAPIImpl.java
    
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/server/LocalizedResourceFilter.java

Modified: 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/ParticipantsController.java
URL: 
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/ParticipantsController.java?rev=1566374&r1=1566373&r2=1566374&view=diff
==============================================================================
--- 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/ParticipantsController.java
 (original)
+++ 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/ParticipantsController.java
 Sun Feb  9 19:38:50 2014
@@ -22,8 +22,8 @@ import javax.servlet.http.HttpServletRes
 import javax.servlet.http.HttpSession;
 
 import org.apache.log4j.Logger;
+import org.apache.wookie.auth.AuthToken;
 import org.apache.wookie.beans.IParticipant;
-import org.apache.wookie.beans.IWidgetInstance;
 import org.apache.wookie.beans.SharedContext;
 import org.apache.wookie.exceptions.InvalidParametersException;
 import org.apache.wookie.exceptions.ResourceDuplicationException;
@@ -31,6 +31,7 @@ import org.apache.wookie.exceptions.Reso
 import org.apache.wookie.exceptions.UnauthorizedAccessException;
 import org.apache.wookie.helpers.Notifier;
 import org.apache.wookie.helpers.ParticipantHelper;
+import org.apache.wookie.services.WidgetMetadataService;
 
 /**
  * Implementation of the REST API for working with Participants. For a 
description of the methods implemented by this controller see 
@@ -68,14 +69,16 @@ public class ParticipantsController exte
        
        @Override
        public void show(String resourceId,HttpServletRequest request, 
HttpServletResponse response) throws 
UnauthorizedAccessException,ResourceNotFoundException, IOException{
-               IWidgetInstance instance = 
WidgetInstancesController.findWidgetInstance(request);
-               if (instance == null) throw new ResourceNotFoundException();
-               IParticipant[] participants = new 
SharedContext(instance).getParticipants();
-    switch (format(request)) {
-       case XML: 
returnXml(ParticipantHelper.createXMLParticipantsDocument(participants),response);break;
-       case JSON: 
returnJson(ParticipantHelper.createJSONParticipantsDocument(participants),response);break;
-       default: 
returnXml(ParticipantHelper.createXMLParticipantsDocument(participants),response);break;
-    }
+               
+               AuthToken authToken = getAuthTokenFromRequest(request);
+               if (authToken == null) throw new ResourceNotFoundException();
+               IParticipant[] participants = new 
SharedContext(authToken).getParticipants();
+               
+               switch (format(request)) {
+               case XML: 
returnXml(ParticipantHelper.createXMLParticipantsDocument(participants),response);break;
+               case JSON: 
returnJson(ParticipantHelper.createJSONParticipantsDocument(participants),response);break;
+               default: 
returnXml(ParticipantHelper.createXMLParticipantsDocument(participants),response);break;
+               }
        }
 
        @Override
@@ -98,8 +101,16 @@ public class ParticipantsController exte
                        throws ResourceDuplicationException, 
InvalidParametersException,
                        UnauthorizedAccessException {
 
-               IWidgetInstance instance = 
WidgetInstancesController.findWidgetInstance(request);
-               if (instance == null) throw new InvalidParametersException();
+               //
+               // Verify the auth token
+               //
+               AuthToken authToken = getAuthTokenFromRequest(request);
+               if (authToken == null) throw new InvalidParametersException();
+               
+               //
+               // Check the widget is real
+               //
+               if 
(WidgetMetadataService.Factory.getInstance().getWidget(authToken.getWidgetId()) 
== null) throw new InvalidParametersException();
                
                HttpSession session = request.getSession(true);                 
                        
                String participantId = request.getParameter("participant_id"); 
//$NON-NLS-1$
@@ -113,8 +124,8 @@ public class ParticipantsController exte
                        throw new InvalidParametersException();
                }
 
-               if (new SharedContext(instance).addParticipant(participantId, 
participantDisplayName, participantThumbnailUrl, participantRole)){
-                       Notifier.notifyWidgets(session, instance, 
Notifier.PARTICIPANTS_UPDATED);
+               if (new SharedContext(authToken).addParticipant(participantId, 
participantDisplayName, participantThumbnailUrl, participantRole)){
+                       Notifier.notifyWidgets(session, authToken, 
Notifier.PARTICIPANTS_UPDATED);
                        _logger.debug("added user to widget instance: " + 
participantId);
                        return true;
                } else {
@@ -132,12 +143,22 @@ public class ParticipantsController exte
        public static boolean remove(HttpServletRequest request)
                        throws ResourceNotFoundException, 
UnauthorizedAccessException,
                        InvalidParametersException {
-               IWidgetInstance instance = 
WidgetInstancesController.findWidgetInstance(request);
-               if (instance == null) throw new InvalidParametersException();
+               
+               //
+               // Verify the auth token
+               //
+               AuthToken authToken = getAuthTokenFromRequest(request);
+               if (authToken == null) throw new InvalidParametersException();
+               
+               //
+               // Check the widget is real
+               //
+               if 
(WidgetMetadataService.Factory.getInstance().getWidget(authToken.getWidgetId()) 
== null) throw new InvalidParametersException();
+               
                HttpSession session = request.getSession(true);                 
                        
                String participantId = request.getParameter("participant_id"); 
//$NON-NLS-1$
-               if(new 
SharedContext(instance).removeParticipant(participantId)){
-                       Notifier.notifyWidgets(session, instance, 
Notifier.PARTICIPANTS_UPDATED);
+               if(new 
SharedContext(authToken).removeParticipant(participantId)){
+                       Notifier.notifyWidgets(session, authToken, 
Notifier.PARTICIPANTS_UPDATED);
                        return true;
                }else{
                        throw new ResourceNotFoundException();                  
        

Modified: 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/PropertiesController.java
URL: 
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/PropertiesController.java?rev=1566374&r1=1566373&r2=1566374&view=diff
==============================================================================
--- 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/PropertiesController.java
 (original)
+++ 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/PropertiesController.java
 Sun Feb  9 19:38:50 2014
@@ -22,17 +22,15 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.log4j.Logger;
-import org.apache.wookie.beans.IPreference;
+import org.apache.wookie.auth.AuthToken;
 import org.apache.wookie.beans.ISharedData;
-import org.apache.wookie.beans.IWidgetInstance;
 import org.apache.wookie.beans.SharedContext;
-import org.apache.wookie.beans.util.IPersistenceManager;
-import org.apache.wookie.beans.util.PersistenceManagerFactory;
 import org.apache.wookie.exceptions.InvalidParametersException;
 import org.apache.wookie.exceptions.ResourceDuplicationException;
 import org.apache.wookie.exceptions.ResourceNotFoundException;
 import org.apache.wookie.exceptions.UnauthorizedAccessException;
 import org.apache.wookie.helpers.Notifier;
+import org.apache.wookie.services.PreferencesService;
 
 /**
  * REST implementation for widgetInstance
@@ -80,16 +78,17 @@ public class PropertiesController extend
        protected void show(String resourceId, HttpServletRequest request,
                        HttpServletResponse response) throws 
ResourceNotFoundException,
                        UnauthorizedAccessException, IOException {
-               IWidgetInstance instance = 
WidgetInstancesController.findWidgetInstance(request);
-               if (instance == null) throw new ResourceNotFoundException();
+               
+               AuthToken authToken = getAuthTokenFromRequest(request);         
+               if (authToken == null) throw new ResourceNotFoundException();
                String name = request.getParameter("propertyname"); 
//$NON-NLS-1$
                if (name == null || name.trim().equals("")) throw new 
ResourceNotFoundException();
                String value = null;
                // Note that preferences and shared data keys may be the same!
                // We let the shared data values override.
-               IPreference pref = instance.getPreference(name);
-               if (pref != null) value = pref.getValue();
-               ISharedData data = new 
SharedContext(instance).getSharedData(name);
+               
+               value = 
PreferencesService.Factory.getInstance().getPreference(authToken.toString(), 
name);
+               ISharedData data = new 
SharedContext(authToken).getSharedData(name);
                if (data != null) value = data.getDvalue();
                if (value == null) throw new ResourceNotFoundException();
                PrintWriter out = response.getWriter();
@@ -101,16 +100,18 @@ public class PropertiesController extend
                        throws 
ResourceNotFoundException,UnauthorizedAccessException,InvalidParametersException
 {
                if (request.getParameter("value") != null) throw new 
InvalidParametersException();//$NON-NLS-1$
                String name = request.getParameter("propertyname"); 
//$NON-NLS-1$
-               IWidgetInstance instance = 
WidgetInstancesController.findWidgetInstance(request);
-               if (instance == null) throw new InvalidParametersException();
+               
+               AuthToken authToken = getAuthTokenFromRequest(request);
+               if (authToken == null) throw new InvalidParametersException();
+               
                if (name == null || name.trim().equals("")) throw new 
InvalidParametersException();
                
                boolean found = false;
                if (isPublic(request)){ 
-                       found = new 
SharedContext(instance).removeSharedData(name);
-                       Notifier.notifyWidgets(request.getSession(), instance, 
Notifier.STATE_UPDATED);
+                       found = new 
SharedContext(authToken).removeSharedData(name);
+                       Notifier.notifyWidgets(request.getSession(), authToken, 
Notifier.STATE_UPDATED);
                } else {
-                       found = updatePreference(instance, name, null);
+                       found = updatePreference(authToken, name, null);
                }
                if (!found) throw new ResourceNotFoundException();
                return true;
@@ -141,15 +142,17 @@ public class PropertiesController extend
        throws InvalidParametersException,UnauthorizedAccessException {
                String name = request.getParameter("propertyname"); 
//$NON-NLS-1$
                String value = request.getParameter("propertyvalue"); 
//$NON-NLS-1$
-               IWidgetInstance instance = 
WidgetInstancesController.findWidgetInstance(request);
-               if (instance == null) throw new InvalidParametersException();
+               
+               AuthToken authToken = getAuthTokenFromRequest(request);
+               if (authToken == null) throw new InvalidParametersException();
+               
                if (name == null || name.trim().equals("")) throw new 
InvalidParametersException();
                
                if (isPublic(request)){ 
-                 new SharedContext(instance).updateSharedData(name, value, 
false);
-                       Notifier.notifyWidgets(request.getSession(), instance, 
Notifier.STATE_UPDATED);
+                   new SharedContext(authToken).updateSharedData(name, value, 
false);
+                       Notifier.notifyWidgets(request.getSession(), authToken, 
Notifier.STATE_UPDATED);
                } else {
-                       updatePreference(instance, name, value);
+                       updatePreference(authToken, name, value);
                }
        }
 
@@ -159,29 +162,11 @@ public class PropertiesController extend
         * @param name
         * @param value
         */
-       public static boolean updatePreference(IWidgetInstance widgetInstance, 
String name, String value){
-        IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
+       public static boolean updatePreference(AuthToken authToken, String 
name, String value){
         boolean found=false;
-        IPreference preference = widgetInstance.getPreference(name);
-        if (preference != null)
-        {
-            if(value==null || value.equalsIgnoreCase("null")){  
-                widgetInstance.getPreferences().remove(preference);
-            }
-            else{    
-                preference.setValue(value);
-            }
-            found=true;
-        }
-        if(!found){  
-               if (value != null){
-                preference = persistenceManager.newInstance(IPreference.class);
-                       preference.setName(name);
-                       preference.setValue(value);
-                       widgetInstance.getPreferences().add(preference);
-               }
-        }  
-        persistenceManager.save(widgetInstance);
+        String preference = 
PreferencesService.Factory.getInstance().getPreference(authToken.toString(), 
name);        
+        if (preference != null) found=true;
+           
PreferencesService.Factory.getInstance().setPreference(authToken.toString(), 
name, value);
         return found;
        }
 

Modified: 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetInstancesController.java
URL: 
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetInstancesController.java?rev=1566374&r1=1566373&r2=1566374&view=diff
==============================================================================
--- 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetInstancesController.java
 (original)
+++ 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetInstancesController.java
 Sun Feb  9 19:38:50 2014
@@ -30,8 +30,8 @@ import javax.servlet.http.HttpSession;
 import org.apache.commons.configuration.Configuration;
 import org.apache.log4j.Logger;
 import org.apache.wookie.Messages;
+import org.apache.wookie.auth.AuthToken;
 import org.apache.wookie.beans.ISharedData;
-import org.apache.wookie.beans.IWidget;
 import org.apache.wookie.beans.IWidgetInstance;
 import org.apache.wookie.beans.SharedContext;
 import org.apache.wookie.beans.util.IPersistenceManager;
@@ -46,6 +46,7 @@ import org.apache.wookie.helpers.WidgetI
 import org.apache.wookie.helpers.WidgetInstanceHelper;
 import org.apache.wookie.helpers.WidgetRuntimeHelper;
 import org.apache.wookie.server.LocaleHandler;
+import org.apache.wookie.services.SharedContextService;
 import org.apache.wookie.w3c.IContent;
 import org.apache.wookie.w3c.util.LocalizationUtils;
 
@@ -196,14 +197,12 @@ public class WidgetInstancesController e
         * @param request
         * @throws InvalidParametersException
         */
-       public static void doStopWidget(HttpServletRequest request) throws 
InvalidParametersException{                          
-         IWidgetInstance instance = 
WidgetInstancesController.findWidgetInstance(request);     
-         if(instance!=null){
-           lockWidgetInstance(instance);
-           Notifier.notifyWidgets(request.getSession(), instance, 
Notifier.STATE_UPDATED);
-         }else{
-           throw new InvalidParametersException();
-         }
+       public static void doStopWidget(HttpServletRequest request) throws 
InvalidParametersException{
+               AuthToken authToken = getAuthTokenFromRequest(request);
+               if (authToken == null) throw new InvalidParametersException();
+               // TODO
+           // lockWidgetInstance(instance);
+           Notifier.notifyWidgets(request.getSession(), authToken, 
Notifier.STATE_UPDATED);
        }
 
        /**
@@ -212,13 +211,11 @@ public class WidgetInstancesController e
         * @throws InvalidParametersException
         */
        public static void doResumeWidget(HttpServletRequest request) throws 
InvalidParametersException{                                        
-         IWidgetInstance instance = 
WidgetInstancesController.findWidgetInstance(request);
-         if(instance!=null){
-           unlockWidgetInstance(instance);
-           Notifier.notifyWidgets(request.getSession(), instance, 
Notifier.STATE_UPDATED);
-         }else{
-           throw new InvalidParametersException();
-         }
+               AuthToken authToken = getAuthTokenFromRequest(request);
+               if (authToken == null) throw new InvalidParametersException();
+               // TODO
+           // unlockWidgetInstance(instance);
+           Notifier.notifyWidgets(request.getSession(), authToken, 
Notifier.STATE_UPDATED);
        }
        
        public static boolean deleteWidgetInstance(String resourceId, 
HttpServletRequest request) throws InvalidParametersException, 
ResourceNotFoundException {
@@ -255,7 +252,6 @@ public class WidgetInstancesController e
                String apiKey = request.getParameter("api_key"); //$NON-NLS-1$
                String serviceType = request.getParameter("servicetype"); 
//$NON-NLS-1$
                String widgetId = request.getParameter("widgetid"); 
//$NON-NLS-1$
-               sharedDataKey = 
SharedDataHelper.getInternalSharedDataKey(apiKey, widgetId, sharedDataKey);
                HttpSession session = request.getSession(true);                 
                        
                Messages localizedMessages = 
LocaleHandler.localizeMessages(request);
                                        
@@ -309,28 +305,18 @@ public class WidgetInstancesController e
         * @throws InvalidParametersException
         */
        public static void cloneSharedData(HttpServletRequest request) throws 
InvalidParametersException{
-               IWidgetInstance instance = 
WidgetInstancesController.findWidgetInstance(request);       
-               if (instance == null){
-      throw new InvalidParametersException();          
-               }
+               AuthToken authToken = getAuthTokenFromRequest(request); 
+               if (authToken == null) throw new InvalidParametersException();  
        
+
                String sharedDataKey = request.getParameter("shareddatakey");   
 //$NON-NLS-1$; 
                String cloneSharedDataKey = 
request.getParameter("cloneshareddatakey");
                if (sharedDataKey == null || sharedDataKey.trim().equals("") || 
cloneSharedDataKey == null || 
cloneSharedDataKey.trim().equals("")){//$NON-NLS-1$ //$NON-NLS-2$
-      throw new InvalidParametersException();
+                       throw new InvalidParametersException();
                }
-               String cloneKey = 
SharedDataHelper.getInternalSharedDataKey(instance, cloneSharedDataKey);
-        IWidget widget = instance.getWidget();
-        IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-               for (ISharedData sharedData : new 
SharedContext(instance).getSharedData())
-               {
-                   ISharedData clone = 
persistenceManager.newInstance(ISharedData.class);
-            clone.setDkey(sharedData.getDkey());
-            clone.setDvalue(sharedData.getDvalue());
-            clone.setSharedDataKey(cloneKey);
-            persistenceManager.save(clone);
+               for (ISharedData sharedData : new 
SharedContext(authToken).getSharedData())
+               {       
+                       
SharedContextService.Factory.getInstance().updateSharedData(authToken.getApiKey(),
 authToken.getWidgetId(), cloneSharedDataKey, sharedData.getDkey(), 
sharedData.getDvalue(), false);
                }
-               boolean ok = persistenceManager.save(widget);
-               if (!ok) throw new InvalidParametersException();
        }
        
        public synchronized static void lockWidgetInstance(IWidgetInstance 
instance){

Modified: 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/wave/WaveAPIImpl.java
URL: 
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/wave/WaveAPIImpl.java?rev=1566374&r1=1566373&r2=1566374&view=diff
==============================================================================
--- 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/wave/WaveAPIImpl.java
 (original)
+++ 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/wave/WaveAPIImpl.java
 Sun Feb  9 19:38:50 2014
@@ -20,17 +20,18 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.wookie.Messages;
+import org.apache.wookie.auth.AuthToken;
+import org.apache.wookie.auth.AuthTokenUtils;
+import org.apache.wookie.auth.InvalidAuthTokenException;
 import org.apache.wookie.beans.IParticipant;
 import org.apache.wookie.beans.ISharedData;
-import org.apache.wookie.beans.IWidgetInstance;
 import org.apache.wookie.beans.SharedContext;
-import org.apache.wookie.beans.util.IPersistenceManager;
-import org.apache.wookie.beans.util.PersistenceManagerFactory;
 import org.apache.wookie.feature.IFeature;
 import org.apache.wookie.helpers.Notifier;
 import org.apache.wookie.helpers.ParticipantHelper;
 import org.apache.wookie.helpers.WidgetRuntimeHelper;
 import org.apache.wookie.server.LocaleHandler;
+import org.apache.wookie.services.SharedContextService;
 import org.directwebremoting.WebContextFactory;
 
 /**
@@ -91,16 +92,16 @@ public class WaveAPIImpl implements IFea
                        state.put("message", 
localizedMessages.getString("WidgetAPIImpl.0"));    //$NON-NLS-1$
                        return state;
                }
-               // check if instance is valid
-               IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-               IWidgetInstance widgetInstance = 
persistenceManager.findWidgetInstanceByIdKey(id_key);
-               if (widgetInstance == null){
+               // check if token is valid
+               try {
+                       AuthToken authToken = 
AuthTokenUtils.decryptAuthToken(id_key);
+                       for (ISharedData data: 
SharedContextService.Factory.getInstance().getSharedData(authToken.getApiKey(), 
authToken.getWidgetId(), authToken.getContextId())){
+                               state.put(data.getDkey(), data.getDvalue());
+                       }
+                       
+               } catch (InvalidAuthTokenException e) {
                        state.put("message", 
localizedMessages.getString("WidgetAPIImpl.0"));    //$NON-NLS-1$
-                       return state;                   
-               }
-               //
-               for(ISharedData data : new 
SharedContext(widgetInstance).getSharedData()){
-                       state.put(data.getDkey(), data.getDvalue());
+                       return state;
                }
                return state;
        }
@@ -152,24 +153,29 @@ public class WaveAPIImpl implements IFea
        public String submitDelta(String id_key, Map<String,String>map){
                HttpServletRequest request = 
WebContextFactory.get().getHttpServletRequest();
                Messages localizedMessages = 
LocaleHandler.localizeMessages(request);
-        IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-        IWidgetInstance widgetInstance = 
persistenceManager.findWidgetInstanceByIdKey(id_key);
-               if(widgetInstance == null) return 
localizedMessages.getString("WidgetAPIImpl.0"); //$NON-NLS-1$
-               if(widgetInstance.isLocked()) return 
localizedMessages.getString("WidgetAPIImpl.2"); //$NON-NLS-1$
-               //
-               for (String key: map.keySet())
-                 new SharedContext(widgetInstance).updateSharedData(key, 
map.get(key), false);
-               Notifier.notifySiblings(widgetInstance);
-               return "okay"; //$NON-NLS-1$
-       }
-       
-       private SharedContext getSharedContext(String id_key){
-        IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-        IWidgetInstance widgetInstance = 
persistenceManager.findWidgetInstanceByIdKey(id_key);
-               if (widgetInstance != null){
-                       return new SharedContext(widgetInstance);
+               
+               try {
+                       AuthToken authToken = 
AuthTokenUtils.decryptAuthToken(id_key);
+                       
+                       // TODO
+                       // if(widgetInstance.isLocked()) return 
localizedMessages.getString("WidgetAPIImpl.2"); //$NON-NLS-1$
+                       for (String key: map.keySet())
+                                 new 
SharedContext(authToken).updateSharedData(key, map.get(key), false);
+                               Notifier.notifySiblings(authToken);
+                               return "okay"; //$NON-NLS-1$
+               } catch (InvalidAuthTokenException e) {
+                       return localizedMessages.getString("WidgetAPIImpl.0"); 
//$NON-NLS-1$
+               }
+
+       }
+       
+       private SharedContext getSharedContext(String id_key){          
+               try {
+                       AuthToken authToken = 
AuthTokenUtils.decryptAuthToken(id_key);
+                       return new SharedContext(authToken);
+               } catch (InvalidAuthTokenException e) {
+                       return null;
                }
-               return null;
        }
 
 }

Modified: 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/server/LocalizedResourceFilter.java
URL: 
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/server/LocalizedResourceFilter.java?rev=1566374&r1=1566373&r2=1566374&view=diff
==============================================================================
--- 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/server/LocalizedResourceFilter.java
 (original)
+++ 
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/server/LocalizedResourceFilter.java
 Sun Feb  9 19:38:50 2014
@@ -30,10 +30,10 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.configuration.Configuration;
+import org.apache.wookie.auth.AuthToken;
+import org.apache.wookie.auth.AuthTokenUtils;
+import org.apache.wookie.auth.InvalidAuthTokenException;
 import org.apache.wookie.beans.IWidget;
-import org.apache.wookie.beans.IWidgetInstance;
-import org.apache.wookie.beans.util.IPersistenceManager;
-import org.apache.wookie.beans.util.PersistenceManagerFactory;
 import org.apache.wookie.services.WidgetMetadataService;
 import org.apache.wookie.w3c.util.LocalizationUtils;
 import org.apache.wookie.w3c.util.WidgetPackageUtils;
@@ -244,14 +244,20 @@ public class LocalizedResourceFilter imp
     //
     String idkey = ((HttpServletRequest) request).getParameter("idkey");
     if (idkey != null){
-      IPersistenceManager persistenceManager = 
PersistenceManagerFactory.getPersistenceManager();
-      IWidgetInstance instance = 
persistenceManager.findWidgetInstanceByIdKey(idkey);
-      if (instance != null) {
-        filterConfig.getServletContext().setAttribute("widget-id", 
instance.getWidget().getIdentifier());
-        
filterConfig.getServletContext().setAttribute("widget-instance-locale", 
instance.getLang());
-        filterConfig.getServletContext().setAttribute("widget-default-locale", 
instance.getWidget().getDefaultLocale());
-        return instance.getWidget();
-      }
+       AuthToken authToken;
+               try {
+                       authToken = AuthTokenUtils.decryptAuthToken(idkey);
+               IWidget widget = 
WidgetMetadataService.Factory.getInstance().getWidget(authToken.getWidgetId());
+               filterConfig.getServletContext().setAttribute("widget-id", 
widget.getIdentifier());
+               
filterConfig.getServletContext().setAttribute("widget-instance-locale", 
authToken.getLang());
+               
filterConfig.getServletContext().setAttribute("widget-default-locale", 
widget.getDefaultLocale());
+               return widget;
+               } catch (InvalidAuthTokenException e) {
+                       //
+                       // A fake token was present in the request
+                       //
+                       return null;
+               }
     }
 
     //


Reply via email to