2010-10-17 28 views
11

Tôi có thể hiển thị SPRING_SECURITY_LAST_EXCEPTION.message ("Thông tin đăng nhập không hợp lệ") khi người dùng cố gắng đăng nhập bằng thông tin đăng nhập không chính xác.Bảo mật mùa xuân: Làm cách nào để đặt lại SPRING_SECURITY_LAST_EXCEPTION.message?

jsp đăng nhập của tôi hiện đang sử dụng đoạn mã sau:

<c:if test="${not empty SPRING_SECURITY_LAST_EXCEPTION.message}"> 
    <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" /> 
</c:if> 

Vấn đề của tôi là "Bad Credentials" nhắn vẫn còn đó khi người dùng điều hướng ra khỏi trang đăng nhập và sau đó trở lại.

Tôi làm cách nào để đặt lại SPRING_SECURITY_LAST_EXCEPTION.message khi người dùng làm mới trang đăng nhập?

Trả lời

15

Cách tiếp cận điển hình là hiển thị thông báo lỗi chỉ sau khi đăng nhập không thành công, nơi đăng nhập không thành công được xác định bởi tham số yêu cầu. Nghĩa là, bạn cấu hình Xuân An như

<form-login ... authentication-failure-url = "/login?error=1" /> 

và hiển thị thông báo lỗi như

<c:if test="${not empty param['error']}"> 
    <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" /> 
</c:if> 

Tuy nhiên, vì SPRING_SECURITY_LAST_EXCEPTION là một thuộc tính phiên, tôi đoán bạn có thể thiết lập lại nó bằng cách sử dụng phương pháp sau đây:

<c:remove var = "SPRING_SECURITY_LAST_EXCEPTION" scope = "session" /> 
+0

Cảm ơn rất nhiều. Cả hai đề xuất đều hiệu quả. Người thứ hai làm việc khi tôi đặt vào trong c: if, sau c: out. – outis

Các vấn đề liên quan