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,xml,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>
- ----
- ======
|