我目前正在开发一个使用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
任何帮助/指导都将不胜感激......
答案 0 :(得分:0)
评论中的Shades88是一个简单的DownCasting问题