栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Java配置进行n因子身份验证

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Java配置进行n因子身份验证

使用java config进行n因子身份验证的最简单方法是从使用Java
config的单因子身份验证(用户名和密码)的工作示例开始。然后,您只需要进行一些非常小的更改:假设您具有使用Java配置的可运行的单因素身份验证应用程序,则步骤很简单:

首先,定义分层角色,每个因素一个角色。如果只有两要素身份验证,请在数据库中保留现有的一个角色,然后创建仅在运行时分配的具有完全访问权限的第二个角色。因此,当用户登录时,他们将登录到存储在数据库中的最小角色,并且仅向该最小角色授予对一个视图的访问权限,该视图是一种形式,允许他们输入您的控制器刚刚发送给他们的PIN码。通过文本或电子邮件或其他方法。这些分层角色在中定义

SecurityConfig.java
,如下所示:

@Configuration@EnableWebMvcSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter {    @Autowired    private UserDetailsService userDetailsService;    @Override    protected void configure(HttpSecurity http) throws Exception {      http        .csrf().disable()        .formLogin() .loginPage("/login") .defaultSuccessUrl("/getpin") .usernameParameter("j_username") .passwordParameter("j_password") .loginProcessingUrl("/j_spring_security_check") .failureUrl("/login") .permitAll() .and()        .logout() .logoutUrl("/logout") .logoutSuccessUrl("/login") .and()        .authorizeRequests() .antMatchers("/getpin").hasAuthority("get_pin") .antMatchers("/securemain/**").hasAuthority("full_access") .antMatchers("/j_spring_security_check").permitAll() .and()        .userDetailsService(userDetailsService);    }}

其次,添加代码,以在将正确的密码成功输入到处理密码输入表单的控制器代码后,将用户的角色升级为完全访问权限

POST
。在控制器中手动分配完全访问权限的代码为:

Role rl2 = new Role();rl2.setRole("full-access");//Don't save this one because we will manually assign it on login.Set<Role> rls = new HashSet<Role>();rls.add(rl2);CustomUserDetailsService user = new CustomUserDetailsService(appService);Authentication authentication = new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities(rls));SecurityContextHolder.getContext().setAuthentication(authentication);return "redirect:/securemain";

之后,您可以添加任意多个图层

/getpin
。您还可以支持多个授权角色,并使其变得更复杂。但这答案给出了使它与java config一起运行的最简单方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426352.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号