Как проверить дополнительный параметр с пружинной безопасностью на пользовательской странице входа? - PullRequest
0 голосов
/ 25 декабря 2018

Я новичок в Java Spring Framework.Я хочу проверить параметр, когда пользователь входит в систему. Я могу написать customAuthenticationProvider, посмотреть параметр и проверить его.Проблема в том, что я не могу остановить вход в систему по умолчанию, если параметр неверен.

Что я могу сделать?

@Component
public class CustomAuthenticationProvider implements AuthenticationProvider {

    @Autowired(required = false)
    private HttpServletRequest request;

    @Autowired(required = false)
    private HttpSession session;

    private static final String CAPTCHA2 = "CAPTCHA";

    public CustomAuthenticationProvider() {
        // nothing
    }

    @Override
    public Authentication authenticate(Authentication authentication)
            throws AuthenticationException {
        System.out.println("--- In Login method ----");

        String requestCaptcha = request.getParameter("captcha");
        String sessionCaptcha = session.getAttribute(CAPTCHA2).toString();
        System.out.println("request captcha= " + requestCaptcha);
        System.out.println("session captcha= " + sessionCaptcha);

        String name = authentication.getName();
        String password = authentication.getCredentials().toString();

        if(requestCaptcha.equals(sessionCaptcha)){
            return null;
        }
        else {
            System.out.println("problem");
            throw new BadCredentialsException("Wrong Captcha.");
        }
    }

    @Override
    public boolean supports(Class<?> authentication) {
        return true;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...