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

org.onetwo.boot.module.security.cas.CasSsoContextConfig Maven / Gradle / Ivy

package org.onetwo.boot.module.security.cas;

import org.jasig.cas.client.validation.Cas20ServiceTicketValidator;
import org.onetwo.boot.module.security.BootSecurityConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.cas.ServiceProperties;
import org.springframework.security.cas.authentication.CasAuthenticationProvider;
import org.springframework.security.cas.web.CasAuthenticationEntryPoint;
import org.springframework.security.cas.web.CasAuthenticationFilter;
import org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper;
import org.springframework.security.core.userdetails.UserDetailsService;

/***
 * @author way
 *
 */
@Configuration
//@Import(RbacSecurityXmlContextConfigSupport.class)
public class CasSsoContextConfig {
	
	@Autowired
	private BootSecurityConfig bootSecurityConfig;
	@Autowired
	private UserDetailsService userDetailsService;
	
	@Autowired
	private AuthenticationManager authenticationManager;

	@Bean
	@ConditionalOnMissingBean(ServiceProperties.class)
	public ServiceProperties serviceProperties(){
		ServiceProperties serviceProps = new ServiceProperties();
		serviceProps.setService(bootSecurityConfig.getCas().getService());
		serviceProps.setSendRenew(bootSecurityConfig.getCas().isSendRenew());
		return serviceProps;
	}
	
	@Bean
	@ConditionalOnMissingBean(CasAuthenticationEntryPoint.class)
	public CasAuthenticationEntryPoint casEntryPoint(){
		CasAuthenticationEntryPoint casEntryPoint = new CasAuthenticationEntryPoint();
		casEntryPoint.setServiceProperties(serviceProperties());
		casEntryPoint.setLoginUrl(bootSecurityConfig.getCas().getLoginUrl());
		return casEntryPoint;
	}
	
	@Bean
	@ConditionalOnMissingBean(CasAuthenticationProvider.class)
	public CasAuthenticationProvider casAuthenticationProvider(){
		CasAuthenticationProvider casProvider = new CasAuthenticationProvider();
		casProvider.setAuthenticationUserDetailsService(new UserDetailsByNameServiceWrapper<>(userDetailsService));
		casProvider.setServiceProperties(serviceProperties());
		casProvider.setTicketValidator(new Cas20ServiceTicketValidator(bootSecurityConfig.getCas().getCasServerUrl()));
		casProvider.setKey(bootSecurityConfig.getCas().getKey());
		return casProvider;
	}
	
	@Bean
	@ConditionalOnMissingBean(CasAuthenticationFilter.class)
	public CasAuthenticationFilter casFilter(){
		CasAuthenticationFilter casFilter = new CasAuthenticationFilter();
		casFilter.setAuthenticationManager(authenticationManager);
		return casFilter;
	}
	
	/*@Bean
	public CasSecurityConfigurerAdapter securityConfigurerAdapter(){
		return new CasSecurityConfigurerAdapter();
	}*/

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy