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 / readme.md
Created February 16, 2023 09:11
C# top-level statements to lowered C#

Original C# using top-level statements

// See https://aka.ms/new-console-template for more information
var a = 2;
int s = 0; 
var inc = (int x) => s = x + 1;
var c = inc(a);
Console.WriteLine("c={0} s={1}", c ,s); // c=3 s=3
@thomasdarimont
thomasdarimont / main.go
Last active December 26, 2022 12:05
Keycloak Go RP Client Example with PKCE
/*
This is an example about how to use a public client written in Golang to authenticate using Keycloak.
This example is only for demonstration purposes and lacks important
*/
package main
import (
"encoding/json"
"errors"
"log"
@thomasdarimont
thomasdarimont / xaclm-policy-example.xml
Created September 19, 2022 19:24
XACML Policy Example
<Policy PolicyId="SamplePolicy"
RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:permit-overrides">
<!-- This Policy only applies to requests on the SampleServer -->
<Target>
<Subjects>
<AnySubject/>
</Subjects>
<Resources>
<ResourceMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
@thomasdarimont
thomasdarimont / readme.md
Last active August 5, 2022 09:04
Keycloak X helmchart example
---
# Source: keycloakx/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: keycloak-keycloakx
  namespace: default
  labels:
    helm.sh/chart: keycloakx-1.5.0
@thomasdarimont
thomasdarimont / Dockerfile
Created June 13, 2022 23:33
PoC for improving startup time with class data sharing
FROM quay.io/keycloak/keycloak:18.0.0 as builder
USER 0
RUN microdnf remove -y java-11-openjdk-headless && \
microdnf install -y java-17-openjdk-headless && \
microdnf clean all && \
rm -rf /var/cache/yum/* && \
alternatives --set java $(alternatives --list | grep jre_17_openjdk | cut -d$'\t' -f3) || echo "ignore bad exit code"
@thomasdarimont
thomasdarimont / IpAccessFilter.java
Last active September 9, 2022 21:42
PoC for an IP based access filter for Keycloak on Quarkus / Vertx
package com.github.thomasdarimont.keycloakx.custom.security;
import io.netty.handler.ipfilter.IpFilterRuleType;
import io.netty.handler.ipfilter.IpSubnetFilterRule;
import io.vertx.core.http.HttpServerRequest;
import lombok.Data;
import lombok.extern.jbosslog.JBossLog;
import org.keycloak.quarkus.runtime.configuration.Configuration;
import javax.ws.rs.ForbiddenException;
@thomasdarimont
thomasdarimont / CustomHostnameProvider.java
Created May 19, 2022 08:10
Custom Keycloak Hostname Provider for Quarkus
package com.github.thomasdarimont.keycloak.hostname;
import com.google.auto.service.AutoService;
import org.keycloak.Config;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.quarkus.runtime.hostname.DefaultHostnameProvider;
import org.keycloak.urls.HostnameProvider;
import org.keycloak.urls.HostnameProviderFactory;
import org.keycloak.urls.UrlType;
@thomasdarimont
thomasdarimont / keycloak-db-values.yaml
Last active May 17, 2022 11:42
Example for using codecentric helmchart with kind and nginx ingress controller
# See https://github.com/bitnami/charts/tree/master/bitnami/postgresql
global:
postgresql:
auth:
username: dbusername
password: dbpassword
database: keycloak
@thomasdarimont
thomasdarimont / docker-scan-output1.txt
Created May 9, 2022 21:04
Custom Keycloak.X Image docker scan output
$ docker scan thomasdarimont/custom-keycloakx:1.0.0-SNAPSHOT
Testing thomasdarimont/custom-keycloakx:1.0.0-SNAPSHOT...
Package manager: apk
Project name: docker-image|thomasdarimont/custom-keycloakx
Docker image: thomasdarimont/custom-keycloakx:1.0.0-SNAPSHOT
Platform: linux/amd64
Base image: alpine:3.15.4
@thomasdarimont
thomasdarimont / keycloak-18-custom-findings.txt
Last active May 8, 2022 21:02
CVEs reported in Keycloak Image quay.io/keycloak/keycloak:18.0.0 by aquasec/trivy
docker run --privileged --rm -v /home/tom/.trivy/cache:/root/.cache/ -v /var/run/docker.sock:/var/run/docker.sock:z aquasec/trivy:0.27.1 image thomasdarimont/custom-keycloakx:1.0.0-SNAPSHOT
docker run --privileged --rm -v /home/tom/.trivy/cache:/root/.cache/ -v /var/run/docker.sock:/var/run/docker.sock:z aquasec/trivy:0.27.1 image thomasdarimont/custom-keycloakx:1.0.0-SNAPSHOT
2022-05-07T11:40:04.324Z INFO Detected OS: redhat
2022-05-07T11:40:04.324Z INFO Detecting RHEL/CentOS vulnerabilities...
2022-05-07T11:40:04.356Z INFO Number of language-specific files: 1
2022-05-07T11:40:04.356Z INFO Detecting jar vulnerabilities...
thomasdarimont/custom-keycloakx:1.0.0-SNAPSHOT (redhat 8.5)
===========================================================