Commit 6219d663 by Cam Hayes

JWT Token working and tested for expiration

parent 3a2f4189
...@@ -24,7 +24,9 @@ object ApiServerModule: TApiServerModule ...@@ -24,7 +24,9 @@ object ApiServerModule: TApiServerModule
object XDataServerCompress: TSparkleCompressMiddleware object XDataServerCompress: TSparkleCompressMiddleware
end end
object XDataServerJWT: TSparkleJwtMiddleware object XDataServerJWT: TSparkleJwtMiddleware
ForbidAnonymousAccess = True
OnGetSecret = XDataServerJWTGetSecret OnGetSecret = XDataServerJWTGetSecret
OnForbidRequest = XDataServerJWTForbidRequest
end end
end end
end end
...@@ -28,6 +28,8 @@ type ...@@ -28,6 +28,8 @@ type
procedure XDataServerLoggingMiddlewareCreate(Sender: TObject; procedure XDataServerLoggingMiddlewareCreate(Sender: TObject;
var Middleware: IHttpServerMiddleware); var Middleware: IHttpServerMiddleware);
procedure XDataServerJWTGetSecret(Sender: TObject; var Secret: string); procedure XDataServerJWTGetSecret(Sender: TObject; var Secret: string);
procedure XDataServerJWTForbidRequest(Sender: TObject;
Context: THttpServerContext; var Forbid: Boolean);
private private
{ Private declarations } { Private declarations }
public public
...@@ -91,6 +93,27 @@ begin ...@@ -91,6 +93,27 @@ begin
Middleware := TLoggingMiddleware.Create(Logger); Middleware := TLoggingMiddleware.Create(Logger);
end; end;
procedure TApiServerModule.XDataServerJWTForbidRequest(Sender: TObject;
Context: THttpServerContext; var Forbid: Boolean);
var
Path: string;
begin
Path := Context.Request.Uri.Path;
if SameText(Context.Request.Method, 'OPTIONS') then
Forbid := False;
if Path.Contains('/swaggerui') then
Forbid := False;
if Path.Contains('/openapi/swagger.json') then
Forbid := False;
if Forbid then
Logger.Log(1, '[JWT] ForbidRequest fired (token missing/invalid/expired?)');
end;
procedure TApiServerModule.XDataServerJWTGetSecret(Sender: TObject; procedure TApiServerModule.XDataServerJWTGetSecret(Sender: TObject;
var Secret: string); var Secret: string);
begin begin
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment