Я реализую двухфакторную аутентификацию в своем веб-проекте. мы используем SHIRO для аутентификации и авторизации. Как только пользователь вошел в систему (SecurityUtils.getSubject(). Login (subjectToken);) пользователь может открыть любую страницу. Я хочу спросить у пользователя PIN-код, отправленный на его мобильный телефон, для завершения проверки подлинности. На следующей странице после входа в систему, если пользователь не вводит ПИН-код и напрямую не открывает домашнюю страницу путем написания URL-адреса, он может обойти проверку PIN-кода. Я проверил roleRedirect и authenticationRedirect, но запрос не поступает в эти фильтры. Может ли кто-нибудь сказать мне, что является правильным способом реализовать два фактора с помощью SHIRO.Двухфакторная аутентификация с использованием SHIRO
1
A
ответ
0
У Shiro еще нет поддержки для двух факторов. Таким образом, вам нужно будет обрабатывать отслеживание состояния между начальным паролем и вторым фактором. Или вы можете управлять этим с помощью авторизации. Когда пользователь регистрируется, как только они вводят действительный пароль, но у них нет заданного разрешения «2factor». Если этого разрешения нет, вы можете перенаправить на свою вторую страницу факторов, после ввода вы можете предоставить пользователю разрешение «2facter».
0
Просто создайте фильтр и проверьте, что сессия имеет отпущенную переменную true или нет, как обычно.
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
// pass the request along the filter chain
//System.out.println(enabled);
if(enabled){
if(SecurityUtils.getSubject().getPrincipal()!=null){
if(request instanceof HttpServletRequest){
HttpSession session = ((HttpServletRequest) request).getSession();
LoggedInUser user = (LoggedInUser) session.getAttribute("userinfo");
String url = ((HttpServletRequest) request).getRequestURL().toString();
//System.out.println("url is "+ url +" subject is: "+ SecurityUtils.getSubject().isAuthenticated());
if(SecurityUtils.getSubject().isAuthenticated() && !url.contains("public") && !user.isOTPverified()){
if(user.getOTP() == null)
{
if(user.getTOTPSecret()!=null && user.getTOTPSecret().length()>0)
{
user.setOTP("TOTP");
}else
{
user.setOTP(OTPUtils.generateOTP());
new SendMail().send("[email protected]", "OTP for accessing ","OTP is "+ user.getOTP(), 1, new String[] {});
}
}
//user.setOTPverified(true);
((HttpServletRequest) request).getRequestDispatcher("OTPVerify.jsp").forward(request, response);
return;
}
}
}
}
chain.doFilter(request, response);
}
Смежные вопросы
- 1. Обход Google Двухфакторная аутентификация
- 2. PhpStorm и двухфакторная аутентификация
- 3. Двухфакторная аутентификация -Identity Server
- 4. Qt C++ двухфакторная аутентификация
- 5. Что такое двухфакторная аутентификация?
- 6. Play Framework 2 двухфакторная аутентификация?
- 7. Как отключить TFA (двухфакторная аутентификация)
- 8. Joomla - двухфакторная аутентификация - Opt-in
- 9. Двухфакторная аутентификация с использованием Basic Auth для API REST?
- 10. how to - github двухфакторная аутентификация с eclipse
- 11. Двухфакторная аутентификация с пружинной защитой oauth2
- 12. Социальная аутентификация с Apache Shiro
- 13. Shiro, многофакторная аутентификация
- 14. двухфакторная аутентификация на GCE для предотвращения удаления
- 15. Недорогая двухфакторная аутентификация для домашнего сервера?
- 16. JS SDK и авторизация входа (двухфакторная аутентификация)
- 17. Ошибка входа в аккаунт Google (двухфакторная аутентификация)
- 18. Как работает двухфакторная аутентификация со случайными числами?
- 19. двухфакторная аутентификация не содержит определения для GetEmailConfirmationTokenAsync
- 20. двухфакторная аутентификация для Wi-Fi сети?
- 21. Двухфакторная аутентификация для IBM Domino XPages
- 22. Apache Shiro authcBasic аутентификация с использованием Java и apache HttpClient
- 23. Apache Shiro (авторизация) + SiteMinder (аутентификация)
- 24. Apache Shiro Аутентификация с Facebook OAuth
- 25. Аутентификация пользователей через LDAP с помощью Shiro
- 26. Контроль доступа с использованием apache shiro
- 27. Joomla 3.x - двухфакторная аутентификация отключена, но все еще работает
- 28. двухфакторная аутентификация не работает при доступе из приложения
- 29. Как настроить otp (двухфакторная аутентификация) на сервере IIS (ftp server)
- 30. Django двухфакторная аутентификация, требуется 2FA для определенных просмотров