package eu.europeana.cloud.service.uis.security;
import org.junit.After;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.test.context.ContextConfiguration;
@ContextConfiguration(locations = {
"classpath:uis-security-business-context-test.xml",
"classpath:authentication-context-test.xml", // authentication uses a static InMemory list of usernames, passwords
"classpath:authorization-context-test.xml" // authorization uses Embedded cassandra
})
public abstract class AbstractSecurityTest extends CassandraTestBase {
@Autowired
@Qualifier("authenticationManager")
private AuthenticationManager authenticationManager;
@After
public void clear() {
SecurityContextHolder.clearContext();
}
protected void login(String name, String password) {
Authentication auth = new UsernamePasswordAuthenticationToken(name, password);
SecurityContextHolder.getContext().setAuthentication(authenticationManager.authenticate(auth));
}
}