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