Skip to content

Instantly share code, notes, and snippets.

View thomasdarimont's full-sized avatar
🏠
Working from home

Thomas Darimont thomasdarimont

🏠
Working from home
View GitHub Profile
@thomasdarimont
thomasdarimont / offline_client_session.json
Created April 18, 2024 10:36
Stored information for a transient-user with --features=preview,transient-users,persistent-user-sessions-no-cache,persistent-user-sessions in Keycloak 25.0.0 (2c069433f9)
{
"authMethod": "openid-connect",
"redirectUri": "http://localhost:8080/admin/master/console/#/company-apps/groups",
"notes": {
"clientId": "7365e17b-b9d8-4553-8bf3-0aefddae464b",
"iss": "http://localhost:8080/realms/master",
"startedAt": "1713429283",
"response_type": "code",
"level-of-authentication": "-1",
"code_challenge_method": "S256",
@thomasdarimont
thomasdarimont / FedCmResource.java
Last active April 12, 2024 10:53
PoC for Federated Credential Management API support in Keycloak
package com.thomasdarimont.training.keycloak.endpoints;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.FormParam;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
@thomasdarimont
thomasdarimont / DemoResource.java
Created March 5, 2024 14:33
Reproducer for Quarkus Enhancement proposal https://github.com/quarkusio/quarkus/issues/31497 with Resteasy Reactive
package demo;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.container.ResourceContext;
import jakarta.ws.rs.core.Context;
@Path("/resource")
public class DemoResource {

Because of Arjuna timeout / closing the connection after 5 mins, setting following additional JAVA_OPTS might help:

-Dquarkus.transaction-manager.default-transaction-timeout=3600
-Dkeycloak.migration.batch-enabled=true
-Dkeycloak.migration.batch-size=1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Acme Mini SPA</title>
<style>
body {
background-color: #eaeaea;
@thomasdarimont
thomasdarimont / index.html
Created November 23, 2023 17:33
Layout with 3 Columns
<!DOCTYPE html>
<html>
<head>
<title>Three Column Layout</title>
<style>
.grid-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 10px;
}
@thomasdarimont
thomasdarimont / JShellFetchDemo.java
Last active October 10, 2023 23:21
PoC for Fetch API like API for JShell
package demo;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.util.Map;
public class JShellFetchDemo {
@thomasdarimont
thomasdarimont / ExampleResource.java
Last active September 26, 2023 07:09
Example to reproduce RESTEASY-3384 with resteasy-reactive
package com.example;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
@Path("/hello")
public class ExampleResource {
@POST
public String greet() {
@thomasdarimont
thomasdarimont / minispa.html
Created September 20, 2023 10:23
Example SPA for Keycloak Demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Acme Mini SPA</title>
<style>
body {
background-color: #eaeaea;
@thomasdarimont
thomasdarimont / Continuation.java
Last active July 20, 2023 00:06
Java21 Continuations Demo
package demo.cont;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.util.function.Consumer;
public final class Continuation {
private final Object delegate;