mirror of
https://github.com/huiyiruciduojiao/KeycloakQRLogin.git
synced 2026-01-28 03:24:37 +08:00
解决扫码登录在跨设备回调场景下丢失 AuthenticationSession 的问题。 在 QR 登录流程中,浏览器端发起登录请求时会创建 AuthenticationSession, 但移动端扫码确认回调是独立请求,不携带浏览器 Cookie 和会话上下文, 导致直接持有的 AuthenticationSessionModel 引用无效并返回 null。 修复内容: - 移除直接缓存 AuthenticationSessionModel 引用的方式 - 使用 AuthenticationSessionManager + kc_session_id + tabId 恢复浏览器会话 - 确保扫码回调能够正确续接原始认证流程并完成 Broker 登录 该修复提高了跨设备扫码登录的稳定性与兼容性,避免因会话断链导致登录失败。
84 lines
2.9 KiB
XML
84 lines
2.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<groupId>top.ysit</groupId>
|
|
<artifactId>KeycloakQRLogin</artifactId>
|
|
<version>1.0-SNAPSHOT</version>
|
|
|
|
<properties>
|
|
<maven.compiler.source>17</maven.compiler.source>
|
|
<maven.compiler.target>17</maven.compiler.target>
|
|
<keycloak.version>26.4.2</keycloak.version>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<!-- Keycloak Server SPI -->
|
|
<dependency>
|
|
<groupId>org.keycloak</groupId>
|
|
<artifactId>keycloak-services</artifactId>
|
|
<version>${keycloak.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.keycloak</groupId>
|
|
<artifactId>keycloak-server-spi</artifactId>
|
|
<version>${keycloak.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.keycloak</groupId>
|
|
<artifactId>keycloak-server-spi-private</artifactId>
|
|
<version>${keycloak.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- JAX-RS, JSON -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-databind</artifactId>
|
|
<version>2.17.2</version>
|
|
</dependency>
|
|
|
|
|
|
<!-- QR 码生成 -->
|
|
<dependency>
|
|
<groupId>com.google.zxing</groupId>
|
|
<artifactId>core</artifactId>
|
|
<version>3.5.3</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.zxing</groupId>
|
|
<artifactId>javase</artifactId>
|
|
<version>3.5.3</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.11.0</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-shade-plugin</artifactId>
|
|
<version>3.5.0</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals><goal>shade</goal></goals>
|
|
<configuration>
|
|
<createDependencyReducedPom>false</createDependencyReducedPom>
|
|
<minimizeJar>false</minimizeJar>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
</project> |