[[servlet-authentication-unpwd]] = Username/Password Authentication :figures: images/servlet/authentication/unpwd :icondir: images/icons One of the most common ways to authenticate a user is by validating a username and password. As such, Spring Security provides comprehensive support for authenticating with a username and password. [[servlet-authentication-unpwd-input]] == Reading the Username & Password Spring Security provides the following built in mechanisms for reading a username and password from the `HttpServletRequest`: * xref:servlet/authentication/passwords/form.adoc#servlet-authentication-form[Form Login] * xref:servlet/authentication/passwords/basic.adoc#servlet-authentication-basic[Basic Authentication] * xref:servlet/authentication/passwords/digest.adoc#servlet-authentication-digest[Digest Authentication] [[servlet-authentication-unpwd-storage]] == Storage Mechanisms Each of the supported mechanisms for reading a username and password can leverage any of the supported storage mechanisms: * Simple Storage with xref:servlet/authentication/passwords/in-memory.adoc#servlet-authentication-inmemory[In-Memory Authentication] * Relational Databases with xref:servlet/authentication/passwords/jdbc.adoc#servlet-authentication-jdbc[JDBC Authentication] * Custom data stores with xref:servlet/authentication/passwords/user-details-service.adoc#servlet-authentication-userdetailsservice[UserDetailsService] * LDAP storage with xref:servlet/authentication/passwords/ldap.adoc#servlet-authentication-ldap[LDAP Authentication]