You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2014/02/09 20:38:50 UTC
svn commit: r1566374 - in
/wookie/trunk/wookie-server/src/main/java/org/apache/wookie: controller/
feature/wave/ server/
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;
+ }
}
//