I'm using the new spring-test in the 3.1 version to run integration tests. It works really well but I can't make the session to work. My code:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration("src/main/webapp")
@ContextConfiguration({"classpath:applicationConte xt-dataSource.xml",
"classpath:applicationContext.xml",
"classpath:applicationContext-security-roles.xml",
"classpath:applicationContext-security-web.xml",
"classpath:applicationContext-web.xml"})
public class SpringTestBase {

@Autowired
private WebApplicationContext wac;
@Autowired
private FilterChainProxy springSecurityFilterChain;
@Autowired
private SessionFactory sessionFactory;

protected MockMvc mock;
protected MockHttpSession mockSession;

@Before
public void setUp() throws Exception {
initDataSources("dataSource.properties");

mock = MockMvcBuilders.webAppContextSetup(wac).addFilters (springSecurityFilterChain).build();
mockSession = new MockHttpSession(wac.getServletContext(), UUID.randomUUID().toString());
}

@Test
public void testLogin() throws Exception {
// this controller sets a variable in the session
mock.perform(get("/")
.session(mockSession))
.andExpect(model().attributeExists("csrf"));

// I set another variable here just to be sure
mockSession.setAttribute(CSRFHandlerInterceptor.CS RF, csrf);

// this call returns 403 instead of 200 because the session is empty...
mock.perform(post("/setup/language")
.session(mockSession)
.param(CSRFHandlerInterceptor.CSRF, csrf)
.param("language", "de"))
.andExpect(status().isOk());
}
}

My session is empty in every request, I don't know why.