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