AuthFilter.java
package com.nonononoki.alovoa.component;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import com.nonononoki.alovoa.model.AuthToken;
public class AuthFilter extends UsernamePasswordAuthenticationFilter {
private static final String USERNAME = "username";
private static final String PASSWORD = "password";
private static final String CAPTCHA_ID = "captchaId";
private static final String CAPTCHA_TEXT = "captchaText";
public static final String REDIRECT_URL = "redirect-url";
@Override
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response)
throws AuthenticationException {
String username = request.getParameter(USERNAME);
String password = request.getParameter(PASSWORD);
long captchaId = Long.parseLong(request.getParameter(CAPTCHA_ID));
String captchaText = request.getParameter(CAPTCHA_TEXT);
request.getSession().setAttribute(REDIRECT_URL, request.getParameter(REDIRECT_URL));
AuthToken auth = new AuthToken(username, password, captchaId, captchaText);
AuthenticationManager am = this.getAuthenticationManager();
return am.authenticate(auth);
}
}