> Java > java지도 시간 > 본문

SpringBoot가 SpringSession을 통합하여 분산 로그인을 구현하는 방법

王林
풀어 주다: 2023-05-10 20:34:04
앞으로
709명이 탐색했습니다.

세션 공유

예를 들어 두 개의 도메인 이름:

  • aaa.yupi.com

  • bbb.yupi.com

  • 쿠키를 공유하려면 더 높은 수준의 도메인을 심을 수 있습니다. yupi.com

서버 A가 로그인 후 서버 B에 요청을 보내고 사용자를 인식하지 못하는 이유는 무엇입니까?

사용자가 A에 로그인했으므로 A에 세션(사용자 로그인 정보)이 존재합니다

결과적으로 B를 요청하면 B는 사용자 정보가 없어 인식하지 못합니다.

SpringBoot가 SpringSession을 통합하여 분산 로그인을 구현하는 방법

솔루션

단일 서버의 메모리에 데이터를 저장하는 대신 공유 저장소

SpringBoot가 SpringSession을 통합하여 분산 로그인을 구현하는 방법

SpringBoot는 SpringSession을 통합하여 분산 로그인을 구현합니다.

redis 소개 및 redis 운영 가능:

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <version>2.6.4</version>
</dependency>
로그인 후 복사

Redis에 세션을 자동으로 저장하기 위한 spring-session과 redis의 통합 소개:

<!-- https://mvnrepository.com/artifact/org.springframework.session/spring-session-data-redis -->
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
    <version>2.6.3</version>
</dependency>
로그인 후 복사

spring-session 저장소 구성 수정 spring.session.store-type

기본값은 없음입니다. 단일 서버

store-type: redis, 이는 redis

  redis:
    host: localhost
    port: 6379
  session:
    timeout: 60
    store-type: redis
로그인 후 복사

효과:

/**
 * @author 刘宇浩
 */
@RestController
@RequestMapping("/session")
public class SessionController {

    public static final String key = "USERLOGINSTATE";

    @GetMapping("/set")
    public Result setSession(HttpServletRequest request) {
        User user = new User();
        user.setClassName("21软件3");
        user.setName("lyl");
        request.getSession().setAttribute(key, user);
        return ResultGenerator.genSuccessResult(200, "成功");
    }
    @GetMapping("/get")
    public Result getSession(HttpServletRequest request){
        User userloginstate = (User)request.getSession().getAttribute(key);
        System.out.println(userloginstate.getName());
        System.out.println(userloginstate.getClassName());
        return ResultGenerator.genSuccessResult(200,"成功");
 
    }
}
로그인 후 복사
에서 세션 읽기 및 쓰기를 의미합니다.

위 내용은 SpringBoot가 SpringSession을 통합하여 분산 로그인을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!