Author: scottbw
Date: Sun Feb 9 19:35:47 2014
New Revision: 1566370
URL: http://svn.apache.org/r1566370
Log:
Changed methods to use AuthToken instead of IWidgetInstance
Modified:
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/util/SiblingPageNormalizer.java
Modified:
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/util/SiblingPageNormalizer.java
URL:
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/util/SiblingPageNormalizer.java?rev=1566370&r1=1566369&r2=1566370&view=diff
==============================================================================
---
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/util/SiblingPageNormalizer.java
(original)
+++
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/util/SiblingPageNormalizer.java
Sun Feb 9 19:35:47 2014
@@ -15,11 +15,13 @@ package org.apache.wookie.util;
import java.util.HashMap;
+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.helpers.SharedDataHelper;
+import org.apache.wookie.services.WidgetMetadataService;
import org.directwebremoting.impl.DefaultPageNormalizer;
/**
@@ -44,6 +46,16 @@ org.directwebremoting.extend.PageNormali
* @param instance the instance
* @return the normalized URI of the widget instance
*/
+ public String getNormalizedPage(AuthToken authToken){
+ IWidget widget =
WidgetMetadataService.Factory.getInstance().getWidget(authToken.getWidgetId());
+ return super.normalizePage(IWidget.Utilities.getUrl(widget,
authToken.getLang()))+"?"+authToken.getApiKey()+"="+authToken.getContextId();
+ }
+
+ /**
+ * Return the normalized (sibling-friendly) URI for a given widget
instance
+ * @param instance the instance
+ * @return the normalized URI of the widget instance
+ */
public String getNormalizedPage(IWidgetInstance instance){
return
super.normalizePage(IWidget.Utilities.getUrl(instance.getWidget(),
instance.getLang()))+"?"+instance.getApiKey()+"="+SharedDataHelper.getInternalSharedDataKey(instance);
@@ -68,17 +80,18 @@ org.directwebremoting.extend.PageNormali
// API key and Shared Data Key: in combination with
// the Widget URL it uniquely identifies sibling instances
- IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance =
persistenceManager.findWidgetInstanceByIdKey((String)parmsMap.get("idkey"));
- // Invalid instance
- if(widgetInstance==null) return super.normalizePage(page);
-
- // Strip off query and add on API key and shared data key
- setNormalizeIncludesQueryString(false);
- page = super.normalizePage(page);
- page +=
"?"+widgetInstance.getApiKey()+"="+SharedDataHelper.getInternalSharedDataKey(widgetInstance);
- setNormalizeIncludesQueryString(true);
- return page;
+ try {
+ AuthToken authToken =
AuthTokenUtils.decryptAuthToken(parmsMap.get("idkey"));
+ // Strip off query and add on API key and shared data
key
+ setNormalizeIncludesQueryString(false);
+ page = super.normalizePage(page);
+ page +=
"?"+authToken.getApiKey()+"="+authToken.getContextId();
+ setNormalizeIncludesQueryString(true);
+ return page;
+ } catch (InvalidAuthTokenException e) {
+ // Invalid instance
+ return super.normalizePage(page);
+ }
}
private void initMap(String search) {