title: Spring boot security get username and password from authentication login to access rest services
body: <p>I am new to Spring. Client requests to access the rest services, giving username and password in http login provided by Spring, as shown in the image. I don't want to save credentials('username and password') in the application.properties. When I provide the credentials and enter login button, I need to read data (in my case username-'root' and pwd-'root') provided by the user from login and use it in my algorithm, do the process and then authenticate. Is there a way? </p>
  
  <p>Please help me, if anyone has any idea.</p>
  
  <p><a href="https://i.stack.imgur.com/9nwh0.png" rel="nofollow noreferrer">authentication login screen </a>
  Here is my sample code:</p>
  
  <pre><code>@Configuration
  @EnableWebSecurity
  public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
  
  @Autowired
  private MyBasicAuthenticationEntryPoint authEntryPoint;
  
  @Autowired
  private MyUserDetailsService userDetailsService;
  
  @Autowired
  public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
      // auth.inMemoryAuthentication().withUser("user1").password("user1Pass").roles("ADMIN")
      // .and().withUser("user2").password("user2Pass").roles("ADMIN");
  
      auth.authenticationProvider(authenticationProvider());
  
  }
  
  public DaoAuthenticationProvider authenticationProvider() {
      DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
      provider.setUserDetailsService(userDetailsService);
      // provider.setPasswordEncoder(new BCryptPasswordEncoder());
      return provider;
  
  }
  
  // I am trying like this but not sure is this the right way
  public void details(User user) {
      String name = user.getName();
      String password = user.getPassword();
      System.out.println("name " + name + "password" + password);
  }
  // I am trying like this but not sure is this the right way
  public void userDetails(UsernamePasswordAuthenticationFilter filter) {
      String usernameParameter = filter.getUsernameParameter();
      System.out.println(usernameParameter);
      String passwordParameter = filter.getPasswordParameter();
      System.out.println(passwordParameter);
  }
  
  @Override
  protected void configure(HttpSecurity http) throws Exception {
      http.csrf().disable();
  
      http.authorizeRequests().anyRequest().authenticated();
  
      http.httpBasic().authenticationEntryPoint(authEntryPoint);
  
  }
  
  }
  
  
  @Component
  public class MyBasicAuthenticationEntryPoint extends 
  BasicAuthenticationEntryPoint{
  
  @Override
  public void commence(HttpServletRequest request, HttpServletResponse 
  response,
          AuthenticationException authException) throws IOException, 
  ServletException {
  
      response.addHeader("WWW-Authenticate", "Basic realm="  +  
      getRealmName());
      response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
      PrintWriter printWriter= response.getWriter();
      printWriter.println("Http Status 401-" + authException.getMessage());
  }
  
    @Override
    public void afterPropertiesSet() throws Exception {
      //RealName appears in the login window
      setRealmName("Rashmi");
      super.afterPropertiesSet();
    }
  }
  
  
  
  @SpringBootApplication
  public class SpringRestfulWebServiceApplication extends 
  SpringBootServletInitializer {
  
      @Autowired
      CustomerDetailsController customerDetailsController;
  
      public static void main(String[] args) {
       SpringApplication.run(SpringRestfulWebServiceApplication.class, args);
      }
  
  
      @Override
      protected SpringApplicationBuilder configure(SpringApplicationBuilder 
      application) {
        return application.sources(SpringRestfulWebServiceApplication.class);
      }
  
  }
  </code></pre>