302
// Logs and emits metrics when unauthorized.
303
// Returns the principal identity and any authorization error.
304
>
func (a *Interceptor) Authorize(ctx context.Context, claims *Claims, ct *CallTarget) (*commonpb.Principal, error) {
interceptor.go
305
>
if a.authorizer == nil {
306
return nil, nil
307
}
308
310
>
311
>
startTime := time.Now().UTC()
312
>
result, err := a.authorizer.Authorize(ctx, claims, ct)
313
>
metrics.ServiceAuthorizationLatency.With(mh).Record(time.Since(startTime))
314
>
if err != nil {
315
metrics.ServiceErrAuthorizeFailedCounter.With(mh).Record(1)
316
a.logger.Error("Authorization error", tag.Error(err))