anchor.diff:  [[test-method]]
   == Testing Method Security
   
  -This section demonstrates how to  use Spring Security's Test support to test method based security.
  +This section demonstrates how to use Spring Security's Test support to test method based security.
   We first introduce a `MessageService` that requires the user to be authenticated in order to access it.
   
   [source,java]
  
positive.code: 
  The question is "How could we most easily run the test as a specific user?"
  The answer is to use `@WithMockUser`.
  The following test will be ran as a user with the username "user", the password "password", and the roles "ROLE_USER".
  
  [source,java]
  ----
  
negative.code: 
  This is a basic example of how to setup Spring Security Test. The highlights are:
  
  <1> `@RunWith` instructs the spring-test module that it should create an `ApplicationContext`. This is no different than using the existing Spring Test support. For additional information, refer to the http://docs.spring.io/spring-framework/docs/4.0.x/spring-framework-reference/htmlsingle/#integration-testing-annotations-standard[Spring Reference]
  <2> `@ContextConfiguration` instructs the spring-test the configuration to use to create the `ApplicationContext`. Since no configuration is specified, the default configuration locations will be tried. This is no different than using the existing Spring Test support. For additional information, refer to the http://docs.spring.io/spring-framework/docs/4.0.x/spring-framework-reference/htmlsingle/#testcontext-ctx-management[Spring Reference]
  
  NOTE: Spring Security hooks into Spring Test support using the `WithSecurityContextTestExecutionListener` which will ensure our tests are ran with the correct user.
  It does this by populating the `SecurityContextHolder` prior to running our tests.
  After the test is done, it will clear out the `SecurityContextHolder`.
  If you only need Spring Security related support, you can replace `@ContextConfiguration` with `@SecurityTestExecutionListeners`.
  