2011-03-08 44 views
1

在spring安全登錄頁面,我有公司名稱,用戶名和密碼。 當我點擊登錄按鈕時,它重定向到index.jsp。我想在index.jsp中訪問公司名稱。 我正在使用如何從彈簧安全的登錄頁面訪問額外的字段?

SecurityContextHolder.getContext().getAuthentication().getName(); 

SecurityContextHolder.getContext().getAuthentication().getCredentials(); 

的用戶名和密碼,但我wnat以檢索公司名稱。怎麼做?

+0

而不是重定向,如果您在成功認證後轉發,則所有請求參數都將在index.jsp中可用。 – Ritesh 2011-03-10 00:40:13

回答

2

假設您已經登錄,並且您需要獲取從數據庫中檢索到的公司名稱。首先,您需要反對實施UserDetails,這將保存在UserDetailsService並添加您需要的任何變量(公司等)。

public class CustomUserDetails implements UserDetails{  
    private String password; 
    private String username; 
    private String companyName; 
} 

比在您的自定義Userdetails實施的類型轉換中。

CustomUserDetails customDetails (CustomUserDetails)SecurityContextHolder.getContext().getAuthentication().getCredentials(); 

getCredentials將返回您保存到憑證的內容Object。無論它是什麼類型,您都可以將其返回到您保存的課程中。