Skip to content

Instantly share code, notes, and snippets.

Thijs Feryn ThijsFeryn

Block or report user

Report or block ThijsFeryn

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
ThijsFeryn / edgestash-synth-backend.vcl
Created Aug 5, 2019
edgestash through link headers & a synthesized JSON backend
View edgestash-synth-backend.vcl
vcl 4.1;
import cookieplus;
import edgestash;
import std;
import ykey;
import redis;
import synthbackend;
backend default {
.host = "origin";
View test-thijs2.vtc
varnishtest "Redis VMOD and strings containing NULL chars"
shell {
python - <<EOF
import base64
import redis
b64 = 'X3NmMl9hdHRyaWJ1dGVzfGE6Mjp7czo1OiJsaWtlZCI7YTowOnt9czoxNDoiX3NlY3VyaXR5X21haW4iO3M6OTAzOiJDOjc0OiJTeW1mb255XENvbXBvbmVudFxTZWN1cml0eVxDb3JlXEF1dGhlbnRpY2F0aW9uXFRva2VuXFVzZXJuYW1lUGFzc3dvcmRUb2tlbiI6ODE1OnthOjM6e2k6MDtOO2k6MTtzOjQ6Im1haW4iO2k6MjthOjQ6e2k6MDtPOjQxOiJTeW1mb255XENvbXBvbmVudFxTZWN1cml0eVxDb3JlXFVzZXJcVXNlciI6Nzp7czo1MToiAFN5bWZvbnlcQ29tcG9uZW50XFNlY3VyaXR5XENvcmVcVXNlclxVc2VyAHVzZXJuYW1lIjtzOjU6InRoaWpzIjtzOjUxOiIAU3ltZm9ueVxDb21wb25lbnRcU2VjdXJpdHlcQ29yZVxVc2VyXFVzZXIAcGFzc3dvcmQiO3M6NjA6IiQyeSQxMiQxaUVVNVJ0REZUQkptMGhocXpZR2NPamdSTFhXUGlPQjYzS2VFVVhNNXA5bFFLejlFeklUQyI7czo1MDoiAFN5bWZvbnlcQ29tcG9uZW50XFNlY3VyaXR5XENvcmVcVXNlclxVc2VyAGVuYWJsZWQiO2I6MTtzOjYwOiIAU3ltZm9ueVxDb21wb25lbnRcU2VjdXJpdHlcQ29yZVxVc2VyXFVzZXIAYWNjb3VudE5vbkV4cGlyZWQiO2I6MTtzOjY0OiIAU3ltZm9ueVxDb21wb25lbnRcU2VjdXJpdHlcQ29yZVxVc2VyXFVzZXIAY3JlZGVudGlhbHNOb25FeHBpcmVkIjtiOjE7czo1OToiAFN5bWZvbnlcQ29tcG9uZW50XFN
View start.php
public function start(Request $request, AuthenticationException $authException = null)
$jwtPayload = $this->getJwtPayload($request->cookies->get('token'));
if(isset($jwtPayload['sub'])) {
return new Response("Don't wanna to this, really. The actual protected page should show up instead");
return new RedirectResponse($this->router->generate('login'));
View default.vcl
vcl 4.0;
import std;
backend default {
.host = "" ;
.port = "80";
acl purge {
ThijsFeryn / drupalcon_jwt_varnish.vcl
Created Sep 27, 2017
VCL file that describes my JWT implementation in Varnish for Drupal. Part of my DrupalCon Vienna 2017 presentation.
View drupalcon_jwt_varnish.vcl
vcl 4.0;
import std;
import var;
import cookie;
import digest;
acl internal {
ThijsFeryn / .htaccess
Created Sep 18, 2017
Force HTTPS redirect for sites behind a reverse (caching) proxy that terminates SSL
View .htaccess
SetEnvIf X-Forwarded-Proto "https" HTTPS=on
Header append Vary: X-Forwarded-Proto
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ThijsFeryn / bzf.php
Last active Jul 28, 2017
Logic do add the date to the post of
View bzf.php
function addDateBeforeFirstParagraph($content) {
if(!is_singular('post')) return $content;
$closing_p = '<p>';
$paragraphs = explode( $closing_p, $content );
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
ThijsFeryn /
Last active Feb 26, 2019
Thijs Feryn's bio

Thijs Feryn is a "technical evangelist" at Varnish Software, the company behind the Varnish Cache open source technology. His goal is to bring technology to the people and people to technology. He focuses on bridging the gap between code and infrastructure. Thijs is a published author at O'Reilly, he is also involved in many open source communities. He speaks, listens, writes, codes, teaches, blogs, vlogs, organizes and is above all very excited to speak at "your event name"

ThijsFeryn / Dockerfile
Last active Jul 4, 2017
Dockerized Hello NodeJS example to test Kubernetes
View Dockerfile
FROM node:6.9.2
COPY server.js .
CMD node server.js
ThijsFeryn / call_jwt.vcl
Last active Feb 13, 2017
Call the custom-defined JWT VCL procedure that checks the validity of a JSON Web Token. This VCL snippet requires vmod_digest and
View call_jwt.vcl
vcl 4.0;
import digest;
backend default {
.host = "localhost";
.port = "8080";
include "jwt.vcl";
You can’t perform that action at this time.