Spring Boot 2.0的项目中使用Spring Security, 要怎么设置才能调用自定义的login页面呀

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";
    }
}
阅读 1.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题