поэтому я пытаюсь обеспечить веб-приложение, которое я создал с использованием весны mvc и безопасности. В настоящее время у меня есть основное имя пользователя и пароль с обычной пользовательской страницы входа, работающей с использованием специализированного поставщика проверки подлинности, чтобы предоставить заполненный объект проверки подлинности, который проверяется в отношении базы данных. Мне интересно, как реализовать второй этап ведения журнала, в котором используется TOTP? Я могу получить выдачу и проверку TOTP для работы, но я не знаю, как изменить весеннюю безопасность, чтобы принять изменение авторизации посредством отправки формы токена на другую страницу, кроме указанной мной страницы входа.Spring Security 4 2FA
ответ
Таким образом, в основном то, что я закончил, было использование authy api (http://docs.authy.com/) для выполнения доставки и проверки TOTP. После первоначального входа я предоставляю им ROLE_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.
Это выглядит хорошо. – manish
Вот ссылка на документацию, охватывающую его http://docs.spring.io/spring-security/site/docs/4.0.2.RELEASE/reference/htmlsingle/#tech-intro-sec-context-persistence – Parttimereaper
- 1. Spring Security 4 & CDI
- 2. Spring 4 Restful Security
- 3. Spring Security 4 настроить матчи
- 4. Spring Security 4 с GraniteDS
- 5. Spring MVC, поддерживающий Spring Security 4
- 6. Spring MVC: Spring Security 4 не перехватывает
- 7. Spring Security 4 + OAuth2 = Bad Credentials
- 8. Интеграция Spring Security 4 и JSF 2
- 9. Spring security 4 @PreAuthorize (hasAuthority()) access denied
- 10. Получить HttpServletRequest, HttpServletResponse в Spring Security 4
- 11. Spring Boot Security 4 custom PasswordEncoder
- 12. Spring Security 4 перехват анонимного пользователя AccessDeniedException
- 13. Spring Security 4 - получить разрешение отображения
- 14. Spring Security 4 Требуется менеджер аутентификации
- 15. Spring Security 4 Не назначать роль администратора
- 16. Настройка Spring Security без XML весной 4
- 17. spring security 4 csrf disable через xml
- 18. Spring MVC 4 Загрузить файл, заблокированный Spring Security
- 19. Spring Security 3.0 функциональность Spring Security 2.0.2
- 20. Spring Security
- 21. Spring security
- 22. Spring Security
- 23. Spring Security ACL Heirarchy
- 24. Override Spring Security autoconfiguration
- 25. Spring Security Servlet Login
- 26. Spring security userdetails: org.springframework.security.authentication.DisabledException
- 27. Spring Social facebook + Spring Security
- 28. spring-security & spring-mvc configuration
- 29. Spring-ws and Spring security
- 30. Spring + Spring Security + Hibernate org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary
Существует много способов сделать это. Самое простое: a. Разрешить анонимный доступ только к странице входа; б. Разрешить доступ только для аутентифицированных пользователей на страницу ввода кода OTP; с. Разрешить доступ только для аутентифицированных пользователей с определенной ролью ко всем другим страницам. Затем перенаправьте пользователя на страницу ввода кода OTP при успешном входе в систему. При успешной записи OTP предоставите обязательную роль пользователю. Для примера реализации этой стратегии см. [Этот пост] (http://altfatterz.blogspot.in/2014/02/two-factor-authentication-with-spring.html). – manish