代码之家  ›  专栏  ›  技术社区  ›  tryingToLearn

KeyCover未在浏览器中维护会话

  •  1
  • tryingToLearn  · 技术社区  · 6 年前

    我正在使用keypocat(4.3.0)openid connect flow。对于我的客户端应用程序,我正在使用:

    public class AuthenticationTest {
    
    public static void main(String[] args) {
    
        final String KEYCLOAK_JSON = Constants.KC_CONFIG_JSON_PATH;
        InputStream config = Thread.currentThread().getContextClassLoader().getResourceAsStream(KEYCLOAK_JSON);
        KeycloakInstalled keycloak;
    
        try {
            keycloak = new KeycloakInstalled(config);
            config.close();
            keycloak.loginDesktop();
    
            AccessToken token = keycloak.getToken();
            System.out.printf("UserId: %s%n", token.getSubject());
            System.out.printf("Username: %s%n", token.getPreferredUsername());
            System.out.printf("Email: %s%n", token.getEmail());
    
            System.out.println(keycloak.getTokenString());          
            System.in.read();
        } catch (IOException | VerificationException | OAuthErrorException | URISyntaxException | HttpFailure
                | InterruptedException e) {
            e.printStackTrace();
        }       
    }
    

    我引用了这里提到的例子: https://gist.github.com/thomasdarimont/ca16080145d226e50628d5696ffb9508

    “登录成功。您可以关闭此浏览器窗口并返回到 您的控制台应用程序。“

    但是,如果我启动我的应用程序的第二个实例/重新启动我的应用程序,即使没有关闭上一个浏览器窗口,仍然会出现登录页而不是 信息。

    (新登录页与第一个登录页出现在同一窗口的新选项卡中,因此在不同窗口中维护状态不是一个问题。我也试过在20秒内重新启动应用程序,所以看起来也不是超时问题)

    浏览器:Firefox、chrome。

    注意:我没有在KeyCovert 3.4.3中遇到这个问题。但它开始出现在4.1.0和4.3.0上

    我发现3.4.3和4.x上的cookies有以下区别:

    3.4.3:(首次登录或随后登录时相同)

    enter image description here

    4.x首次登录: enter image description here

    4.x后续登录: enter image description here

    0 回复  |  直到 6 年前