package demo;

import java.io.IOException;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import org.springframework.security.authentication.ott.OneTimeToken;
import org.springframework.security.web.authentication.ott.OneTimeTokenGenerationSuccessHandler;
import org.springframework.stereotype.Component;

/**
 * In production this handler EMAILS or TEXTS the token. Here it just remembers it so a test can read it,
 * then redirects to the page where the user types it in.
 */
@Component
public class MfaTokenCatcher implements OneTimeTokenGenerationSuccessHandler {

    private volatile String last;

    @Override
    public void handle(HttpServletRequest request, HttpServletResponse response, OneTimeToken token) throws IOException {
        this.last = token.getTokenValue();
        response.sendRedirect("/login/ott");
    }

    public String last() {
        return last;
    }
}
