Heim >Java >javaLernprogramm >Wie SpringBoot SpringSession integriert, um eine verteilte Anmeldung zu implementieren
Zum Beispiel zwei Domainnamen:
aaa.yupi.com
bbb.yupi.com
Wenn Sie Cookies teilen möchten, können Sie eine höhere Ebene anlegen Public-Domain-Name wie yupi .com
Der Benutzer meldet sich bei A an, sodass die Sitzung (Benutzeranmeldeinformationen) auf A vorhanden ist.
Daher verfügt B bei der Anforderung von B nicht über Benutzerinformationen und erkennt diese daher nicht.
Gemeinsamer Speicher statt Daten im Speicher eines einzelnen Servers abzulegen
Redis einführen und Redis bedienen können:
<!-- 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>
Einführung der Integration von Spring-Session und Redis zum automatischen Speichern von Sitzungen in 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>
Ändern Sie die Spring-Session-Speicherkonfiguration spring.session.store-type
Der Standardwert ist „None“, was bedeutet, dass sie auf einem gespeichert wird Einzelserver
Store-Typ: Redis, was Lese- und Schreibsitzungen von Redis bedeutet
redis: host: localhost port: 6379 session: timeout: 60 store-type: redis
Effekt:
/** * @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,"成功"); } }
Das obige ist der detaillierte Inhalt vonWie SpringBoot SpringSession integriert, um eine verteilte Anmeldung zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!