5 Implementing authentication

 

This chapter covers

  • Implementing the authentication logic using a custom AuthenticationProvider
  • Using the HTTP Basic authentication method and Form Login authentication method
  • Understanding and managing the SecurityContext

In chapters 3 and 4, we covered a few of the components acting in the authentication flow. We discussed the UserDetails and how to define the prototype to describe a user in Spring Security. We then used the UserDetails in examples where you learned how the UserDetailsService and UserDetailsManager contracts work and how you can implement them. We discussed and used, in examples, the leading implementations of these interfaces as well. Finally, you learned how a PasswordEncoder manages the passwords and how to use one, as well as the Spring Security Crypto Module, with its encryptors and key generators.

However, the AuthenticationProvider layer is the one responsible for the logic of authentication. The AuthenticationProvider is the place where you find the conditions and instructions that decide whether to authenticate a request. The component that delegates this responsibility to the AuthenticationProvider is the AuthenticationManager, which receives the request from the HTTP filter layer. We’ll discuss the filters layer in detail in chapter 9. The authentication process has only two possible results:

5.1      Understanding the AuthenticationProvider

5.1.1   Representing the request during authentication

5.1.2   Implementing the custom authentication logic

5.1.3   Applying the custom authentication logic

5.2      Using the SecurityContext

5.2.1   Using a holding strategy for the security context

5.2.2   Using a holding strategy for asynchronous calls

5.2.3   Using a holding strategy for standalone applications

5.2.4   Forwarding the security context with a DelegatingSecurityContextRunnable

5.2.5   Forwarding the security context with DelegatingSecurityContextExecutorService

5.3      Understanding HTTP Basic and Form Login authentication methods

5.3.1   Using and configuring HTTP Basic

5.3.2   Implementing the authentication with the Form Login method

5.4      Summary

sitemap