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

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

package org.paranora.ssoc.configuration;

import org.paranora.ssoc.pac4j.authenticator.BasicJwtAuthenticator;
import org.paranora.ssoc.pac4j.cas.config.BasicCasConfiguration;
import org.paranora.ssoc.pac4j.client.BasicCasRestFormClient;
import org.paranora.ssoc.pac4j.profile.BasicJwtGenerator;
import org.paranora.ssoc.shiro.property.ShiroConfigurationProperties;
import org.apache.shiro.realm.Realm;
import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.pac4j.core.client.Client;
import org.pac4j.core.client.Clients;
import org.pac4j.core.config.Config;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.web.client.RestOperations;

import javax.servlet.Filter;
import java.util.*;

/**
 * The type Shiro config.
 */
public abstract class ShiroConfig {

    /**
     * The Rest operations.
     */
    protected RestOperations restOperations;
    /**
     * The Config.
     */
    protected ShiroConfigurationProperties config;

    /**
     * The Jwt authenticator.
     */
    protected BasicJwtAuthenticator jwtAuthenticator;
    /**
     * The Jwt generator.
     */
    protected BasicJwtGenerator jwtGenerator;
    /**
     * The Cas configuration.
     */
    protected BasicCasConfiguration casConfiguration;
    /**
     * The Cas rest form client.
     */
    protected BasicCasRestFormClient casRestFormClient;
//    protected BasicParameterClient parameterClient;
//    protected BasicHeaderClient headerClient;

//    protected List defaultClients;
//    protected List customClients;
//
//    protected List defaultRealms;
//    protected List customRealms;

    /**
     * The Clients obj.
     */
    protected Clients clientsObj;
    /**
     * The Cas config.
     */
    protected Config casConfig;
    /**
     * The Clients.
     */
    protected Map clients;
    /**
     * The Realms.
     */
    protected Map realms;
    /**
     * The Shiro filters.
     */
    protected Map shiroFilters;

//    protected Map defaultShiroFilters;
//    protected Map customShiroFilters;

    /**
     * The Shiro filter chain definition.
     */
    protected ShiroFilterChainDefinition ShiroFilterChainDefinition;


    /**
     * Gets clients obj.
     *
     * @return the clients obj
     */
    public Clients getClientsObj() {
        return clientsObj;
    }

    /**
     * Sets clients obj.
     *
     * @param clientsObj the clients obj
     */
    public void setClientsObj(Clients clientsObj) {
        this.clientsObj = clientsObj;
    }

    /**
     * Gets clients.
     *
     * @return the clients
     */
    public Map getClients() {
        return clients;
    }

    /**
     * Sets clients.
     *
     * @param clients the clients
     */
    public void setClients(Map clients) {
        this.clients = clients;
    }

    /**
     * Gets jwt authenticator.
     *
     * @return the jwt authenticator
     */
    public BasicJwtAuthenticator getJwtAuthenticator() {
        return jwtAuthenticator;
    }

    /**
     * Sets jwt authenticator.
     *
     * @param jwtAuthenticator the jwt authenticator
     */
    public void setJwtAuthenticator(BasicJwtAuthenticator jwtAuthenticator) {
        this.jwtAuthenticator = jwtAuthenticator;
    }

    /**
     * Gets realms.
     *
     * @return the realms
     */
    public Map getRealms() {
        return realms;
    }

    /**
     * Sets realms.
     *
     * @param realms the realms
     */
    public void setRealms(Map realms) {
        this.realms = realms;
    }

    /**
     * Gets shiro filters.
     *
     * @return the shiro filters
     */
    public Map getShiroFilters() {
        return shiroFilters;
    }

    /**
     * Sets shiro filters.
     *
     * @param shiroFilters the shiro filters
     */
    public void setShiroFilters(Map shiroFilters) {
        this.shiroFilters = shiroFilters;
    }

    /**
     * Gets cas configuration.
     *
     * @return the cas configuration
     */
    public BasicCasConfiguration getCasConfiguration() {
        return casConfiguration;
    }

    /**
     * Sets cas configuration.
     *
     * @param casConfiguration the cas configuration
     */
    public void setCasConfiguration(BasicCasConfiguration casConfiguration) {
        this.casConfiguration = casConfiguration;
    }

    /**
     * Gets jwt generator.
     *
     * @return the jwt generator
     */
    public BasicJwtGenerator getJwtGenerator() {
        return jwtGenerator;
    }

    /**
     * Sets jwt generator.
     *
     * @param jwtGenerator the jwt generator
     */
    public void setJwtGenerator(BasicJwtGenerator jwtGenerator) {
        this.jwtGenerator = jwtGenerator;
    }

    /**
     * Gets cas rest form client.
     *
     * @return the cas rest form client
     */
    public BasicCasRestFormClient getCasRestFormClient() {
        return casRestFormClient;
    }

    /**
     * Sets cas rest form client.
     *
     * @param casRestFormClient the cas rest form client
     */
    public void setCasRestFormClient(BasicCasRestFormClient casRestFormClient) {
        this.casRestFormClient = casRestFormClient;
    }

    /**
     * Gets rest operations.
     *
     * @return the rest operations
     */
    public RestOperations getRestOperations() {
        return restOperations;
    }

    /**
     * Sets rest operations.
     *
     * @param restOperations the rest operations
     */
    public void setRestOperations(RestOperations restOperations) {
        this.restOperations = restOperations;
    }

    /**
     * Gets cas config.
     *
     * @return the cas config
     */
    public Config getCasConfig() {
        return casConfig;
    }

    /**
     * Sets cas config.
     *
     * @param casConfig the cas config
     */
    public void setCasConfig(Config casConfig) {
        this.casConfig = casConfig;
    }

    /**
     * Gets config.
     *
     * @return the config
     */
    public ShiroConfigurationProperties getConfig() {
        return config;
    }

    /**
     * Sets config.
     *
     * @param config the config
     */
    public void setConfig(ShiroConfigurationProperties config) {
        this.config = config;
    }

    /**
     * Gets shiro filter chain definition.
     *
     * @return the shiro filter chain definition
     */
    public org.apache.shiro.spring.web.config.ShiroFilterChainDefinition getShiroFilterChainDefinition() {
        return ShiroFilterChainDefinition;
    }

    /**
     * Sets shiro filter chain definition.
     *
     * @param shiroFilterChainDefinition the shiro filter chain definition
     */
    public void setShiroFilterChainDefinition(org.apache.shiro.spring.web.config.ShiroFilterChainDefinition shiroFilterChainDefinition) {
        ShiroFilterChainDefinition = shiroFilterChainDefinition;
    }

    /**
     * Generate security manager default web security manager.
     *
     * @return the default web security manager
     */
    public abstract DefaultWebSecurityManager 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) {
        ShiroFilterChainDefinition shiroFilterChainDefinition = getShiroFilterChainDefinition();
        ShiroFilterFactoryBean filterFactoryBean = new ShiroFilterFactoryBean();
        filterFactoryBean.setSecurityManager(securityManager);
        filterFactoryBean.setFilterChainDefinitionMap(shiroFilterChainDefinition.getFilterChainMap());
        Map filters =getShiroFilters();
        filterFactoryBean.setFilters(filters);
        return filterFactoryBean;
    }

    /**
     * Generate advisor auto proxy creator default advisor auto proxy creator.
     *
     * @return the default advisor auto proxy creator
     */
    public DefaultAdvisorAutoProxyCreator generateAdvisorAutoProxyCreator() {
        DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
        advisorAutoProxyCreator.setProxyTargetClass(true);
        return advisorAutoProxyCreator;
    }

    /**
     * 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) {
        AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
        advisor.setSecurityManager(securityManager);
        return advisor;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy