컨텍스트 초기화 중 예외 발생 - 새로 고침 시도 취소 중: org.springframework.beans.factory.BeanCreationException: 이름이 'org.springframework.boot.autoconfigure.session.SessionAutoConfiguration$ServletSessionRepositoryValidator'인 Bean 생성 중 오류 발생: init 메소드 호출 실패; 중첩된 예외는 org.springframework.boot.autoconfigure.session.SessionRepositoryUnavailableException입니다. 세션 저장소를 자동으로 구성할 수 없습니다. 구성을 확인하십시오(세션 저장소 유형은 'redis'입니다)
이것은 누락 때문입니다. Spring-session-data-redis 종속성.
SpringBoot2에 대해 -data-redis가 로드되고 사용자는 spring-session과 redis 사이에 종속성을 추가해야 합니다.
현재 IT업계에서는 프론트엔드와 백엔드를 분리하는 것이 주류이지만, 분리 과정에서 크로스 도메인 문제가 발생할 것은 분명합니다. .
는 브라우저가 한 도메인 이름의 웹페이지에서 다른 도메인 이름으로 리소스를 요청할 때 도메인 이름, 포트 또는 프로토콜이 다른 경우 교차 도메인임을 의미합니다.
springboot + shrio +vue를 사용하여 백그라운드 관리 프로젝트를 수행할 때 현재 로그인된 shiroSession 사용자를 가져올 수 없습니다.
<!--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
하지만 설정한 후에도 여전히 작동하지 않습니다 하루 동안 Baidu를 사용하고 문제를 해결한 후 springboot 1.x로 롤백했는데 거기에 있었습니다. 그런 문제가 없어서 springboot로 업그레이드하기로 했습니다. 2.x의 원인은 뭐, 살인자가 잡혔으니 이제 맞는 약을 처방할 수 있게 되었습니다. springboot 2.x로 업그레이드하는 것과 관련된 이슈를 읽기 위해 온라인에 접속했습니다. 세션.
드디어 새로운 세계를 발견했습니다. Spring 세션 2.x에서는 실제로 SameSite가 Cookie에 도입되었습니다. 자, 이것이 무엇인지 살펴보겠습니다.
SameSite 쿠키는 CSRF 공격을 방지하는 데 사용됩니다. Strict, Lax
SameSite = Strict:
는 엄격 모드를 의미하며 어떤 상황에서도 이 쿠키가 불가능함을 나타냅니다. 타사 쿠키
SameSite = Lax:
SameSite = Strict:
意为严格模式,表明这个cookie在任何情况下都不可能作为第三方cookie;
SameSite = Lax:
해결책:
SameSite를 빈 상태로 설정@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); } }
위 내용은 SpringBoot2.x 버전에서 SpringSession을 사용하여 일반적인 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!