我有一个自定义用户详细信息对象,其中包含名字部分。下面的用户名有效,但我想要第二个类似的东西。如何访问此自定义属性?
<security:authentication property="principal.username" />
<security:authentication property="principal.firstname" />
我有一个自定义用户详细信息对象,其中包含名字部分。下面的用户名有效,但我想要第二个类似的东西。如何访问此自定义属性?
<security:authentication property="principal.username" />
<security:authentication property="principal.firstname" />
我认为您尝试了上述方法并且它不起作用。
检查您的自定义用户详细信息类,以确保“名字”属性的 getter 和 setter 方法的大小写正确。
为我工作。这是我的测试代码:-
CustomUserDetails 类
public class CustomUserDetails implements UserDetails {
public String getFirstName() {
return "hello";
}
...
}
JSP 中的自定义标签
以下标签返回hello
.
<security:authentication property="principal.firstName" />
顺便说一句,请确保您没有getFirstName()
进入匿名课程,因为那是行不通的。
我在这里想说的是,不要这样做:-
...
return new UserDetails() {
// adding extra method here will not work
public String getFirstName() {
return "hello";
}
public String getUsername() {
return "test";
}
...
};
... 做这个:-
...
// this class implements UserDetails and contains getFirstName()
CustomUserDetails csd = new CustomUserDetails();
csd.set...(...)
...
return csd;