나는 spnego를 사용하여 kerberos를 통해 사용자를 인증하는 Java/Tomcat 응용 프로그램 용 필터를 만들었습니다. 사용자가 IWA (Windows 통합 인증)를 사용하지 않는 경우를 제외하고는 훌륭하게 작동합니다. 필터가하는 첫 번째 작업은 브라우저에서 협상을 시작하기 위해 SC_UNAUTHORIZED (401)로 설정됩니다.상태를 지우는 방법 401 HttpServletResponse.SC_UNAUTHORIZED?
httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED, true);
이렇게되면 동일한 경로가 실행되어 계속해서 실패하고 빈 페이지가 표시됩니다. 내가 한 것은 세션 변수를 추가하여 실패 횟수를 계산합니다. 세 번 실패한 후 SC_UNAUTHORIZED를 지우고 페이지를 계속로드하려고합니다. 이 모든 것은 사용자가 사이트에 로그인하게되지만 로그인하지 않는다는 것을 의미합니다.
내가 깃발을 취소하려면이 옵션을 시도했지만 전혀 아무것도하지 않는다 :
System.out.println("check status 1: " + httpResponse.getStatus());
httpResponse.setStatus(HttpServletResponse.SC_OK);
System.out.println("check status 2: " + httpResponse.getStatus());
모두 인쇄가 나는 두 번째는 당신이 SC_UNAUTHORIZED을 변경하려면 어떻게 200이 될 것으로 예상 한 것 (401) 아직도 일단 그것이 설정되었습니다? 나는 내가 방금 무언가를 놓치고 있다는 것을 압니다.
httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED);
이 기본 인증 경우, 당신은 또한 sendError
하기 전에 헤더를 설정할 수 있습니다 :
을 그 폼 기반 인증을합니까? –