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 22:52:43 UTC
svn commit: r1566438 -
/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/oauth/oAuthClient.java
Author: scottbw
Date: Sun Feb 9 21:52:42 2014
New Revision: 1566438
URL: http://svn.apache.org/r1566438
Log:
Updated OAuth client to use SPI
Modified:
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/oauth/oAuthClient.java
Modified: wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/oauth/oAuthClient.java
URL: http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/oauth/oAuthClient.java?rev=1566438&r1=1566437&r2=1566438&view=diff
==============================================================================
--- wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/oauth/oAuthClient.java (original)
+++ wookie/trunk/wookie-server/src/main/java/org/apache/wookie/feature/oauth/oAuthClient.java Sun Feb 9 21:52:42 2014
@@ -27,11 +27,14 @@ import java.util.StringTokenizer;
import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.wookie.auth.AuthToken;
+import org.apache.wookie.auth.AuthTokenUtils;
+import org.apache.wookie.auth.InvalidAuthTokenException;
import org.apache.wookie.beans.IOAuthToken;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.services.OAuthService;
+import org.apache.wookie.services.WidgetMetadataService;
import org.apache.wookie.w3c.IParam;
-import org.apache.wookie.beans.IWidgetInstance;
-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.WidgetRuntimeHelper;
@@ -81,27 +84,31 @@ public class oAuthClient implements IFea
public String queryToken(String idKey) {
if(idKey == null) return "invalid";
- IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(idKey);
- if(widgetInstance==null) return "invalid";
- IOAuthToken oauthToken = persistenceManager.findOAuthToken(widgetInstance);
- if (oauthToken != null) {
- if (!oauthToken.isExpires())
- return oauthToken.getAccessToken() ;
+ try {
+ AuthToken authToken = AuthTokenUtils.decryptAuthToken(idKey);
+ IOAuthToken oauthToken = OAuthService.Factory.getInstance().getOAuthToken(authToken.toString());
+ if (oauthToken != null) {
+ if (!oauthToken.isExpires())
+ return oauthToken.getAccessToken() ;
+ }
+ } catch (InvalidAuthTokenException e) {
+ return "invalid";
}
+
return "invalid";
}
public void invalidateToken(String idKey) {
if(idKey == null) return;
- IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(idKey);
- if(widgetInstance==null) return;
-
- IOAuthToken oauthToken = persistenceManager.findOAuthToken(widgetInstance);
- if (oauthToken != null) {
- persistenceManager.delete(oauthToken);
+ try {
+ AuthToken authToken = AuthTokenUtils.decryptAuthToken(idKey);
+ IOAuthToken oauthToken = OAuthService.Factory.getInstance().getOAuthToken(authToken.toString());
+ if (oauthToken != null) {
+ OAuthService.Factory.getInstance().deleteOAuthToken(authToken.toString());
+ }
+ } catch (InvalidAuthTokenException e) {
+ return;
}
}
@@ -109,54 +116,59 @@ public class oAuthClient implements IFea
Map<String,String> params = parseParams(idKey_tokenBunch);
String idKey = params.get("id_key");
- IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(idKey);
-
- if (widgetInstance==null) {
- return "invalid";
- }
-
- Map<String, String> oAuthParams = queryXMLParams(idKey);
- if (oAuthParams == null) {
- return "invalid";
- }
-
- IOAuthToken oauthToken = persistenceManager.findOAuthToken(widgetInstance);
- if (oauthToken == null) oauthToken = persistenceManager.newInstance(IOAuthToken.class);
+ AuthToken authToken;
try {
- oauthToken.setAccessToken(params.get("access_token"));
- oauthToken.setExpires(System.currentTimeMillis() + 1000 * Integer.parseInt(params.get("expires_in")));
- oauthToken.setClientId(oAuthParams.get("clientId"));
- oauthToken.setAuthzUrl(oAuthParams.get("authzServer"));
- oauthToken.setWidgetInstance(widgetInstance);
- persistenceManager.save(oauthToken);
- return oauthToken.getAccessToken();
- } catch (Exception ex) {
+ authToken = AuthTokenUtils.decryptAuthToken(idKey);
+ Map<String, String> oAuthParams = queryXMLParams(idKey);
+ if (oAuthParams == null) {
+ return "invalid";
+ }
+
+ IOAuthToken oauthToken = OAuthService.Factory.getInstance().getOAuthToken(authToken.toString());
+ if (oauthToken == null){
+ oauthToken = OAuthService.Factory.getInstance().createOAuthToken(authToken.toString());
+ }
+ try {
+ oauthToken.setAccessToken(params.get("access_token"));
+ oauthToken.setExpires(System.currentTimeMillis() + 1000 * Integer.parseInt(params.get("expires_in")));
+ oauthToken.setClientId(oAuthParams.get("clientId"));
+ oauthToken.setAuthzUrl(oAuthParams.get("authzServer"));
+ OAuthService.Factory.getInstance().updateOAuthToken(authToken.toString(), oauthToken);
+ return oauthToken.getAccessToken();
+ } catch (Exception ex) {
+ return "invalid";
+ }
+ } catch (InvalidAuthTokenException e) {
return "invalid";
}
+
}
public Map<String, String> queryXMLParams(String idKey) {
- IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(idKey);
- if(widgetInstance==null) return null;
-
- Collection<org.apache.wookie.w3c.IFeature> widgetFeatures = widgetInstance.getWidget().getFeatures();
- org.apache.wookie.w3c.IFeature oAuthFeature = null;
- for (org.apache.wookie.w3c.IFeature aFeature : widgetFeatures) {
- if (getName().equals(aFeature.getName())) {
- oAuthFeature = aFeature;
- break;
+ try {
+ AuthToken authToken = AuthTokenUtils.decryptAuthToken(idKey);
+ IWidget widget = WidgetMetadataService.Factory.getInstance().getWidget(authToken.getWidgetId());
+
+ Collection<org.apache.wookie.w3c.IFeature> widgetFeatures = widget.getFeatures();
+ org.apache.wookie.w3c.IFeature oAuthFeature = null;
+ for (org.apache.wookie.w3c.IFeature aFeature : widgetFeatures) {
+ if (getName().equals(aFeature.getName())) {
+ oAuthFeature = aFeature;
+ break;
+ }
}
+ if (oAuthFeature == null) return null;
+
+ Collection<IParam> oAuthParams = oAuthFeature.getParameters();
+ Map<String, String> oAuthParamMap = new HashMap<String, String>();
+ for (IParam aParam : oAuthParams) {
+ oAuthParamMap.put(aParam.getName(), aParam.getValue());
+ }
+ return oAuthParamMap;
+
+ } catch (InvalidAuthTokenException e) {
+ return null;
}
- if (oAuthFeature == null) return null;
-
- Collection<IParam> oAuthParams = oAuthFeature.getParameters();
- Map<String, String> oAuthParamMap = new HashMap<String, String>();
- for (IParam aParam : oAuthParams) {
- oAuthParamMap.put(aParam.getName(), aParam.getValue());
- }
- return oAuthParamMap;
}
public Map<String, String> queryOAuthParams(Map<String, String> info) {