Spring Boot 2.0的项目中使用Spring Security, 老是进入默认的login页面,要怎么设置才能调用自定义的login页面呀。请大家指教一下
@Configuration
/**
* @EnableWebSecurity:此注解会启用Spring Security
*/
@EnableWebSecurity(debug = false)
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class SecurityConfig {
/** 所有 */
public static String[] ignoreUrls = { "/assets/**", "/css/**", "/images/**", "/js/**", "/video/**", "/vendors/**",
"/fonts/**", "/api/**", "/webapp/**", "/changeLocale", "/swagger-ui.html", "/swagger-resources/**", "/v2/api-docs/**",
"/login", "/login.html","/index.html",
"/webjars/**" };
/** 匿名用户 */
public static String[] anonymousUrls = {};
@Order(SecurityProperties.BASIC_AUTH_ORDER
- 2)
@Configuration
protected static class ApplicationSecurity extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
http.addFilterAfter(ajaxTimeoutRedirectFilter(), ExceptionTranslationFilter.class);
http.authorizeRequests().antMatchers(ignoreUrls).permitAll()
//
.antMatchers(anonymousUrls).anonymous()
//
.anyRequest().authenticated()
//
.and()
//
.formLogin().loginPage("/login")
// 指定登录成功后跳转到/index页面
.defaultSuccessUrl("/index")
// 指定登录失败后跳转到/login?error页面
.failureUrl("/login?error")
.permitAll()
//
.and()
//
.logout().logoutUrl("/logout").logoutSuccessUrl("/login?logout").deleteCookies("JSESSIONID")
.permitAll()
//
.and()
//
.exceptionHandling()
//
.and()
//
.rememberMe()
//
.and()
//
.sessionManagement().maximumSessions(1).maxSessionsPreventsLogin(false).expiredUrl("/login?expired")
.sessionRegistry(sessionRegistry());
}
@Bean
public SessionRegistry sessionRegistry() {
SessionRegistry sessionRegistry = new SessionRegistryImpl();
return sessionRegistry;
}
@Bean
public Filter ajaxTimeoutRedirectFilter() {
AjaxTimeoutRedirectFilter ajaxTimeoutRedirectFilter = new AjaxTimeoutRedirectFilter();
return ajaxTimeoutRedirectFilter;
}
@Bean
public static HttpSessionEventPublisher httpSessionEventPublisher() {
return new HttpSessionEventPublisher();
}
}
}
这个是自定义的login.html和index.html目录
application.properties里面也有下面的设置
spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.html
@Controller
@SessionAttributes("authorizationRequest")
public class dxfLoginController extends BaseController {
@GetMapping(value = { "/", "home", "index", "index.html" })
public String index(Model model) {
return "/index";
}
@GetMapping("/login")
public String login(){
return "login";
}
}