如何解决如何使用 Spring Security 在 JSF 中使用令牌进行自定义登录
我要求使用用户名和密码登录,然后根据有效凭据在他的邮件中发送令牌并要求他输入令牌。
我将 Login.xhtml 页面设置为登录页面,如下所示,但结果我是任何表单提交都转到权限过滤器而不是 bean,我需要它首先捕获托管 bean 中的操作以验证输入然后向他发送令牌并验证他的输入。
http.authorizeRequests()
.antMatchers("/","/login.xhtml","/finance.xhtml","/WEB-INF/errorpages/**","/javax.faces.resource/**")
.permitAll().anyRequest().fullyAuthenticated().and().formLogin().loginPage("/login.xhtml")
.defaultSuccessUrl("/index.xhtml").failureUrl("/login.xhtml?authFailed=true").permitAll().and().logout()
.logoutSuccessUrl("/login.xhtml").logoutUrl("/j_spring_security_logout").and().csrf().disable();
解决方法
我将 loginprocessingurl 更改为假 url 并保留登录页面,因此如果未登录,它会重定向到登录页面,然后我正在做正常的事情来验证用户身份,然后使用 authmanger 进行身份验证,它工作正常但不是最佳的,特别是我正在显式重定向到主页(不是用户正在访问的页面)***Authentication auth = authenticationManager .authenticate(new UsernamePasswordAuthenticationToken(email,token)); SecurityContextHolder.getContext().setAuthentication(auth); Faces.redirect("/index.xhtml");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。