[JAVA] [In 5.2.1 behoben] Spring Security 5.2.0.RELEASE weist Inkompatibilitäten auf, die im Versionshinweis nicht erwähnt sind

Ziel

Was ist inkompatibel

Die throw Exception wurde aus der configure (WebSecurity) Methodendefinition des WebSecurityConfigurerAdapter entfernt.

Der Commit-Unterschied ist hier. Neben "WebSecurityConfigurerAdapter" gibt es viele Klassen mit ähnlichen Änderungen.

Dies führt zu einem Kompilierungsfehler in der Unterklasse "WebSecurityConfigurerAdapter", wenn die Bibliothek von 5.1.x auf 5.2.0.RELEASE aktualisiert wird. Dies liegt daran, dass die Override-Quelle keine "Throws Exception" enthält.

Beispiel für die Unterklasse WebSecurityConfigurerAdapter (vor Änderung)


@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    //Diese Methode verursacht einen Kompilierungsfehler
    @Override
    public configure(WebSecurity web) throws Exception {
        // ...
    }
}

[2019/11/07 postscript] In Spring Security 5.2.1.RELEASE wurde die gelöschte "Throws Exception" wiederhergestellt! -> Commit-Verlauf

Gegenmaßnahmen

Entfernen wir die throw Exception aus der configure (WebSecurity) Methode.

Beispiel für die Unterklasse WebSecurityConfigurerAdapter (nach Änderung)


@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    //Dies führt nicht zu einem Kompilierungsfehler
    @Override
    public configure(WebSecurity web) {
        // ...
    }
}

Gemäß dem obigen Commit-Protokoll (https://github.com/spring-projects/spring-security/commit/34dd5fea30d4e3d862dfc675cb97cf967a6ad25b#diff-5b46e0ff6fdabbe97888183284338784) wurden "Ausnahmeregelungen für andere Methoden entfernt". Es scheint, dass.

Wenn Sie diese Methoden verwenden, müssen Sie alle dasselbe tun.

[Aktualisiert am 07. November 2019] Diejenigen, die diese Maßnahme in 5.2.0 ergriffen haben, sollten beim Upgrade auf 5.2.1 keine "Wurfausnahme" hinzufügen müssen.

Jedoch···

Ich möchte nicht, dass du das tust. .. ..

Es ist in Spring Security Issue aufgeführt.

Recommended Posts

[In 5.2.1 behoben] Spring Security 5.2.0.RELEASE weist Inkompatibilitäten auf, die im Versionshinweis nicht erwähnt sind
Hat zu Gradle beigetragen und wurde im Release Note genannt
Antwortheader werden in Spring Security 4.1 möglicherweise nicht korrekt ausgegeben
Organisierte Notizen im Kopf (Java-Ausnahmen)
Verwendung von Thymeleaf mit Spring Boot
JSESSIONID konnte bei Verwendung von Spring Security nicht der URL zugewiesen werden