Über SpringBoot2. -data-redis wird geladen und der Benutzer muss die Abhängigkeiten zwischen spring-session und redis hinzufügen. Fallstricke bei Springboot 2.x – Domänenübergreifend führt zu SitzungsproblemenDerzeit besteht der Mainstream in der IT-Branche darin, Front-End und Back-End zu trennen, aber während des Trennungsprozesses wird es definitiv zu domänenübergreifenden Problemen kommen . Was ist domänenübergreifend? bedeutet, dass es sich um eine domänenübergreifende Anforderung handelt, wenn der Browser Ressourcen von einer Webseite mit einem Domänennamen zu einem anderen Domänennamen anfordert und der Domänenname, der Port oder das Protokoll unterschiedlich sind. Aufgetretene SzenenWenn wir Springboot + Shrio +Vue verwenden, um Hintergrundverwaltungsprojekte durchzuführen, können wir den aktuell angemeldeten Benutzer von shiroSession nicht abrufen. Also haben wir nachgesehen und online gesagt, dass wir die Sitzung einfach zulassen können pass beim Überqueren von Domänen.Ausnahme während der Kontextinitialisierung aufgetreten – Aktualisierungsversuch wird abgebrochen: org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen der Bean mit dem Namen „org.springframework.boot.autoconfigure.session.SessionAutoConfiguration$ServletSessionRepositoryValidator“: Der Aufruf der Init-Methode ist fehlgeschlagen; die verschachtelte Ausnahme ist org.springframework.boot.autoconfigure.session.SessionRepositoryUnavailableException: Es konnte kein Sitzungs-Repository automatisch konfiguriert werden. Überprüfen Sie Ihre Konfiguration (Sitzungsspeichertyp ist „redis“). Dies liegt daran, dass es fehlt Abhängigkeit von Spring-Session-Data-Redis.
<!--SpringSession依赖--> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-core</artifactId> </dependency> <!--SpringSessionRedis依赖--> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency>
Frontend
#使用使用Redis缓存session数据 spring.session.store-type=REDIS #Redis服务器地址 spring.redis.host=127.0.0.1 #Redis服务器端口号 spring.redis.port=6379
Endlich eine neue Welt entdeckt, SameSite wird tatsächlich in Cookie eingeführt. Okay, schauen wir uns an, was das ist.
SameSite-Cookie wird verwendet, um CSRF-Angriffe zu verhindern. Es hat zwei Werte: Strict, Lax. Drittanbieter-Cookie;SameSite = Lax:
bedeutet entspannter Modus. Es kann als Drittanbieter-Cookie in GET-Anfragen verwendet werden, kann jedoch keine Cookies für den domänenübergreifenden Beitragszugriff übertragen. Das ist sehr schmerzhaft. Ja, unsere Verifizierungsschnittstelle ist die POST-Anfrage.) Lösung:
SameSite = Strict:
意为严格模式,表明这个cookie在任何情况下都不可能作为第三方cookie;
SameSite = Lax:
SameSite auf leer setzen
@Configuration public class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.setAllowCredentials(true); // 允许任何域名使用 corsConfiguration.addAllowedOrigin("*"); // 允许任何头 corsConfiguration.addAllowedHeader("*"); // 允许任何方法(post、get等) corsConfiguration.addAllowedMethod("*"); corsConfiguration.setMaxAge(3600L); return corsConfiguration; } @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); // 对接口配置跨域设置 source.registerCorsConfiguration("/**", buildConfig()); return new CorsFilter(source); } }
Das obige ist der detaillierte Inhalt vonSo lösen Sie häufige Probleme mit SpringSession in der SpringBoot2.x-Version. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!