login.jsp로 로그인 서블릿을 호출하기 전과 후에 일부 로직을 구현해야합니다.GateIn : 로그인 서블릿 용 필터
그래서 url/login 필터를 작성했습니다. 나는 일부 작업에 대한 사용자 프로파일을 얻을 필요가, 그래서 나는이 LoginFilter 클래스 생성 :
public class LoginFilter implements Filter {
private static Logger logger = Logger.getLogger(LoginFilter.class);
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
String username = httpRequest.getParameter("username");
String password = httpRequest.getParameter("password");
chain.doFilter(request, response);
PortalRequestContext context = PortalRequestContext.getCurrentInstance();
if (context == null)
logger.info("PortalRequestContext is NULL");
else {
String userId = context.getRemoteUser();
if (userId == null || userId.equals(""))
logger.info("Login failed, IP:" + httpRequest.getRemoteAddr());
else
logger.info("Login executed, username:" + userId);
}
}
문제는 "문맥"(PortalRequestContext는) 항상 null입니다입니다. 내가 뭘 잘못 했니? 이것이 올바른 접근 방법입니까?