You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by ks...@apache.org on 2009/10/03 18:13:59 UTC

svn commit: r821350 - in /webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets: client/ server/service/

Author: kstam
Date: Sat Oct  3 16:13:58 2009
New Revision: 821350

URL: http://svn.apache.org/viewvc?rev=821350&view=rev
Log:
JUDDI-204, Adding authentication to other nodes upon login.

Modified:
    webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/client/SubscriptionTreePanel.java
    webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/client/UDDISubscription.java
    webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/server/service/SecurityServiceImpl.java
    webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/server/service/SubscriptionServiceImpl.java

Modified: webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/client/SubscriptionTreePanel.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/client/SubscriptionTreePanel.java?rev=821350&r1=821349&r2=821350&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/client/SubscriptionTreePanel.java (original)
+++ webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/client/SubscriptionTreePanel.java Sat Oct  3 16:13:58 2009
@@ -49,15 +49,23 @@
 						if ("Up".equals(node.getStatus())) {
 							statusImg = UDDIBrowser.images.up().getHTML();
 						}
-						TreeItem nodeTree = new TreeItem(statusImg + node.getName());
+						TreeItem nodeTree = new TreeItem(statusImg + " " + node.getName());
 						nodeTree.setUserObject(node);
 						nodeTree.setStyleName("portlet-form-field-label");
 						nodeTree.setState(true);
 						nodeTree.setUserObject(node);
