2012-07-21 42 views
0

我目前正在研究一個使用Spring Security的系統。我有身份驗證提供程序設置,但我在創建自定義用戶類型時遇到問題,該類型會存儲我需要的所有信息。來自DAL的彈簧定製用戶詳細信息 - 鑄造

在身份驗證提供程序中,我稱之爲「用戶服務」,它是系統中用戶的DAL。這然後返回一個「用戶」對象。這是好的,這一切工作。

但是我接着定義了一個MyCompanyUserDetails對象,它包含了我需要的所有自定義屬性。這個類擴展了「用戶」類。

我的問題是我無法將用戶轉換爲公司用戶詳細信息。我在這裏錯過了什麼嗎?

自定義用戶詳情類型:

public class MyCompanyUserDetails extends User { 

,並在我的身份驗證提供:

// Create/Update the user. 
User raw_user_details = getUser(username_str, groups_of_user); 

// Create our Custom user object filled with the parameters we need for the rest of the system. 
MyCompanyUserDetails details = (MyCompanyUserDetails) raw_user_details; 

的例外,我得到:

java.lang.ClassCastException: User cannot be cast to MyCompanyUserDetails 

任何幫助/指導,將不勝感激。 ..

+0

您可以提供的任何錯誤或異常? – Shades88 2012-07-21 19:31:49

+0

增加了例外 – 2012-07-21 20:37:26

+0

這個MyCompanyUserDetails是哪一類?你已經提到'CompanyUserDetails'類擴展了'User'。如果'MyCompanyUserDetails'還擴展了類'User',那麼你試圖向下轉換實例變量,我認爲這是不可能的,這就是爲什麼你必須得到那個例外 – Shades88 2012-07-21 20:55:53

回答

0

是否有一個簡單的DownCasting問題,如評論中所述的Shades88