in.hocg.sso2.server.sample.config.security.config.WebSecurityConfigurer Maven / Gradle / Ivy
package in.hocg.sso2.server.sample.config.security.config;
import in.hocg.sso2.server.sample.config.security.user.AuthenticationConfigs;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.PasswordEncoder;
/**
* Created by hocgin on 2020/1/6.
* email: [email protected]
*
* @author hocgin
*/
@Slf4j
@Configuration
@RequiredArgsConstructor(onConstructor = @__(@Lazy))
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
private final AuthenticationConfigs authenticationConfigs;
private final UserDetailsService userDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
// 基础信息配置
http.formLogin().permitAll().and().authorizeRequests()
.anyRequest().authenticated().and()
;
// http.formLogin();
// 异常处理配置(这边针对AJAX进行不同处理,如果不需要可以忽略)
// http.exceptionHandling()
// .defaultAuthenticationEntryPointFor(new AjaxAuthenticationEntryPoint(), new IsAjaxRequestMatcher())
// .defaultAccessDeniedHandlerFor(new AjaxAccessDeniedHandler(), new IsAjaxRequestMatcher());
// 登陆相关配置
// authenticationConfigs.configure(http, authenticationManager());
}
@Override
public void configure(WebSecurity web) throws Exception {
web.debug(true);
}
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Bean
public PasswordEncoder passwordEncoder() {
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}
}