title: How to get Spring Boot and OAuth2 example to use password grant credentials other than the default
body: <p>I'm following the basic Spring Boot OAuth2 example from Dave Syer: <a href="https://github.com/dsyer/sparklr-boot/blob/master/src/main/java/demo/Application.java">https://github.com/dsyer/sparklr-boot/blob/master/src/main/java/demo/Application.java</a></p>
  
  <pre><code>@Configuration
  @ComponentScan
  @EnableAutoConfiguration
  @RestController
  public class Application {
  
      public static void main(String[] args) {
          SpringApplication.run(Application.class, args);
      }
  
      @RequestMapping("/")
      public String home() {
          return "Hello World";
      }
  
      @Configuration
      @EnableResourceServer
      protected static class ResourceServer extends ResourceServerConfigurerAdapter {
  
          @Override
          public void configure(HttpSecurity http) throws Exception {
              // @formatter:off
              http
                  // Just for laughs, apply OAuth protection to only 2 resources
                  .requestMatchers().antMatchers("/","/admin/beans").and()
                  .authorizeRequests()
                  .anyRequest().access("#oauth2.hasScope('read')");
              // @formatter:on
          }
  
          @Override
          public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
              resources.resourceId("sparklr");
          }
  
      }
  
      @Configuration
      @EnableAuthorizationServer
      protected static class OAuth2Config extends AuthorizationServerConfigurerAdapter {
  
          @Autowired
          private AuthenticationManager authenticationManager;
  
          @Override
          public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
              endpoints.authenticationManager(authenticationManager);
          }
  
          @Override
          public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
              // @formatter:off
              clients.inMemory()
                  .withClient("my-trusted-client")
                      .authorizedGrantTypes("password", "authorization_code", "refresh_token", "implicit")
                      .authorities("ROLE_CLIENT", "ROLE_TRUSTED_CLIENT")
                      .scopes("read", "write", "trust")
                      .resourceIds("sparklr")
                      .accessTokenValiditySeconds(60)
              .and()
                  .withClient("my-client-with-registered-redirect")
                      .authorizedGrantTypes("authorization_code")
                      .authorities("ROLE_CLIENT")
                      .scopes("read", "trust")
                      .resourceIds("sparklr")
                      .redirectUris("http://anywhere?key=value")
              .and()
                  .withClient("my-client-with-secret")
                      .authorizedGrantTypes("client_credentials", "password")
                      .authorities("ROLE_CLIENT")
                      .scopes("read")
                      .resourceIds("sparklr")
                      .secret("secret");
          // @formatter:on
          }
  
      }
  }
  </code></pre>
  
  <p>The example works very well for both types of grants, but the password grant uses the Spring Boot default security user (the one that echo's out "Using default security password: 927ca0a0-634a-4671-bd1c-1323a866618a" during startup).</p>
  
  <p>My question is how do you override the default user account and actually rely on a WebSecurityConfig?  I've added a section like this:</p>
  
  <pre><code>@Configuration
  @EnableWebSecurity
  @EnableGlobalMethodSecurity(prePostEnabled = true)
  protected static class WebSecurityConfig extends WebSecurityConfigurerAdapter {
      @Override
      protected void configure(AuthenticationManagerBuilder authManagerBuilder)
              throws Exception {
          authManagerBuilder.inMemoryAuthentication().withUser("user")
                  .password("password").roles("USER");
      }
  }
  </code></pre>
  
  <p>But it does not seem to override the default Spring user/password even though the documentation suggests that it should.</p>
  
  <p>What am I missing to get this working?</p>