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

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

package org.paranora.ssoc.configuration;

import org.paranora.ssoc.shiro.property.ShiroConfigurationProperties;
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 org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;

/**
 * The type Shiro auto configuration.
 */
@Configuration
@EnableConfigurationProperties({ShiroConfigurationProperties.class})
public class ShiroAutoConfiguration {

    /**
     * The Config.
     */
    @Autowired
    protected ShiroConfiguration config;

    /**
     * Generate security manager default web security manager.
     *
     * @return the default web security manager
     */
    @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
    @Bean("securityManager")
    @ConditionalOnMissingBean({DefaultWebSecurityManager.class})
    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
     */
    @Bean(name = "shiroFilter")
    @ConditionalOnMissingBean({ShiroFilterFactoryBean.class})
    public ShiroFilterFactoryBean generateShiroFilterFactoryBean(DefaultWebSecurityManager securityManager) {
        return config.generateShiroFilterFactoryBean(securityManager);
    }

    /**
     * Advisor auto proxy creator default advisor auto proxy creator.
     *
     * @return the default advisor auto proxy creator
     */
    @Bean
    @ConditionalOnMissingBean({DefaultAdvisorAutoProxyCreator.class})
    @DependsOn({"lifecycleBeanPostProcessor"})
    public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator() {
        return config.generateAdvisorAutoProxyCreator();
    }

    /**
     * Authorization attribute source advisor authorization attribute source advisor.
     *
     * @param securityManager the security manager
     * @return the authorization attribute source advisor
     */
    @Bean
    @ConditionalOnMissingBean({AuthorizationAttributeSourceAdvisor.class})
    @ConditionalOnBean({DefaultWebSecurityManager.class})
    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) {
        return config.generateAuthorizationAttributeSourceAdvisor(securityManager);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy