Now, let's try to understand what is the scenario where we want to customize authentication provider
so that we can stop leveraging user detail service and password and codes.
So think of a scenario where we have three applications, one application which accepts username and
password, where the user interface controls and the request will go to the backend and the authentication
will happen by the spring security.
So this is a scenario which we are discussing as of now.
So we just have a plain scenario and we are good with this scenario, with whatever Springs security
provider.
So spring security framework, how this scenario implemented for us in terms of user retail service,
user details, manager password and coder, considering that this is the most famous way of doing authentication
of end user inside any Web application or mobile application, but think of a scenario where you have
an application which will accept either fingerprint or face recognition or iris scanning to authenticate
the user.
And at the same time, we may also have some application where we want to authenticate the user using
the code that he receives to his email or mobile.
So here a single organization have various scenarios.
One is plain username and password, another use using fingerprint or face recognition.
And the third scenario is like using your typical SO to handle all the scenarios.
Obviously the default implementation provided by spring security in terms of user detail, service and
password encoder is not good enough because in the scenarios of fingerprint scanning or face recognition
or typical, I want to do my own authentication logic inside my authentication provider by implementing
it.
And spring security also allows you to maintain as many Nemeroff providers as you want.
Like in this scenario, I can help all three providers implemental inside my application based upon
the input coming from the user.
The corresponding authentication provider will be invoked by the authentication manager, like our saying
authentication manager will call authentication provider to perform the authentication of the user.
So it's the responsibility of the authentication manager to call all the providers to one of the provider
accepts that request.
OK, this is the format that I was expecting and I can perform authentication for this format.
And once that authentication provider provides the results, so based upon that authentication manager
will perform the authentication.
Now we understand what is a scenario that we have to customize.
Authentication provider.
Let's try to look into the core of the authentication provider.
What are the methods that we have to go over?
And also authentication manager interface also and how it manages all these providers that we are configuring
inside the framework.
Thank you.
And see you in the next video by.