Example usage for org.apache.shiro.web.env IniWebEnvironment setIni

List of usage examples for org.apache.shiro.web.env IniWebEnvironment setIni

Introduction

In this page you can find the example usage for org.apache.shiro.web.env IniWebEnvironment setIni.

Prototype

public void setIni(Ini ini) 

Source Link

Document

Allows for configuration via a direct Ini instance instead of via #getConfigLocations() config locations .

Usage

From source file:fathom.shiro.ShiroModule.java

License:Apache License

@Override
protected void setup() {

    String configFile = getSettings().getString("shiro.configurationFile", "classpath:conf/shiro.ini");
    Ini ini = Ini.fromResourcePath(configFile);

    IniWebEnvironment webEnvironment = new IniWebEnvironment();
    webEnvironment.setIni(ini);
    webEnvironment.setServletContext(getServletContext());
    webEnvironment.init();/*from   www.  j  a  v  a2 s.c o  m*/

    bind(WebEnvironment.class).toInstance(webEnvironment);
    bind(SecurityManager.class).toInstance(webEnvironment.getSecurityManager());
    bind(WebSecurityManager.class).toInstance(webEnvironment.getWebSecurityManager());

    String basePath = Strings.nullToEmpty(getSettings().getString(RestServlet.SETTING_URL, null)).trim();
    filter(basePath + "/*").through(ShiroFilter.class);

    install(new AopModule());
}

From source file:org.everit.osgi.authentication.shiro.simple.DefaultShiroFilter.java

License:Open Source License

public DefaultShiroFilter(final long globalSessionTimeout, final String shiroIniLocation, final Realm realm,
        final String casLoginUrl, final String casFailureUrl) {

    Ini ini = loadIni(shiroIniLocation);

    IniWebEnvironment iniWebEnvironment = new IniWebEnvironment() {

        @Override/*from   w  w  w  .  ja v a2 s.c o  m*/
        protected FilterChainResolver createFilterChainResolver() {
            FilterChainResolver filterChainResolver = super.createFilterChainResolver();

            if (realm instanceof CasRealm) {
                if (filterChainResolver instanceof PathMatchingFilterChainResolver) {
                    FilterChainManager filterChainManager = ((PathMatchingFilterChainResolver) filterChainResolver)
                            .getFilterChainManager();
                    Map<String, Filter> filters = filterChainManager.getFilters();
                    for (Filter filter : filters.values()) {
                        if (filter instanceof RolesAuthorizationFilter) {
                            ((RolesAuthorizationFilter) filter).setLoginUrl(casLoginUrl);
                        }
                    }
                }
            }

            return filterChainResolver;
        }

        @Override
        protected WebSecurityManager createWebSecurityManager() {
            DefaultWebSessionManager defaultWebSessionManager = new DefaultWebSessionManager();
            defaultWebSessionManager.setGlobalSessionTimeout(globalSessionTimeout);

            DefaultWebSecurityManager webSecurityManager = new DefaultWebSecurityManager();
            webSecurityManager.setRealm(realm);
            webSecurityManager.setSessionManager(defaultWebSessionManager);
            if (realm instanceof CasRealm) {
                webSecurityManager.setSubjectFactory(new CasSubjectFactory());
                CasFilter casFilter = new CasFilter();
                casFilter.setFailureUrl(casFailureUrl);
                setObject("casFilter", casFilter);
            }
            return webSecurityManager;
        }

    };
    iniWebEnvironment.setIni(ini);
    iniWebEnvironment.init();

    WebSecurityManager securityManager = (WebSecurityManager) iniWebEnvironment.getSecurityManager();
    setSecurityManager(securityManager);

    FilterChainResolver filterChainResolver = iniWebEnvironment.getFilterChainResolver();
    setFilterChainResolver(filterChainResolver);
}