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

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

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

每当用户将这个URL放置为http://219.41.192.244:8080/KanaApp时,我都想重定向到http://219.41.192.244:8080/KanaApp/login url,有人可以在这里帮助我。

春季启动应用程序:
我在这里设置了上下文路径
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();

最佳答案

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

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

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


意味着/ public / ...中的所有uri都将允许所有人使用,因此您无需登录即可进入该目录,而其他任何人都需要登录该目录。

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

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


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

关于javascript - 如何将一个网址重定向到另一个网址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62305733/

10-12 02:12