根据动态字段更改网址

时间:2017-10-18 15:00:31

标签: tomcat spring-boot spring-security

用户登录系统后是否有办法更改网址?例如,如果我的登录网址为demo.xxx.com/login,则在用户通过身份验证后,我希望将其更改为abc.xxx.com/dashboard。 abc是用户组,在用户通过身份验证时确定。我的应用程序基于spring boot并使用spring security进行身份验证。

1 个答案:

答案 0 :(得分:1)

最简单的方法是在spring security WebSecurityConfigurerAdapter bean中设置默认成功URL。如果使用XML配置,我相信这也可以配置,虽然我不确定如何离开。

@Configuration
@EnableWebSecurity
public class AppSecurityConfiguration extends WebSecurityConfigurerAdapter {
    protected void configure( HttpSecurity http ) throws Exception {
        http.formLogin()
            .loginPage( "/login" )
            .defaultSuccessUrl( "/dashboard" );
    }
}

如果您需要更精细地控制重定向,您可以实现自己的身份验证成功处理程序并提供自定义重定向策略。

http.formLogin().successHandler( new SavedRequestAwareAuthenticationSuccessHandler() {
    {
        setRedirectStrategy( new RedirectStrategy() {
            @Override
            public void sendRedirect( HttpServletRequest request, HttpServletResponse response, String url ) throws IOException {
                // Put your logic here for sending redirects
                response.sendRedirect("https://xyx.mydomain.com/dashboard");
            }
        } );
    }
} );