package org.transgalactica.fwk.test.util; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import org.springframework.security.authentication.AnonymousAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; public abstract class SecurityContextTestUtils { public static final UserDetails ADMINISTRATEUR = new User("administrateur", "mdp", true, true, true, true, Collections.singletonList(new SimpleGrantedAuthority("ROLE_ADMINISTRATEUR"))); protected SecurityContextTestUtils() { } public static void setAnomymeInContext() { GrantedAuthority ga = new SimpleGrantedAuthority("ROLE_ANONYMOUS"); SecurityContextHolder.getContext().setAuthentication( new AnonymousAuthenticationToken("AnonymousAuthentication", "Anomymous User", Collections .singletonList(ga))); } public static void setAdministrateurInContext() { setUsernamePasswordAuthenticationTokenInSecurityContext(ADMINISTRATEUR); } public static void setUsernamePasswordAuthenticationTokenInSecurityContext(UserDetails userDetails) { SecurityContextHolder.getContext().setAuthentication( new UsernamePasswordAuthenticationToken(userDetails, userDetails.getPassword(), userDetails .getAuthorities())); } public static void setUsernamePasswordAuthenticationTokenInSecurityContext(String usename, String password, String... roles) { Collection<GrantedAuthority> gas = new HashSet<GrantedAuthority>(); for (String role : roles) { gas.add(new SimpleGrantedAuthority(role)); } UserDetails user = new User(usename, password, true, true, true, true, gas); setUsernamePasswordAuthenticationTokenInSecurityContext(user); } }