首页 > 解决方案 > 春季安全登录网址

问题描述

我正在尝试将 /login 配置为在成功验证后登陆我的主页。例如,“http://localhost:8080/app/login”,让我进入我的主页,即“http://localhost:8080/app/home”。如果我再次单击相同的 URL,它会将我重定向到 http://localhost:8080/app。但是,如果我执行 http://localhost:8080/app/logout 然后再次尝试登录,那很好。

为什么在尝试多次登录时它不会将我重定向到同一个主页?

http.csrf().disable().authorizeRequests().antMatchers(staticResources).permitAll().antMatchers("/login*").permitAll().anyRequest().authenticated().and()
            .formLogin().loginPage("/login").defaultSuccessUrl("/home")
            .failureHandler(authFailureHandler).successHandler(sessionTimeoutAuthSuccessHandler).permitAll().and()
            .logout().logoutSuccessHandler(logoutSuccessHandler()).deleteCookies(JSESSIONID)
            .invalidateHttpSession(true).clearAuthentication(true);

标签: javaspringspring-security

解决方案


使用您共享的配置,如果用户"/home"在身份验证之前没有访问过安全页面,他们将在身份验证成功后被重定向到。
如果他们在进行身份验证之前访问了安全页面,那么他们将被重定向到该页面。
如果您希望始终重定向到"/home",则可以设置alwaysUsetrue

.defaultSuccessUrl("/home", true)

推荐阅读