我在一個servlet過濾器中實現了證書認證。我使用httpRequest.getAttribute("javax.servlet.request.X509Certificate")
API獲得客戶端證書。當用戶首次啓動瀏覽器並訪問Web服務器時,底層SSL會請求客戶端證書,瀏覽器會提示您選擇證書。但是,在用戶註銷並且我已使HTTP會話失效後,如果用戶未關閉瀏覽器並返回到Web服務器,則底層SSL不會觸發瀏覽器再次提示進行證書選擇。我認爲這是因爲在HTTP層從Web服務器註銷後,SSL會話沒有被拆除。我的問題是,是否有一種方法可以使servlet中的底層SSL會話失效?一個更普遍的問題是,如何讓瀏覽器在用戶從Web服務器註銷後重新提示選擇證書?是否可以從servelt過濾器中刪除SSL會話?
感謝, 剛
我使用了相同的瀏覽器(IE9),用於測試我的身份驗證篩選器以訪問需要客戶端證書進行身份驗證的遠程網站。當我註銷該網站並返回時,瀏覽器會再次提示輸入證書。所以我相信它可以從服務器端實現。也許該網站的實施是在SSL層。 – Gang