ReturnOverrirdes in python plugin

Hi Everyone!

I want to authenticate the request through python middleware.currently i work with the default plugin and i want to give response in condition false case

here is my code

@Hook
def MyAuthMiddleware(request, session, metadata, spec):
auth_header = request.get_header(‘Authorization’)
if auth_header ==“12345”:
session.rate = 1000.0
session.per = 1.0
metadata[“token”] = “12345”
return request, session, metadata
else:
request.ReturnOverrides = {
“ResponseCode”: 400,
“ResponseError”: “Bad Request”
}
return request.ReturnOverrides,metadata,session

ReturnOvrrirdes not work what is the problem here?

Hi, you should return request:

return request, metadata, session

Thankyou!
but now my code is

from tyk.decorators import *
from gateway import TykGateway as tyk

@Hook
def MyAuthMiddleware(request, session, metadata, spec):
auth_header = request.get_header(‘Authorization’)
if auth_header ==“12345”:
session.rate = 1000.0
session.per = 1.0
metadata[“token”] = “12345”
return request, session, metadata
else:
request.ReturnOverrides = {
“ResponseCode”: 400,
“ResponseError”: “Bad Request”
}
return request,metadata,session

but when i give the wrong Authorization token it still send the default responce {
“error”: “Key not authorised”
} where i am wrong??

Hi, ReturnOverrides will currently take any status code higher than 400 as a bad authentication error.