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) {