我想用其他用戶信息存儲在用戶名和密碼等userId cookies中。當我使用彈簧安全功能記住我的功能時,我可以從cookie中獲取用戶名。我可以使用彈簧安全保存cookie中的完整用戶信息記住我
在彈簧的security.xml我使用自定義的userDetailService,我已經實現了它像
<http>
......
<logout invalidate-session="true"
logout-success-url="/"
logout-url="/logout.htm"/>
<remember-me user-service-ref="myUserDetailsService" key="89dqj219dn910lsAc12" token-validity-seconds="864000"/>
</http>
<authentication-manager>
<authentication-provider user-service-ref="myUserDetailsService">
<password-encoder ref="myEnocdePassword" >
<salt-source user-property="username"/>
</password-encoder>
</authentication-provider>
</authentication-manager>
<beans:bean id="myEnocdePassword" class="com.mycom.myproject.utility.MyEnocdePassword" />
在MyUserDetailService.java我有這樣的代碼
@Override
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
try {
boolean enabled = true;
boolean accountNonExpired = true;
boolean credentialsNonExpired = true;
boolean accountNonLocked = true;
com.mycom.myproject.db.mybatis.model.User domainUser = userService.getUserByName(username);
return new User(
domainUser.getUsername(),
domainUser.getPassword(),
enabled,
accountNonExpired,
credentialsNonExpired,
accountNonLocked,
getAuthorities(domainUser.getRoleId);
} catch (Exception e) {
throw new RuntimeException(e);
}
在我的控制器類,我可以得到用戶名使用
String name = SecurityContextHolder.getContext().getAuthentication()
.getName();
但我想存儲其他用戶的詳細信息在cookie中像userId。我該怎麼做?我是否需要通過userDao(名稱)獲取用戶信息,然後手動將用戶信息存儲在cookie中?
只是...不。密碼有**沒有**的地方在cookie中來回發送。 – pap
是的,但如果我必須存儲userId。 – user965884
爲什麼你需要將它存儲在cookies中? – axtavt