Author: chathuri
Date: Wed Dec  5 18:48:44 2012
New Revision: 1417586

URL: http://svn.apache.org/viewvc?rev=1417586&view=rev
Log:
applying patch by amila for AIRAVATA-668

Modified:
    
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/RequestContext.java
    
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/WorkflowContext.java
    
airavata/trunk/modules/rest/service/src/main/java/org/apache/airavata/services/registry/rest/security/basic/BasicAccessAuthenticator.java
    airavata/trunk/modules/rest/webapp/src/main/webapp/user-store/index.jsp
    
airavata/trunk/modules/security/src/main/java/org/apache/airavata/security/AbstractAuthenticator.java

Modified: 
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/RequestContext.java
URL: 
http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/RequestContext.java?rev=1417586&r1=1417585&r2=1417586&view=diff
==============================================================================
--- 
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/RequestContext.java
 (original)
+++ 
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/RequestContext.java
 Wed Dec  5 18:48:44 2012
@@ -21,6 +21,18 @@ public class RequestContext {
      */
     private String userIdentity;
 
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    /**
+     * The gateway id.
+     */
+    private String gatewayId;
 
 
 }

Modified: 
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/WorkflowContext.java
URL: 
http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/WorkflowContext.java?rev=1417586&r1=1417585&r2=1417586&view=diff
==============================================================================
--- 
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/WorkflowContext.java
 (original)
+++ 
airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/context/WorkflowContext.java
 Wed Dec  5 18:48:44 2012
@@ -48,4 +48,15 @@ public class WorkflowContext {
 
         return null;
     }
+
+    public static synchronized String getGatewayId() {
+
+        RequestContext requestContext = (RequestContext) userThreadLocal.get();
+
+        if (requestContext != null) {
+            return requestContext.getGatewayId();
+        }
+
+        return null;
+    }
 }

Modified: 
airavata/trunk/modules/rest/service/src/main/java/org/apache/airavata/services/registry/rest/security/basic/BasicAccessAuthenticator.java
URL: 
http://svn.apache.org/viewvc/airavata/trunk/modules/rest/service/src/main/java/org/apache/airavata/services/registry/rest/security/basic/BasicAccessAuthenticator.java?rev=1417586&r1=1417585&r2=1417586&view=diff
==============================================================================
--- 
airavata/trunk/modules/rest/service/src/main/java/org/apache/airavata/services/registry/rest/security/basic/BasicAccessAuthenticator.java
 (original)
+++ 
airavata/trunk/modules/rest/service/src/main/java/org/apache/airavata/services/registry/rest/security/basic/BasicAccessAuthenticator.java
 Wed Dec  5 18:48:44 2012
@@ -20,8 +20,9 @@
 
 package org.apache.airavata.services.registry.rest.security.basic;
 
-import org.apache.airavata.common.context.RequestContext;
-import org.apache.airavata.common.context.WorkflowContext;
+import org.apache.airavata.common.exception.ServerSettingsException;
+import org.apache.airavata.common.utils.Constants;
+import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.security.AbstractAuthenticator;
 import org.apache.airavata.security.AuthenticationException;
 import org.apache.airavata.security.UserStoreException;
@@ -45,7 +46,6 @@ public class BasicAccessAuthenticator ex
      * Header names
      */
     private static final String AUTHORISATION_HEADER_NAME = "Authorization";
-    public static final String USER_IN_SESSION = "userName";
 
     public BasicAccessAuthenticator() {
         super(AUTHENTICATOR_NAME);
@@ -112,17 +112,16 @@ public class BasicAccessAuthenticator ex
         }
     }
 
-    protected void addUserToSession(String userName, HttpServletRequest 
servletRequest) {
+    protected void addUserToSession(String userName, HttpServletRequest 
servletRequest) throws AuthenticationException {
+
+        String gatewayId = getGatewayId(servletRequest);
 
         if (servletRequest.getSession() != null) {
-            servletRequest.getSession().setAttribute(USER_IN_SESSION, 
userName);
+            
servletRequest.getSession().setAttribute(Constants.USER_IN_SESSION, userName);
+            servletRequest.getSession().setAttribute(Constants.GATEWAY_NAME, 
gatewayId);
         }
 
-        // Add user to context - TODO We may need to abstract out this
-        RequestContext requestContext = new RequestContext();
-        requestContext.setUserIdentity(userName);
-
-        WorkflowContext.set(requestContext);
+        addToContext(userName, gatewayId);
     }
 
     @Override
@@ -182,7 +181,19 @@ public class BasicAccessAuthenticator ex
 
         HttpSession httpSession = httpServletRequest.getSession();
 
-        return httpSession != null && 
httpSession.getAttribute(USER_IN_SESSION) != null;
+        boolean seenInSession = false;
+
+        if (httpSession != null) {
+            String user = 
(String)httpSession.getAttribute(Constants.USER_IN_SESSION);
+            String gateway = 
(String)httpSession.getAttribute(Constants.GATEWAY_NAME);
+
+            if (user != null && gateway != null) {
+                addToContext(user, gateway);
+                seenInSession = true;
+            }
+        }
+
+        return seenInSession;
 
     }
 
