= Form Login + One-Time-Token Login MFA Sample This sample demonstrates Spring Security's support for multifactor authentication, specifically when using username/password and one-time-token as the two factors. [[usage]] == Usage To use the application, please run: [source,bash] ---- ./gradlew :bootRun ---- You can then navigate to http://localhost:8080 where you will be presented with the default page, showing both the login and ott forms. You can start with either; once authenticated, you'll be asked to give the other as well. === Username/Password Login The username/password is `user/password`. === One-Time-Token Login The username is `user`. After clicking the submission button, you will be redirected to a page where you can enter the code given. You can find the code in the logs like so: [source,bash] ---- ******************************************************** Use this one-time token: 1319c31d-c5e0-4123-9b1f-3ffc34aba673 ******************************************************** ---- == Configuring There are three profiles in this sample; `default`, `custom-pages`, and `elevated-security`. `default` is the arrangement described in <>. `custom-pages` shows the same, but with a custom page for login and a custom page for one-time-token. This can be launched with: [source,bash] ---- ./gradlew :bootRun --args='spring.profiles.active=custom-pages' ---- `elevated-security` allows login with either, and will ask for one-time-token login for only the `/profile` page. This can be launched with: [source,bash] ---- ./gradlew :bootRun --args='spring.profiles.active=elevated-security' ----