/**
* @see AbstractCoreSession#authenticate(String, String)
*/
public void signInAs(String username) throws UsernameNotFoundException {
// on charge l'utilisateur
// on le passe dans une méthode surchargeable -> implémentation par défaut à faire
// Sitra -> revoir l'implémentation par défaut
if (!hasSignInAsPermissions(getUser(), userService.getByUserName(username))) {
throw new SecurityException("L'utilisateur n'a pas les permissions nécessaires");
}
UserDetails userDetails = userDetailsService.loadUserByUsername(username);
RunAsUserToken token = new RunAsUserToken(defaultJpaSecurityConfig.getRunAsKey(),
userDetails, "runAs", userDetails.getAuthorities(), null);
// On garde l'authentification de l'utilisateur pour pouvoir lui proposer de se reconnecter.
Authentication previousAuthentication = SecurityContextHolder.getContext().getAuthentication();
if (!(previousAuthentication instanceof AnonymousAuthenticationToken)) {
originalAuthentication = previousAuthentication;
}
signOut();
Authentication authentication = authenticationManager.authenticate(token);
SecurityContextHolder.getContext().setAuthentication(authentication);
doInitializeSession();
bind();
signIn(true);
}
AbstractCoreSession.java 文件源码
java
阅读 31
收藏 0
点赞 0
评论 0
项目:owsi-core-parent
作者:
评论列表
文章目录