Annotation Type WithMockUser


  • @Target({METHOD,TYPE})
    @Retention(RUNTIME)
    @Inherited
    @Documented
    @WithSecurityContext(factory=org.springframework.security.test.context.support.WithMockUserSecurityContextFactory.class)
    public @interface WithMockUser
    When used with WithSecurityContextTestExecutionListener this annotation can be added to a test method to emulate running with a mocked user. In order to work with MockMvc The SecurityContext that is used will have the following properties:
    • The SecurityContext created with be that of SecurityContextHolder.createEmptyContext()
    • It will be populated with an UsernamePasswordAuthenticationToken that uses the username of either value() or username(), GrantedAuthority that are specified by roles(), and a password specified by password().
    Since:
    4.0
    See Also:
    WithUserDetails
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      java.lang.String[] authorities
      The authorities to use.
      java.lang.String password
      The password to be used.
      java.lang.String[] roles
      The roles to use.
      TestExecutionEvent setupBefore
      Determines when the SecurityContext is setup.
      java.lang.String username
      The username to be used.
      java.lang.String value
      Convenience mechanism for specifying the username.
    • Element Detail

      • value

        java.lang.String value
        Convenience mechanism for specifying the username. The default is "user". If username() is specified it will be used instead of value()
        Returns:
        Default:
        "user"
      • username

        java.lang.String username
        The username to be used. Note that value() is a synonym for username(), but if username() is specified it will take precedence.
        Returns:
        Default:
        ""
      • roles

        java.lang.String[] roles

        The roles to use. The default is "USER". A GrantedAuthority will be created for each value within roles. Each value in roles will automatically be prefixed with "ROLE_". For example, the default will result in "ROLE_USER" being used.

        If authorities() is specified this property cannot be changed from the default.

        Returns:
        Default:
        {"USER"}
      • authorities

        java.lang.String[] authorities

        The authorities to use. A GrantedAuthority will be created for each value.

        If this property is specified then roles() is not used. This differs from roles() in that it does not prefix the values passed in automatically.

        Returns:
        Default:
        {}
      • password

        java.lang.String password
        The password to be used. The default is "password".
        Returns:
        Default:
        "password"