我的应用程序网址为: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/