@@ -194,6 +205,20 @@ public class BasicAccessAuthenticator ex
         return (httpServletRequest.getHeader(AUTHORISATION_HEADER_NAME) != 
null);
     }
 
+    private String getGatewayId(HttpServletRequest request) throws 
AuthenticationException {
+        String gatewayId = request.getHeader(Constants.GATEWAY_NAME);
+
+        if (gatewayId == null) {
+            try {
+                gatewayId = ServerSettings.getDefaultGatewayId();
+            } catch (ServerSettingsException e) {
+                throw new AuthenticationException("Unable to retrieve default 
gateway", e);
+            }
+        }
+
+        return gatewayId;
+    }
+
     @Override
     public void configure(Node node) throws RuntimeException {
 

Modified: 
airavata/trunk/modules/rest/webapp/src/main/webapp/user-store/index.jsp
URL: 
http://svn.apache.org/viewvc/airavata/trunk/modules/rest/webapp/src/main/webapp/user-store/index.jsp?rev=1417586&r1=1417585&r2=1417586&view=diff
==============================================================================
--- airavata/trunk/modules/rest/webapp/src/main/webapp/user-store/index.jsp 
(original)
+++ airavata/trunk/modules/rest/webapp/src/main/webapp/user-store/index.jsp Wed 
Dec  5 18:48:44 2012
@@ -2,13 +2,14 @@
 <%@ page 
import="org.apache.airavata.services.registry.rest.security.basic.BasicAccessAuthenticator"
 %>
 <%@ page 
import="org.apache.airavata.services.registry.rest.security.HttpAuthenticatorFilter"
 %>
 <%@ page import="java.util.List" %>
+<%@ page import="org.apache.airavata.common.utils.Constants" %>
 <%
 
     LocalUserStore localUserStore = 
(LocalUserStore)session.getAttribute("LocalUserStore");
 
     if (localUserStore == null) {
 
-        String operatingUser = (String) 
session.getAttribute(BasicAccessAuthenticator.USER_IN_SESSION);
+        String operatingUser = (String) 
session.getAttribute(Constants.USER_IN_SESSION);
 
         if (operatingUser == null || !operatingUser.equals("admin")) {
             HttpAuthenticatorFilter.sendUnauthorisedError(response, 
"Insufficient privileges to perform user operations." +

Modified: 
airavata/trunk/modules/security/src/main/java/org/apache/airavata/security/AbstractAuthenticator.java
URL: 
http://svn.apache.org/viewvc/airavata/trunk/modules/security/src/main/java/org/apache/airavata/security/AbstractAuthenticator.java?rev=1417586&r1=1417585&r2=1417586&view=diff
==============================================================================
--- 
airavata/trunk/modules/security/src/main/java/org/apache/airavata/security/AbstractAuthenticator.java
 (original)
+++ 
airavata/trunk/modules/security/src/main/java/org/apache/airavata/security/AbstractAuthenticator.java
 Wed Dec  5 18:48:44 2012
@@ -1,5 +1,7 @@
 package org.apache.airavata.security;
 
+import org.apache.airavata.common.context.RequestContext;
+import org.apache.airavata.common.context.WorkflowContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -83,6 +85,15 @@ public abstract class AbstractAuthentica
         return authenticated;
     }
 
+    protected void addToContext (String userName, String gatewayId) {
+
+        RequestContext requestContext = new RequestContext();
+        requestContext.setUserIdentity(userName);
+        requestContext.setGatewayId(gatewayId);
+
+        WorkflowContext.set(requestContext);
+    }
+
 
     /**
      * Gets the current time converted to format in DATE_TIME_FORMAT.


Reply via email to