Yair Zaslavsky has uploaded a new change for review.

Change subject: aaa: Intorduce filters
......................................................................

aaa: Intorduce filters

Introducing filters to unify AAA flows for UI and REST-API

Change-Id: Ia5536d123b6407acf41b6946dde796bd67d1e073
Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com>
---
A 
backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/SessionValidationFilter.java
1 file changed, 59 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/22/28022/1

diff --git 
a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/SessionValidationFilter.java
 
b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/SessionValidationFilter.java
new file mode 100644
index 0000000..3bedf90
--- /dev/null
+++ 
b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/SessionValidationFilter.java
@@ -0,0 +1,59 @@
+package org.ovirt.engine.core.aaa;
+
+import java.io.IOException;
+
+import javax.naming.InitialContext;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+import org.ovirt.engine.core.common.interfaces.BackendLocal;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
+import org.ovirt.engine.core.common.queries.VdcQueryType;
+
+public class SessionValidationFilter implements Filter {
+
+    public final static String ENGINE_SESSION_ID_KEY = "engineSessionId";
+
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+    }
+
+    @Override
+    public void doFilter(ServletRequest request, ServletResponse response, 
FilterChain chain) throws IOException,
+            ServletException {
+        HttpSession httpSession = ((HttpServletRequest) request).getSession();
+        String engineSession = (String) 
httpSession.getAttribute(ENGINE_SESSION_ID_KEY);
+        boolean authenticated = false;
+        if (engineSession == null) {
+            chain.doFilter(request, response);
+        } else {
+            try {
+                InitialContext ctx = new InitialContext();
+                BackendLocal backend = (BackendLocal) 
ctx.lookup("java:global/engine/bll/Backend!org.ovirt.engine.core.common.interfaces.BackendLocal");
+                VdcQueryParametersBase parameters = new 
VdcQueryParametersBase();
+                parameters.setSessionId(engineSession);
+                if (backend.runPublicQuery(VdcQueryType.ValidateSession, 
parameters).getSucceeded()) {
+                    authenticated = true;
+                }
+                ctx.close();
+                httpSession.setAttribute("authenticated", authenticated);
+                chain.doFilter(request, response);
+
+            } catch (Exception ex) {
+
+            }
+        }
+    }
+
+    @Override
+    public void destroy() {
+    }
+
+}


-- 
To view, visit http://gerrit.ovirt.org/28022
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia5536d123b6407acf41b6946dde796bd67d1e073
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to