| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | 
							- = Web Migrations
 
- == Favor Relative URIs
 
- When redirecting to a login endpoint, Spring Security has favored absolute URIs in the past.
 
- For example, if you set your login page like so:
 
- [tabs]
 
- ======
 
- Java::
 
- +
 
- [source,java,role="primary"]
 
- ----
 
- http
 
-     // ...
 
-     .formLogin((form) -> form.loginPage("/my-login"))
 
-     // ...
 
- ----
 
- Kotlin::
 
- +
 
- [source,kotlin,role="secondary"]
 
- ----
 
- http {
 
-     formLogin {
 
-         loginPage = "/my-login"
 
-     }
 
- }
 
- ----
 
- Xml::
 
- +
 
- [source,kotlin,role="secondary"]
 
- ----
 
- <http ...>
 
-     <form-login login-page="/my-login"/>
 
- </http>
 
- ----
 
- ======
 
- then when redirecting to `/my-login` Spring Security would use a `Location:` like the following:
 
- [source]
 
- ----
 
- 302 Found
 
- // ...
 
- Location: https://myapp.example.org/my-login
 
- ----
 
- However, this is no longer necessary given that the RFC is was based on is now obsolete.
 
- In Spring Security 7, this is changed to use a relative URI like so:
 
- [source]
 
- ----
 
- 302 Found
 
- // ...
 
- Location: /my-login
 
- ----
 
- Most applications will not notice a difference.
 
- However, in the event that this change causes problems, you can switch back to the Spring Security 6 behavior by setting the `favorRelativeUrls` value:
 
- [tabs]
 
- ======
 
- Java::
 
- +
 
- [source,java,role="primary"]
 
- ----
 
- LoginUrlAuthenticationEntryPoint entryPoint = new LoginUrlAuthenticationEntryPoint("/my-login");
 
- entryPoint.setFavorRelativeUris(false);
 
- http
 
-     // ...
 
-     .exceptionHandling((exceptions) -> exceptions.authenticaitonEntryPoint(entryPoint))
 
-     // ...
 
- ----
 
- Kotlin::
 
- +
 
- [source,kotlin,role="secondary"]
 
- ----
 
- LoginUrlAuthenticationEntryPoint entryPoint = LoginUrlAuthenticationEntryPoint("/my-login")
 
- entryPoint.setFavorRelativeUris(false)
 
- http {
 
-     exceptionHandling {
 
-         authenticationEntryPoint = entryPoint
 
-     }
 
- }
 
- ----
 
- Xml::
 
- +
 
- [source,kotlin,role="secondary"]
 
- ----
 
- <http entry-point-ref="myEntryPoint">
 
-     <!-- ... -->
 
- </http>
 
- <b:bean id="myEntryPoint" class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint">
 
-     <b:property name="favorRelativeUris" value="true"/>
 
- </b:bean>
 
- ----
 
- ======
 
 
  |