java - 春季安全登录网址
问题描述
我正在尝试将 /login 配置为在成功验证后登陆我的主页。例如,“http://localhost:8080/app/login”,让我进入我的主页,即“http://localhost:8080/app/home”。如果我再次单击相同的 URL,它会将我重定向到 http://localhost:8080/app。但是,如果我执行 http://localhost:8080/app/logout 然后再次尝试登录,那很好。
为什么在尝试多次登录时它不会将我重定向到同一个主页?
http.csrf().disable().authorizeRequests().antMatchers(staticResources).permitAll().antMatchers("/login*").permitAll().anyRequest().authenticated().and()
.formLogin().loginPage("/login").defaultSuccessUrl("/home")
.failureHandler(authFailureHandler).successHandler(sessionTimeoutAuthSuccessHandler).permitAll().and()
.logout().logoutSuccessHandler(logoutSuccessHandler()).deleteCookies(JSESSIONID)
.invalidateHttpSession(true).clearAuthentication(true);
解决方案
使用您共享的配置,如果用户"/home"
在身份验证之前没有访问过安全页面,他们将在身份验证成功后被重定向到。
如果他们在进行身份验证之前访问了安全页面,那么他们将被重定向到该页面。
如果您希望始终重定向到"/home"
,则可以设置alwaysUse
为true
。
.defaultSuccessUrl("/home", true)
推荐阅读
- python - 将浮点数放在python中的f.write中
- swift - 在 Swift 中使用 Cuckoo,为什么调用 stub 会抱怨 GeneratedMocks 中的类不符合 Mock 协议?
- docker - 将服务部署到 docker swarm 时,Traefik 未更新
- c# - 创建一个类来存储使用不同接口的类
- bash - 从 ls 命令获取访问权限、文件名及其大小
- java - 尝试生成 Java Protobuf 代码时,“包 io.grpc 不存在”和“仅从类和接口静态导入”
- stripe-payments - 获取卡条纹结帐的最后 4 位数字
- firebase - ERROR_UNKNOWN 从 Firebase 存储下载文件
- javascript - ng-view 未在引导页面中加载
- javascript - 我使用 React.js 制作的管理面板的博客文章编辑按钮出现问题