当前位置: 首页 > 知识库问答 >
问题:

Spring安全4 2FA

高高雅
2023-03-14

因此,我正在尝试保护我使用Spring mvc和安全构建的Web应用程序。我目前拥有来自正常自定义登录页面的基本用户名和密码,该页面使用自定义身份验证提供程序工作,以提供针对数据库进行验证的填充身份验证对象。我想知道的是如何实现使用TOTP的第二阶段登录?我可以让TOTP发布和验证工作,但不确定如何修改Spring Security以通过在我指定的登录页面以外的页面上提交令牌的表单来接受对授权的更改。

共有1个答案

潘修文
2023-03-14

所以基本上我最终使用的是authy api(http://docs.authy.com/)进行TOTP交付和验证。初次登录后,我授予他们角色\u PRE_AUTH,然后将他们发送到受保护的页面以处理TOTP。然后我用

        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>(auth.getAuthorities());
        authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
        Authentication newAuth = new UsernamePasswordAuthenticationToken(auth.getPrincipal(), auth.getCredentials(), authorities);
        SecurityContextHolder.getContext().setAuthentication(newAuth);

一旦我验证了用户有有效的TOTP,就为他们更新角色。

 类似资料:
  • 问题内容: 我在我们的应用程序中使用Spring安全性,并希望使用存储在数据库中的更改密码选项的密码来验证用户输入。 密码如下存储在DB中。 在此,用户输入的密码使用上述逻辑进行编码并存储在DB中。现在,我只是想从用户那里获取更改密码的密码。从用户那里获得密码后,我使用上述逻辑进行编码,然后尝试与数据库进行比较。即使我使用相同的逻辑进行编码,编码后的值似乎也有所不同。 我的配置来自: 我不确定比较

  • 客户端需要LDAP和本地JDBC身份验证机制。 它们需要一种对两组用户都通用的授权机制。 应该根据用户的角色限制用户进入某些页面。以及需要应用于每个用户的单独权限(创建、更新、删除)集 那么,我如何实现按页授权,这将由管理员决定谁(哪个角色)可以访问哪个页面? 是否应该在配置中指定每个角色页组合?是否有任何方法可以动态地改变页面和角色,因为角色可能会在以后添加。

  • 当我使用security.basic.enabled=false在具有以下依赖项的Spring Boot项目上禁用安全性时: 为了修复此异常,我必须添加属性-management.security.enabled=false。我的理解是,当执行器在类路径中时,应该将security.basic.enabled=false和management.security.enabled=false设置为禁用

  • 我试图在我的资源服务器上配置Swagger身份验证,以便我可以根据我的授权服务器进行身份验证。 我将资源服务器和授权服务器分开。它们都使用不同的端口在我的本地主机上启动。 端口8083上的资源服务器 每当我试图“授权”时,就会出现CORS问题。 我从另一个网站分叉了一个项目作为我的测试场地。下面是分叉项目。 https://github.com/cbriarnold/oauth2-spring-b

  • 问题陈述:我有一些Rest的API,它们使用Spring安全性进行CSRF保护。此外,这些API将通过Angular WEB UI从不同的Origin/domain访问。我不需要Spring Authentication,因为身份验证由Siteminder处理。 方法:我遵循了Dave Syer提供的CSRF保护的链接:登录页面:Angular JS和Spring Security Part II

  • 因此,作为一个初学者,我曾尝试使用spring boot 2.2.11、spring security、thymeleaf和json web令牌创建一个ecommmerce网站,我的问题是,当用户对模板进行身份验证时,即使我在模板中放置了thymeleaf的isAnonyms和IsAuthentificated标记,模板也没有更改。 我有两个问题: 1-/如何告诉所有控制器用户已经登录? 2-/如