From bffa22a37a539bac4c746e27815a011152f5c016 Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sun, 27 Sep 2020 21:46:57 -0300 Subject: [PATCH] pac4j-module: Can't apply a client directly to a POST route. Fix #1972 --- .../src/main/java/io/jooby/pac4j/Pac4jModule.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/jooby-pac4j/src/main/java/io/jooby/pac4j/Pac4jModule.java b/modules/jooby-pac4j/src/main/java/io/jooby/pac4j/Pac4jModule.java index 12d139887f..3b45ee54ba 100644 --- a/modules/jooby-pac4j/src/main/java/io/jooby/pac4j/Pac4jModule.java +++ b/modules/jooby-pac4j/src/main/java/io/jooby/pac4j/Pac4jModule.java @@ -493,9 +493,13 @@ public Pac4jModule client(@Nonnull Class authorizer, String pattern = entry.getKey(); if (!pattern.equals("*")) { List keys = Router.pathKeys(pattern); - if (keys.size() == 0) { - application.get(pattern, new SecurityFilterImpl(null, pac4j, options, lazyClientNameList(entry.getValue()), - clientMap.get(pattern).authorizers)); + if (keys.isEmpty()) { + SecurityFilterImpl securityFilter = new SecurityFilterImpl(null, pac4j, options, + lazyClientNameList(entry.getValue()), + clientMap.get(pattern).authorizers); + application.get(pattern, securityFilter); + // POST for direct authentication + application.post(pattern, securityFilter); } else { application.decorator(new SecurityFilterImpl(pattern, pac4j, options, lazyClientNameList(entry.getValue()), clientMap.get(pattern).authorizers));