Author: tchemit Date: 2012-04-10 16:00:58 +0200 (Tue, 10 Apr 2012) New Revision: 3244 Url: http://chorem.org/repositories/revision/pollen/3244 Log: fix shiro filter init Modified: branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenApplicationListener.java branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenUIUtils.java branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/security/AbstractPollenAuthorization.java Modified: branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenApplicationListener.java =================================================================== --- branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenApplicationListener.java 2012-04-06 17:36:59 UTC (rev 3243) +++ branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenApplicationListener.java 2012-04-10 14:00:58 UTC (rev 3244) @@ -71,6 +71,10 @@ log.info("Application starting at " + new Date() + "..."); } + // keep the servlet context to init shiro filters + //FIXME tchemit 2012-04-10 change this when shiro will be properly init :( + PollenUIUtils.setServletContext(sce.getServletContext()); + // init I18n DefaultI18nInitializer i18nInitializer = new DefaultI18nInitializer("pollen-i18n"); Modified: branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenUIUtils.java =================================================================== --- branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenUIUtils.java 2012-04-06 17:36:59 UTC (rev 3243) +++ branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenUIUtils.java 2012-04-10 14:00:58 UTC (rev 3244) @@ -26,6 +26,7 @@ import org.apache.struts2.ServletActionContext; import org.chorem.pollen.PollenTechnicalException; +import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.net.MalformedURLException; @@ -39,6 +40,19 @@ */ public class PollenUIUtils { + /** + * Keep the servlet context + */ + private static ServletContext servletContext; + + public static ServletContext getServletContext() { + return servletContext; + } + + public static void setServletContext(ServletContext servletContext) { + PollenUIUtils.servletContext = servletContext; + } + public static void redirect(String url) throws Exception { HttpServletResponse response = ServletActionContext.getResponse(); Modified: branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/security/AbstractPollenAuthorization.java =================================================================== --- branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/security/AbstractPollenAuthorization.java 2012-04-06 17:36:59 UTC (rev 3243) +++ branches/pollen-1.2.6-struts2/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/security/AbstractPollenAuthorization.java 2012-04-10 14:00:58 UTC (rev 3244) @@ -23,6 +23,7 @@ */ package org.chorem.pollen.ui.security; +import com.google.common.base.Preconditions; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.shiro.util.StringUtils; @@ -35,9 +36,11 @@ import org.chorem.pollen.services.PollenServiceFactory; import org.chorem.pollen.ui.PollenApplicationContext; import org.chorem.pollen.ui.PollenSession; +import org.chorem.pollen.ui.PollenUIUtils; import org.nuiton.topia.TopiaContext; import org.nuiton.web.filter.TopiaTransactionFilter; +import javax.servlet.ServletContext; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; @@ -58,10 +61,22 @@ protected AbstractPollenAuthorization() { if (log.isInfoEnabled()) { - log.info("Init - "+this); + log.info("Init - " + this); } } + @Override + public ServletContext getServletContext() { + ServletContext servletContext = super.getServletContext(); + if (servletContext == null) { + servletContext = PollenUIUtils.getServletContext(); + Preconditions.checkNotNull(servletContext); + // store it back + setServletContext(servletContext); + } + return servletContext; + } + protected PollUri getPollUri(ServletRequest request) { String servletPath = ((HttpServletRequest) request).getServletPath(); Matcher m = URI_PATTERN.matcher(servletPath);