2009-06-22 2 views
1

저는 FORM 인증을 사용합니다.FORM 영역 인증에 실패했는지 확인하는 방법은 무엇입니까?

<login-config> 
    <auth-method>FORM</auth-method> 
    <form-login-config> 
     <form-login-page>/loginPage.jsp</form-login-page> 
     <form-error-page>/loginPage.jsp</form-error-page> 
    </form-login-config>     
</login-config> 

나는 코드의 재사용을 위해, 내 폼 로그인 페이지와 폼 오류 페이지에 동일한 JSP를 사용하고 싶습니다. 나는 영역 (org.apache.catalina.realm.JDBCRealm)을 사용합니다.

내 JSP에서 인증에 실패하면 오류 메시지를 표시하고 싶습니다. 영역에 요청에 아무것도 저장할 수 있습니까? 확인할 수 있습니까?

답변

0

나는 오류 페이지가 HTTP 헤더를 통해 로그인 페이지로 방향을 바꾸고 오류 페이지에 javascript를 포함시켜 오류 아래의 iframe에서 로그인을 열도록함으로써이 작업을 수행했습니다.

+0

감사합니다. 너무 복잡해 보입니다. 가장 쉬운 방법이 있어야합니다. –

1

오류 페이지의 URL에 매개 변수를 추가 오류가 발생 여부를 확인, 당신의 login.jsp에서

<form-login-config> 
    <form-login-page>/login.jsp</form-login-page> 
    <form-error-page>/login.jsp?error=true</form-error-page> 
</form-login-config> 

하고 한 경우에 오류 메시지가 표시 :

<c:if test="${not empty error}"> 
    <p class="error">Login failed. Please try again.</p> 
</c:if> 

이를 양식을 사용하면 로그인이 실패한 특정 이유를 출력 할 수 없습니다. 그러나 보안 고려 사항으로 이미 그렇게하는 것이 좋지 않으므로 문제가되지 않아야합니다. E.G. 은 "해당 이름으로 등록 된 사용자가 없습니다."와 같은 자세한 메시지를 출력하려면을 입력하지 않아야합니다. 또는 "사용자 X의 암호가 틀립니다.", 이는 공격자가 시스템에 침입하는 데 도움이되기 때문입니다.

로그인에 실패했음을 알리십시오. 쉽고 좋은 보안 관행, 당신은 무엇을 더 원합니까? :)

+0

login 페이지에서 설명하는 인증을 실현하는 클래스가 제공하는 오류 페이지에 인수를 전달하는 방법이 있습니까? 사용자가 차단되었거나 아니요, 사용자 이름/비밀번호가 유효하지 않은 경우 사용자에게 보여주고 싶습니다. –

관련 문제