All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.paranora.ssoc.configuration.ShiroConfiguration Maven / Gradle / Ivy

package org.paranora.ssoc.configuration;

import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.beans.factory.annotation.Autowired;

import javax.annotation.PostConstruct;
import java.util.*;

/**
 * The type Shiro configuration.
 *
 * @param  the type parameter
 */
public abstract class ShiroConfiguration {

    /**
     * The Config.
     */
    protected T config;

    /**
     * Create config t.
     *
     * @return the t
     */
    protected abstract T createConfig();

    /**
     * Instantiates a new Shiro configuration.
     */
    public ShiroConfiguration(){
        config=createConfig();
    }

    @Autowired
    private List configurers = Collections.emptyList();

    /**
     * Init.
     */
    @PostConstruct
    public void init() {
        for (ShiroConfigurer configurer : configurers) {
            try {
                configurer.configure(config);
            } catch (Exception e) {
                throw new IllegalStateException("Cannot configure shiro conf.", e);
            }
        }
    }

    /**
     * Generate security manager default web security manager.
     *
     * @return the default web security manager
     */
    public DefaultWebSecurityManager generateSecurityManager(){
        return config.generateSecurityManager();
    }

    /**
     * Generate shiro filter factory bean shiro filter factory bean.
     *
     * @param securityManager the security manager
     * @return the shiro filter factory bean
     */
    public ShiroFilterFactoryBean generateShiroFilterFactoryBean(DefaultWebSecurityManager securityManager) {
        return config.generateShiroFilterFactoryBean(securityManager);
    }

    /**
     * Generate advisor auto proxy creator default advisor auto proxy creator.
     *
     * @return the default advisor auto proxy creator
     */
    public DefaultAdvisorAutoProxyCreator generateAdvisorAutoProxyCreator() {
        return config.generateAdvisorAutoProxyCreator();
    }

    /**
     * Generate authorization attribute source advisor authorization attribute source advisor.
     *
     * @param securityManager the security manager
     * @return the authorization attribute source advisor
     */
    public AuthorizationAttributeSourceAdvisor generateAuthorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) {
        return config.generateAuthorizationAttributeSourceAdvisor(securityManager);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy