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

com.digitalchina.platform.security.config.SecurityWebConfigurer Maven / Gradle / Ivy

The newest version!
package com.digitalchina.platform.security.config;

import com.digitalchina.platform.security.logout.SingleSignOutFilter;
import com.digitalchina.platform.security.properties.CasProperties;
import org.apache.commons.lang.StringUtils;
import org.jasig.cas.client.session.SingleSignOutHttpSessionListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Created with IntelliJ IDEA.
 * User: 胡本强
 * Date: 2017-04-12:14:17
 */
@Configuration
public class SecurityWebConfigurer {

    @Autowired
    private CasProperties casProperties;

    /**
     * 用于实现单点登出功能
     * @return ServletListenerRegistrationBean
     */
    @Bean
    public ServletListenerRegistrationBean singleSignOutHttpSessionListener() {
        ServletListenerRegistrationBean listener = new ServletListenerRegistrationBean();
        listener.setEnabled(true);
        listener.setListener(new SingleSignOutHttpSessionListener());
        listener.setOrder(1);
        return listener;
    }

    /**
     * 该过滤器用于实现单点登出功能,单点退出配置,一定要放在其他filter之前
     * @return FilterRegistrationBean
     */
    @Bean
    public FilterRegistrationBean singleSignOutFilter() {
        FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
        filterRegistration.setFilter(new SingleSignOutFilter());
        filterRegistration.setEnabled(true);
        filterRegistration.addUrlPatterns("/*");
        filterRegistration.addInitParameter("cluterLogoutPower", String.valueOf(casProperties.getCluterLogoutPower()));
        if (StringUtils.isNotEmpty(casProperties.getGatewayNotesUrl())) {
            filterRegistration.addInitParameter("gatewayNotesUrl", casProperties.getGatewayNotesUrl());
        }
        if (StringUtils.isNotEmpty(casProperties.getAppName())) {
            filterRegistration.addInitParameter("appName", casProperties.getAppName());
        }
        if (StringUtils.isNotEmpty(casProperties.getApiKey())) {
            filterRegistration.addInitParameter("apiKey", casProperties.getApiKey());
        }
        filterRegistration.setOrder(2);
        return filterRegistration;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy