You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bom dia, estou criando um CallBack personalizado para validar alguns tipos de API que precisam que o usuário seja Administrador. Para isso estou utilizando o JWT Token em conjunto com os Claims para captura do token e recuperação de usuário. Tudo funciona perfeitamente, entretanto, ao criar a excessão EHorseCallbackInterrupted passando minha mensagem, ele retorna um 404 Not found no retorno da API. Ps, tenho outros callbacks que funcionam perfeitamente. (Com propósitos diferentes). O código a seguir é a implementação do meu CallBack. A lógica dentro dele funciona perfeitamente. Em seguida o código do callback do jwt, do qual usei como base para minha suposição.
function SupervisorRequest: THorseCallback;
begin
Result := procedure(Req: THorseRequest; Res: THorseResponse; Next: {$IF DEFINED(FPC)}TNextProc{$ELSE}TProc{$ENDIF})
begin
try
if not TUsuarioController.CriarComCodigoOuNome(
Req.Session.IdUsuario
).GetUsuario.Supervisor then
begin
Res.Send('Não autorizado, é necessário um usuário supervisor').Status(THTTPStatus.Unauthorized);
raise EHorseCallbackInterrupted.Create('Unauthorized');
end
else
Next;
except
on E: EHorseCallbackInterrupted do
raise;
on E: Exception do
begin
TLog.Log('Exception em SupervisorRequest: '+E.Message, Req);
raise EHorseCallbackInterrupted.Create('Unauthorized');
end;
end;
end;
end;
Dentro do Middleware, Horse.JTW ele tem o seguinte retorno em diversos locais, entretanto, a resposta deles é 401 e com a mensagem criada:
except
on E: EHorseCallbackInterrupted do
raise;
on E: Exception do
begin
AHorseResponse.Send('Invalid token authorization. ' + E.Message).Status(THTTPStatus.Unauthorized);
raise EHorseCallbackInterrupted.Create;
end;
end;
Bom dia, estou criando um CallBack personalizado para validar alguns tipos de API que precisam que o usuário seja Administrador. Para isso estou utilizando o JWT Token em conjunto com os Claims para captura do token e recuperação de usuário. Tudo funciona perfeitamente, entretanto, ao criar a excessão EHorseCallbackInterrupted passando minha mensagem, ele retorna um 404 Not found no retorno da API. Ps, tenho outros callbacks que funcionam perfeitamente. (Com propósitos diferentes). O código a seguir é a implementação do meu CallBack. A lógica dentro dele funciona perfeitamente. Em seguida o código do callback do jwt, do qual usei como base para minha suposição.
function SupervisorRequest: THorseCallback;
begin
Result := procedure(Req: THorseRequest; Res: THorseResponse; Next: {$IF DEFINED(FPC)}TNextProc{$ELSE}TProc{$ENDIF})
begin
try
if not TUsuarioController.CriarComCodigoOuNome(
Req.Session.IdUsuario
).GetUsuario.Supervisor then
begin
Res.Send('Não autorizado, é necessário um usuário supervisor').Status(THTTPStatus.Unauthorized);
raise EHorseCallbackInterrupted.Create('Unauthorized');
end
else
Next;
except
on E: EHorseCallbackInterrupted do
raise;
on E: Exception do
begin
TLog.Log('Exception em SupervisorRequest: '+E.Message, Req);
raise EHorseCallbackInterrupted.Create('Unauthorized');
end;
end;
end;
end;
Dentro do Middleware, Horse.JTW ele tem o seguinte retorno em diversos locais, entretanto, a resposta deles é 401 e com a mensagem criada:
except
on E: EHorseCallbackInterrupted do
raise;
on E: Exception do
begin
AHorseResponse.Send('Invalid token authorization. ' + E.Message).Status(THTTPStatus.Unauthorized);
raise EHorseCallbackInterrupted.Create;
end;
end;
Ps. Delphi 10.4
stock_app_ws:
├── horse-logger@2.0.7
│ ├── horse-utils-clientip@0.0.8
│ │ └── horse@3.1.5
│ └── horse@3.1.5
├── jhonson@1.1.8
│ └── horse@3.1.5
├── handle-exception@0.1.9
│ ├── horse@3.1.5
│ └── jhonson@1.1.8
│ └── horse@3.1.5
├── horse@3.1.5
├── horse-compression@1.1.11
│ └── horse@3.1.5
└── horse-jwt@2.0.14
├── horse@3.1.5
├── delphi-jose-jwt@v3.3.0
└── hashlib4pascal@1.0.0
The text was updated successfully, but these errors were encountered: