diff --git a/src/main/php/scriptlet/AuthenticationFilter.class.php b/src/main/php/scriptlet/AuthenticationFilter.class.php index cd286923..98338342 100755 --- a/src/main/php/scriptlet/AuthenticationFilter.class.php +++ b/src/main/php/scriptlet/AuthenticationFilter.class.php @@ -34,11 +34,11 @@ public function __construct(RequestAuthenticator $auth) { public function filter($request, $response, $invocation) { try { $r= $this->auth->authenticate($request, $response, null); - return false === $r ? $r : $invocation->proceed($request, $response); } catch (ScriptletException $e) { throw $e; } catch (Throwable $e) { throw new ScriptletException('Authentication failed: '.$e->getMessage(), HttpConstants::STATUS_FORBIDDEN, $e); } + return false === $r ? $r : $invocation->proceed($request, $response); } } diff --git a/src/test/php/scriptlet/unittest/AuthenticationFilterTest.class.php b/src/test/php/scriptlet/unittest/AuthenticationFilterTest.class.php new file mode 100644 index 00000000..822a44d4 --- /dev/null +++ b/src/test/php/scriptlet/unittest/AuthenticationFilterTest.class.php @@ -0,0 +1,33 @@ + function($request, $response, $context) { + return true; + } + ]); + $mockInvocation= new Invocation(function() { + throw new IllegalArgumentException('Test'); + }, [new AuthenticationFilter($mockAuthenticator)]); + $mockInvocation->proceed(null, null); + } + +} \ No newline at end of file