来自DAL的Spring自定义用户详细信息 - Casting

时间:2012-07-21 18:16:50

标签: java spring casting data-access-layer

我目前正在开发一个使用Spring Security的系统。我有身份验证提供程序设置,但我在创建自定义用户类型时遇到问题,该用户类型将存储我需要的所有信息。

在身份验证提供程序中,我将“用户服务”称为系统用户的DAL。然后返回“用户”对象。这很好,而且一切正常。

但是我已经定义了一个包含我需要的所有自定义属性的MyCompanyUserDetails对象。该类扩展了“用户”类。

我的问题是我无法将用户强制转换为CompanyUserDetails。我在这里错过了什么吗?

自定义用户详细信息类型:

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

任何帮助/指导都将不胜感激......

1 个答案:

答案 0 :(得分:0)

评论中的Shades88是一个简单的DownCasting问题