2010-12-28 2 views
0

ich diese Methode des KontextesWie pK zurückzuholen mit Federsicherheits

public UserDetails loadUserByUsername(final String username) 
      throws UsernameNotFoundException, DataAccessException { 
     final EmailCredential userDetails = persistentEmailCredential 
       .getUniqueEmailCredential(username); 
     if (userDetails == null) { 
      throw new UsernameNotFoundException(username + "is not registered"); 
     } 
     final HashSet<GrantedAuthority> authorities = new HashSet<GrantedAuthority>(); 
     authorities.add(new GrantedAuthorityImpl("ROLE_USER")); 

    for (UserRole role:userDetails.getAccount().getRoles()) { 
     authorities.add(new GrantedAuthorityImpl(role.getRole())); 
    } 

    return new User(userDetails.getEmailAddress(), userDetails 
      .getPassword(), true, true, true, true, 
      authorities); 
} 

Im Sicherheits UserDetailService Schnittstelle implementieren ich so etwas tun:

<!-- Login Info --> 
    <form-login default-target-url='/dashboard.htm' login-page="/login.htm" 
     authentication-failure-url="/login.htm?authfailed=true" 
     always-use-default-target='false' /> 

    <logout logout-success-url="/login.htm" invalidate-session="true" /> 
    <remember-me user-service-ref="emailAccountService" key="fuellingsport" /> 
    <session-management> 
     <concurrency-control max-sessions="1" /> 
    </session-management> 

</http> 

Jetzt möchte ich pop Aus dem Pk des angemeldeten Benutzers.

Wie kann ich es in meinen JSP-Seiten zeigen?

Irgendeine Idee?

Antwort

0

Ich denke, Sie suchen nach etwas wie diesem, die in Jsp verwendet werden können.

<security:authentication property="principal.username"/> 
0

Sie können Ihre eigene Klasse erweitern User mit erforderlichen Felder aus und senden Sie es aus UserDetailsService implementieren.

Dann können Sie diese Felder zugreifen, wie durch Raghuram wies darauf hin:

<security:authentication property="principal.pk"/>