-						TreeItem nodeItem = new TreeItem(UDDIBrowser.images.description().getHTML() + " " + node.getDescription());
-						nodeItem.setStyleName("portlet-form-field-label");
-						nodeItem.setUserObject(node);
-						nodeTree.addItem(nodeItem);
+						
+						if (node.getStatus().startsWith("D")) {
+							TreeItem statItem = new TreeItem(node.getStatus());
+							statItem.setStyleName("portlet-form-field-label");
+							statItem.setUserObject(node);
+							nodeTree.addItem(statItem);
+						}
+						
+						TreeItem descItem = new TreeItem(UDDIBrowser.images.description().getHTML() + " " + node.getDescription());
+						descItem.setStyleName("portlet-form-field-label");
+						descItem.setUserObject(node);
+						nodeTree.addItem(descItem);
 						
 						for (Subscription subcription : node.getSubscriptions()) {
 							TreeItem subcriptionItem = new TreeItem(UDDIBrowser.images.subscription().getHTML() + " " 

Modified: webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/client/UDDISubscription.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/client/UDDISubscription.java?rev=821350&r1=821349&r2=821350&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/client/UDDISubscription.java (original)
+++ webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/client/UDDISubscription.java Sat Oct  3 16:13:58 2009
@@ -16,12 +16,7 @@
  */
 package org.apache.juddi.portlets.client;
 
-import java.util.Set;
-
 import org.apache.juddi.portlets.client.model.Subscription;
-import org.apache.juddi.v3.client.UDDIClerkManager;
-import org.apache.juddi.v3.client.config.ClientConfig;
-import org.apache.juddi.v3.client.config.XRegistration;
 
 import com.google.gwt.core.client.EntryPoint;
 import com.google.gwt.user.client.ui.DockPanel;

Modified: webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/server/service/SecurityServiceImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/server/service/SecurityServiceImpl.java?rev=821350&r1=821349&r2=821350&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/server/service/SecurityServiceImpl.java (original)
+++ webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/server/service/SecurityServiceImpl.java Sat Oct  3 16:13:58 2009
@@ -16,19 +16,26 @@
  */
 package org.apache.juddi.portlets.server.service;
 
+import java.lang.reflect.InvocationTargetException;
+import java.rmi.RemoteException;
 import java.security.Principal;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
+import org.apache.commons.configuration.ConfigurationException;
 import org.apache.juddi.portlets.client.service.SecurityResponse;
 import org.apache.juddi.portlets.client.service.SecurityService;
 import org.apache.juddi.v3.client.config.ClientConfig;
+import org.apache.juddi.v3.client.config.UDDIClerk;
 import org.apache.juddi.v3.client.transport.Transport;
+import org.apache.juddi.v3.client.transport.TransportException;
 import org.apache.log4j.Logger;
 import org.apache.log4j.helpers.Loader;
 import org.uddi.api_v3.AuthToken;
 import org.uddi.api_v3.GetAuthToken;
+import org.uddi.v3_service.DispositionReportFaultMessage;
 import org.uddi.v3_service.UDDISecurityPortType;
 
 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
@@ -41,20 +48,20 @@
 public class SecurityServiceImpl extends RemoteServiceServlet implements
 		SecurityService {
 
-	private Logger logger = Logger.getLogger(this.getClass());
+	private Logger log = Logger.getLogger(this.getClass());
 	private static final long serialVersionUID = 1L;
 
 	public SecurityResponse get(String username, String password) {
 		HttpServletRequest request = getThreadLocalRequest();
 		HttpSession session = request.getSession();
-		logger.debug("User " + username + " sending token request..");
+		log.debug("User " + username + " sending token request..");
 		SecurityResponse response = new SecurityResponse();
 		String token = (String) session.getAttribute("AuthToken");
 		if (username==null) {
 			username = (String) session.getAttribute("UserName");
 		}
 		Principal user = request.getUserPrincipal();
-		logger.debug("UserPrincipal " + user);
+		log.debug("UserPrincipal " + user);
 		if (username==null && user!=null) {
 			username = user.getName();
 			password = "";
@@ -65,28 +72,34 @@
 				return response;
 			} else {
 				try {
-					String clazz = ClientConfig.getInstance().getNodes().get("default").getProxyTransport();
-					Class<?> transportClass = Loader.loadClass(clazz);
-					Transport transport = (Transport) transportClass.newInstance();
-					UDDISecurityPortType securityService = transport.getUDDISecurityService();
-					GetAuthToken getAuthToken = new GetAuthToken();
-					getAuthToken.setUserID(username);
-					getAuthToken.setCred(password);
-					AuthToken authToken = securityService
-							.getAuthToken(getAuthToken);
-					logger.debug("User " + username + " obtained token="
-							+ authToken.getAuthInfo());
+					AuthToken authToken = login(username, password,"default");
 					response.setSuccess(true);
 					response.setResponse(authToken.getAuthInfo());
+					
 					session.setAttribute("AuthToken", authToken.getAuthInfo());
 					session.setAttribute("UserName", username);
+				
+					//upon success obtain tokens from other registries
+					Map<String, UDDIClerk> clerks = ClientConfig.getInstance().getClerks();
+					for (UDDIClerk clerk : clerks.values()) {
+						if (username.equals(clerk.getPublisher())) {
+							try {
+								AuthToken clerkToken = login(clerk.getPublisher(), clerk.getPassword(), clerk.getNode().getName());
+								//set the clerkToken into the session
+								session.setAttribute(clerk.getName(), clerkToken.getAuthInfo());
+							} catch (Exception e) {
+								log.warn("Could not obtain authToken for clerk=" + clerk.getName());
+							} 
+						}
+					}
+					
 				} catch (Exception e) {
-					logger.error("Could not obtain token. " + e.getMessage(), e);
+					log.error("Could not obtain token. " + e.getMessage(), e);
 					response.setSuccess(false);
 					response.setMessage(e.getMessage());
 					response.setErrorCode("101");
 				} catch (Throwable t) {
-					logger.error("Could not obtain token. " + t.getMessage(), t);
+					log.error("Could not obtain token. " + t.getMessage(), t);
 					response.setSuccess(false);
 					response.setMessage(t.getMessage());
 					response.setErrorCode("101");
@@ -99,4 +112,20 @@
 		response.setUsername(username);
 		return response;
 	}
+	
+	private AuthToken login(String username, String password, String node) throws ConfigurationException, ClassNotFoundException,
+		InstantiationException, IllegalAccessException, TransportException, DispositionReportFaultMessage, RemoteException, 
+		IllegalArgumentException, SecurityException, InvocationTargetException, NoSuchMethodException {
+		
+		String clazz = ClientConfig.getInstance().getNodes().get(node).getProxyTransport();
+		Class<?> transportClass = Loader.loadClass(clazz);
+		Transport transport = (Transport) transportClass.getConstructor(String.class).newInstance(node);
+		UDDISecurityPortType securityService = transport.getUDDISecurityService();
+		GetAuthToken getAuthToken = new GetAuthToken();
+		getAuthToken.setUserID(username);
+		getAuthToken.setCred(password);
+		AuthToken authToken = securityService.getAuthToken(getAuthToken);
+		log.info("User " + username + " obtained token from node=" + node);
+		return authToken;
+	}
 }

Modified: webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/server/service/SubscriptionServiceImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/server/service/SubscriptionServiceImpl.java?rev=821350&r1=821349&r2=821350&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/server/service/SubscriptionServiceImpl.java (original)
+++ webservices/juddi/trunk/juddi-console/uddi-portlets/src/main/java/org/apache/juddi/portlets/server/service/SubscriptionServiceImpl.java Sat Oct  3 16:13:58 2009
@@ -72,7 +72,8 @@
 			Map<String, UDDIClerk> clerks = ClientConfig.getInstance().getClerks();
 			for (UDDIClerk clerk : clerks.values()) {
 				if (publisher.equals(clerk.getPublisher())) {
-					Node modelNode = getSubscriptions(authToken, clerk.getNode());
+					
+					Node modelNode = getSubscriptions(session, clerk);
 					if (UP.equals(modelNode.getStatus())) {
 						response.setSuccess(true);
 					}
@@ -88,15 +89,18 @@
 		return response;
 	}
 	
-	private Node getSubscriptions(String authToken, UDDINode node) {
+	private Node getSubscriptions(HttpSession session, UDDIClerk clerk) {
 		
 		Node modelNode = new Node();
+		UDDINode node = clerk.getNode();
 		modelNode.setName(node.getName());
 		modelNode.setDescription(node.getDescription());
 		try {
 	    	 String clazz = ClientConfig.getInstance().getNodes().get(node.getName()).getProxyTransport();
 		     Class<?> transportClass = Loader.loadClass(clazz);
-	       	 Transport transport = (Transport) transportClass.newInstance(); 
+	       	 Transport transport = (Transport) transportClass.getConstructor(String.class).newInstance(node.getName()); 
+	       	 String authToken = (String) session.getAttribute(clerk.getName());
+	       	 
 	       	 UDDISubscriptionPortType subscriptionService = transport.getUDDISubscriptionService();
 	       	 List<org.uddi.sub_v3.Subscription> subscriptions = subscriptionService.getSubscriptions(authToken);
 	       	 for (org.uddi.sub_v3.Subscription subscription : subscriptions) {
@@ -117,7 +121,7 @@
 	       	 modelNode.setStatus(UP);
 	     } catch (Exception e) {
 	    	 logger.error("Could not obtain subscription due to " + e.getMessage(), e);
-	    	 modelNode.setStatus("Down, communication problem:" + e.getMessage());
+	    	 modelNode.setStatus("Down, communication problem: " + e.getMessage());
 	     } 
 		 return modelNode;
 	}
@@ -129,7 +133,7 @@
 		try {
 	    	 String clazz = ClientConfig.getInstance().getNodes().get(modelNode.getName()).getProxyTransport();
 	         Class<?> transportClass = Loader.loadClass(clazz);
-	       	 Transport transport = (Transport) transportClass.newInstance(); 
+	       	 Transport transport = (Transport) transportClass.getConstructor(String.class).newInstance(modelNode.getName()); 
 	       	 UDDISubscriptionPortType subscriptionService = transport.getUDDISubscriptionService();
 	       	 List<org.uddi.sub_v3.Subscription> subscriptionList = new ArrayList<org.uddi.sub_v3.Subscription>();
 	       	 org.uddi.sub_v3.Subscription subscription = new org.uddi.sub_v3.Subscription();
@@ -168,7 +172,5 @@
 		
 		return response;
 	}
-	
-	
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-cvs-help@ws.apache.org