我使用了Spring Security 3.0.5的功能“Remember-Me”,并在我的jsp页面中尝试访问用户的详细信息。春天记得我没有提供正确的用户详细信息
public class UserDetailsImpl implements UserDetails, Serializable
有一些额外的属性(图片网址,全名等)。 现在,如果使用
<sec:authentication property="details.pic"/>
我访问这些属性的正常登录(其中还记得我有没有踢)后,这一切工作正常。
但是,当我关闭浏览器并重新打开我的安全页面时,记住我功能返回另一个对象而不是详细信息对象。
我该如何解决这个问题? 还是应该治疗两种不同的病例?
谢谢。
后来编辑: 我结束了我的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>
它的工作,但我真的不喜欢的方式..
loadByUsername它被调用。问题在于,我没有通过返回UserDetailsImpl,而是每次记住时都会得到一个org.springframework.security.web.authentication.WebAuthenticationDetails对象 - 我得到执行。 –
tXK
I认为你想使用。 AuthenticationDetails是与UserDetails不同的概念。 –
sourcedelica
我更新了一些额外信息的主要帖子,你可以查看一下,看看我迄今为止取得的成就 – tXK