[ 
https://issues.apache.org/jira/browse/SHIRO-617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940245#comment-15940245
 ] 

Marco Descher commented on SHIRO-617:
-------------------------------------

Would the following change meet expectations (Nevermind missing JavaDoc)?

{code:title=ShiroFilter.java|borderStyle=solid}
public class ShiroFilter extends AbstractShiroFilter {

        private boolean instantiateDefaultWebEnvironment;
        
        public ShiroFilter() {
                this(false);
        }
        
        public ShiroFilter(boolean instantiateWebEnvironment) {
                this.instantiateDefaultWebEnvironment = 
instantiateWebEnvironment;
        }
        
    /**
     * Configures this instance based on the existing {@link 
org.apache.shiro.web.env.WebEnvironment} instance
     * available to the currently accessible {@link #getServletContext() 
servletContext}.
     *
     * @see org.apache.shiro.web.env.EnvironmentLoaderListener
     * @since 1.2
     */
    @Override
    public void init() throws Exception {
        
        WebEnvironment env = null;
        
                if (instantiateDefaultWebEnvironment) {
                        env = WebUtils.getWebEnvironment(getServletContext());
                        if (env == null) {
                                env = new 
EnvironmentLoader().initEnvironment(getServletContext());
                        }
                } else {
                        env = 
WebUtils.getRequiredWebEnvironment(getServletContext());
                }

        setSecurityManager(env.getWebSecurityManager());

        FilterChainResolver resolver = env.getFilterChainResolver();
        if (resolver != null) {
            setFilterChainResolver(resolver);
        }
    }
}
{code}


> ShiroFilter initialize WebEnvironment on startup
> ------------------------------------------------
>
>                 Key: SHIRO-617
>                 URL: https://issues.apache.org/jira/browse/SHIRO-617
>             Project: Shiro
>          Issue Type: Improvement
>            Reporter: Marco Descher
>            Priority: Minor
>
> Following up to 
> http://shiro-developer.582600.n2.nabble.com/Deprecation-of-org-apache-shiro-web-servlet-IniShiroFilter-td7205283.html
> I am integrating shiro into our OSGI based product. The requirement to 
> register the WebEnvironment listener on startup is a real problem.
> ""it would be extremely easy to create a subclass of ShiroFilter that 
> initializes the necessary WebEnvironment at filter startup.  If you 
> can't use a servlet context listener, this would be the next best 
> thing and would work as expected.  The EnvironmentLoaderListener is 
> extremely minimal on purpose - the real work is done in the parent 
> class, which can be used from a Filter easily. ""



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to