如何将一个网址重定向到另一个网址?

时间:2020-06-10 14:12:38

标签: javascript java angular spring-boot

我的应用程序网址为http://219.41.192.244:8080/KanaApp/login-用户进入登录页面

登录是第一页,只有用户才能访问该应用程序。

但是,如果用户输入了该URL-http://219.41.192.244:8080/KanaApp,它将被重定向到http://219.41.192.244:8080/KanaApp/#/home,并且无需登录即可将用户带到主页。如何防止这种情况并使登录页面成为必填项?

无论用户何时输入此网址http://219.41.192.244:8080/KanaApp,我都想重定向到http://219.41.192.244:8080/KanaApp/login网址,有人可以在这里为我提供帮助。

Spring启动应用程序: 我在这里设置了上下文路径 server.contextPath = / KanaApp

和前端角度

    SecurityConfig class:

    .antMatchers("/static/**").permitAll()
        .antMatchers("/assets/**").permitAll()
        .antMatchers("/css/**").permitAll()
        .antMatchers("/forgotPassword").permitAll()
        .antMatchers("/setForgotPassword").permitAll()
         .and()
            .formLogin()
            .successHandler(handler)
            .usernameParameter("username")
            .passwordParameter("password")
            .loginPage("/login").permitAll()
        .and()
            .logout()
            .logoutSuccessUrl("/login?logout")
            .invalidateHttpSession(true).permitAll()
        .and()
        .csrf().disable();

1 个答案:

答案 0 :(得分:0)

我认为您缺少的是正确的安全配置。 如果要连接用户,则必须强制用户连接。这意味着您必须只允许对经过身份验证的用户的请求。 您将找到有关如何进行spring example here的大量指南。

您必须做的是注册一个扩展WebSecurityConfigurerAdapter的类,并定义应用程序的哪一部分受保护。 例如:

.antMatchers("/public/**").permitAll()
.anyRequest().authenticated()

每个人都可以使用/ public / ...中的所有uri,因此您无需登录即可进入那里,而其他任何人也都需要登录才能进入那里。

当您拥有登录页面时,强制用户进入该页面的基本方法是实现spring表单登录(在前面的链接中有更详细的说明)。这是工作的一部分

.formLogin()
.loginPage("/login")
.permitAll()

声明Spring安全表单登录,所有必须通过身份验证的请求将重定向到此处指定的页面。当然,您可以根据需要自定义此页面(an example from spring documentation)。