我的应用程序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,并将用户带到主页,而无需登录。 我如何才能防止这种情况并使登录页面成为强制性的?
当用户把这个网址http://219.41.192.244:8080/kanaapp,我想重定向到http://219.41.192.244:8080/kanaapp/login url,有人能在这里帮助我吗。
spring boot应用程序:我在这里设置了上下文路径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的例子在这里。
您必须做的是注册一个扩展WebSecurityConfigurerAdapter
的类,并定义应用程序的哪一部分是安全的。 例如:
.antMatchers("/public/**").permitAll()
.anyRequest().authenticated()
意味着/public/。。。中的所有URI。 将被允许为每个人,因此您将不必登录到那里,任何其他人需要登录到那里。
由于你有一个登录页面,迫使用户去那里的一个基本方法是实现spring表单登录(在之前的链接中有更深入的规定)。 这是工作的一部分
.formLogin()
.loginPage("/login")
.permitAll()
声明spring安全表单登录,所有必须经过身份验证的请求将被重定向到此处指定的页面。 当然,您可以根据需要自定义此页面(spring文档中的一个示例)。