Java KeyClope未在浏览器中维护会话
我使用的是KeyClope(4.3.0)openid连接流。对于我的客户端应用程序,我正在使用:Java KeyClope未在浏览器中维护会话,java,keycloak,Java,Keycloak,我使用的是KeyClope(4.3.0)openid连接流。对于我的客户端应用程序,我正在使用: public class AuthenticationTest { public static void main(String[] args) { final String KEYCLOAK_JSON = Constants.KC_CONFIG_JSON_PATH; InputStream config = Thread.currentThread().getContextCl
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();
}
}
}
我已经提到了这里提到的例子:
第一次启动应用程序并登录时,我得到
“登录成功。您可以关闭此浏览器窗口并返回
您的控制台应用程序。“
但是,如果在不关闭上一个浏览器窗口的情况下启动应用程序的第二个实例/重新启动应用程序,仍然会显示登录页面,而不是“您已登录”消息
(新登录页面与第一个登录页面出现在同一窗口的新选项卡中,因此这不是在不同窗口中维护状态失败的问题。此外,我已尝试在20秒内重新启动应用程序,因此似乎也不是超时问题)
浏览器:Firefox,chrome
知道我做错了什么吗。期望的是,浏览器必须为同一用户保持一个keydepose会话,直到关闭至少几分钟
注意:我在KeyClope 3.4.3中没有遇到这个问题。但它开始出现在4.1.0和4.3.0上
我在3.4.3和4.x中看到了cookies的以下区别:
3.4.3:(与首次登录或后续登录相同)
4.x首次登录:
4.x后续登录:(可以看到添加的KC\U重启cookie)