package +zoccolo+.web.authentication; import java.util.Collection; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; import +zoccolo+.web.authentication.authority.UserAuthorityUtils; import +tabposition+.+tabella+; /** * An implementation of {@link UserContext} that looks up the {@link CalendarUser} using the Spring Security's * {@link Authentication} by principal name. * * @author Rob Winch * */ @Component public class SpringSecurityUserContext implements UserContext { /** * Get the {@link CalendarUser} by casting the {@link Authentication}'s principal to a {@link CalendarUser}. */ @Override public +tabella+ getCurrentUser() { SecurityContext context = SecurityContextHolder.getContext(); Authentication authentication = context.getAuthentication(); if (authentication == null) { return null; } return (+tabella+) authentication.getPrincipal(); } /** * Sets the {@link CalendarUser} as the current {@link Authentication}'s principal. It uses */ @Override public void setCurrentUser(+tabella+ user) { if (user == null) { throw new IllegalArgumentException("user cannot be null"); } Collection authorities = UserAuthorityUtils.createAuthorities(user); UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(user, user.get+password+(),authorities); SecurityContextHolder.getContext().setAuthentication(authentication); } }