我使用了 Spring Security 3.0.5 的“Remember-Me”功能,并在我的 jsp 页面中尝试访问用户的详细信息。
public class UserDetailsImpl implements UserDetails, Serializable
带有一些额外的属性(图片网址、全名等)。现在,如果我使用访问这些属性
<sec:authentication property="details.pic"/>
正常登录后(记住我功能没有启动)一切正常。
但是,当我关闭浏览器并重新打开我的安全页面时,remember-me 功能会返回另一个对象而不是 details 对象。
我怎样才能解决这个问题 ?还是我应该对待这两种不同的情况?
谢谢你。
后来编辑: 我最终在我的jsp中有这个:
<sec:authorize access="isRememberMe()">
<c:set var="user" value="${pageContext.request.userPrincipal.principal}" />
</sec:authorize>
<sec:authorize access="isFullyAuthenticated()">
<c:set var="user" value="${pageContext.request.userPrincipal.details}" />
</sec:authorize>
它可以完成工作,但我真的不喜欢这种方法..