Provider configuration using JavaConfig.
@Configuration @EnableWebMvcSecurity public class AuthProviderConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/", "/home").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login").permitAll() .and() .logout() .permitAll(); } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth .authenticationProvider(kerberosAuthenticationProvider()); } @Bean public KerberosAuthenticationProvider kerberosAuthenticationProvider() { KerberosAuthenticationProvider provider = new KerberosAuthenticationProvider(); SunJaasKerberosClient client = new SunJaasKerberosClient(); client.setDebug(true); provider.setKerberosClient(client); provider.setUserDetailsService(dummyUserDetailsService()); return provider; } @Bean public DummyUserDetailsService dummyUserDetailsService() { return new DummyUserDetailsService(); } }
Provider configuration using xml.
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sec="http://www.springframework.org/schema/security" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd"> <sec:http entry-point-ref="spnegoEntryPoint" use-expressions="true"> <sec:intercept-url pattern="/" access="permitAll" /> <sec:intercept-url pattern="/home" access="permitAll" /> <sec:intercept-url pattern="/**" access="authenticated"/> </sec:http> <sec:authentication-manager alias="authenticationManager"> <sec:authentication-provider ref="kerberosAuthenticationProvider"/> </sec:authentication-manager> <bean id="kerberosAuthenticationProvider" class="org.springframework.security.kerberos.authentication.KerberosAuthenticationProvider"> <property name="kerberosClient"> <bean class="org.springframework.security.kerberos.authentication.sun.SunJaasKerberosClient"> <property name="debug" value="true"/> </bean> </property> <property name="userDetailsService" ref="dummyUserDetailsService"/> </bean> <bean class="org.springframework.security.kerberos.authentication.sun.GlobalSunJaasKerberosConfig"> <property name="debug" value="true" /> <property name="krbConfLocation" value="/path/to/krb5.ini"/> </bean> <bean id="dummyUserDetailsService" class="org.springframework.security.kerberos.docs.DummyUserDetailsService" /> <bean id="spnegoEntryPoint" class="org.springframework.security.kerberos.web.authentication.SpnegoEntryPoint" > <constructor-arg value="/login" /> </bean> </beans>