gpt4 book ai didi

java - Spring MVC - 如果未登录,如何重定向到登录

转载 作者:行者123 更新时间:2023-12-02 12:15:55 24 4
gpt4 key购买 nike

我正在更新我们的 Web 应用程序,添加一个只能访问某些页面的新用户角色。在此更新之前,每当用户登录并且其 session 过期并且刷新页面时,都会出现登录屏幕。现在,它尝试加载页面,导致空指针异常,因为它们尚未登录并且无法加载任何数据。

这是我一直在研究的配置

    http.csrf().ignoringAntMatchers("/notification/**");
http.csrf().ignoringAntMatchers("/embed/**/apply");
http.csrf().ignoringAntMatchers("/view/**/apply");
http.csrf().ignoringAntMatchers("/login");
http.csrf().ignoringAntMatchers("/logout");
http.csrf().ignoringAntMatchers("/register");

http.authorizeRequests()

.antMatchers("/").permitAll()
.antMatchers("/index").permitAll()
.antMatchers("/static/**").permitAll()
.antMatchers("/assets/**").permitAll()
.antMatchers("/register").permitAll()
.antMatchers("/skillRequest/**").permitAll()
.antMatchers("/skillRequest/skillFormUpdate/**").permitAll()
.antMatchers("/password/reset").permitAll()
.antMatchers("/password/reset/complete").permitAll()
.antMatchers("/email/verify").permitAll()
.antMatchers("/view/**").permitAll()
.antMatchers("/embed/**").permitAll()
.antMatchers("/dashboard").fullyAuthenticated()
.antMatchers("/profile").fullyAuthenticated()
.antMatchers("/candidate-profile/**").fullyAuthenticated()
.antMatchers("/users.json").fullyAuthenticated()
.antMatchers("/candidate/**/add").fullyAuthenticated()
.antMatchers("/candidate/**/edit").fullyAuthenticated()
.antMatchers("/**").not().hasAnyAuthority("ROLE_CANDIDATE")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/dashboard", false) //Force user to always go to the home page.
//.successHandler(successHandler())
.permitAll()
.and()
.httpBasic()
.and()
.logout()
.permitAll();

最佳答案

我不知道,也许这听起来很愚蠢,如果这是你正在寻找的答案,我也是 Spring Boot 的新手,对 Spring MVC 也比较陌生,但据我所知,而且是非常简单的解决方案,可能不适用于大型项目:

  1. 对于所有没有访问限制的页面,重定向到登录是没有意义的
  2. 对于那些重定向到受限页面的函数,我刚刚添加了注释 @PreAuthorize("hasAnyRole('ADMIN')")、@PreAuthorize("hasAnyRole('ADMIN, USER')") 或 @PreAuthorize("hasAnyRole('USER')") 取决于哪个角色有权访问该页面。

与身份验证机制一起,这完全符合您的要求。

关于java - Spring MVC - 如果未登录,如何重定向到登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46184827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com