【发布时间】:2020-09-29 23:54:06
【问题描述】:
我的应用程序 url 是: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,有人可以在这里帮助我吗?
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();
【问题讨论】:
-
在您的 Angular 应用程序中使用保护在用户未登录时将其重定向到登录页面。angular.io/api/router/CanActivate
-
感谢 Berk,我们可以从后端...在 Spring Boot 中制作它吗?
-
通常您不会期望用户向您的后端发送请求,因此您将授权令牌添加到您的前端请求并在您的 Spring 安全配置中检查授权请求。
标签: javascript java angular spring-boot