bugfix
This commit is contained in:
parent
0b2584d6aa
commit
227533d01d
@ -21,11 +21,7 @@ from appPublic.rsawrap import RSA
|
||||
from appPublic.log import info, debug, warning, error, critical, exception
|
||||
|
||||
def get_client_ip(obj, request):
|
||||
ip = request.headers.get('X-Forwarded-For')
|
||||
if not ip:
|
||||
ip = request.remote
|
||||
request['client_ip'] = ip
|
||||
return ip
|
||||
return request['client_ip']
|
||||
|
||||
async def get_session_userinfo(request):
|
||||
d = await auth.get_auth(request)
|
||||
|
||||
@ -20,12 +20,14 @@ from .globalEnv import initEnv
|
||||
from .serverenv import ServerEnv
|
||||
from .filestorage import TmpFileRecord
|
||||
from .loadplugins import load_plugins
|
||||
from .real_ip import real_ip_middleware
|
||||
|
||||
class AHApp(web.Application):
|
||||
def __init__(self, *args, **kw):
|
||||
kw['client_max_size'] = 1024000000
|
||||
super().__init__(*args, **kw)
|
||||
self.user_data = DictObject()
|
||||
self.middlewares.insert(0, real_ip_middleware())
|
||||
|
||||
def set_data(self, k, v):
|
||||
self.user_data[k] = v
|
||||
|
||||
24
ahserver/real_ip.py
Normal file
24
ahserver/real_ip.py
Normal file
@ -0,0 +1,24 @@
|
||||
|
||||
from appPublic.log import exception, debug, error
|
||||
from aiohttp import web
|
||||
|
||||
from aiohttp_middlewares.annotations import DictStrStr, Handler, Middleware
|
||||
|
||||
def real_ip_middleware() -> Middleware:
|
||||
@web.middleware
|
||||
async def middleware(
|
||||
request: web.Request, handler: Handler
|
||||
) -> web.StreamResponse:
|
||||
match_header_keys = [
|
||||
"X-Forwarded-For",
|
||||
"X-real-ip"
|
||||
]
|
||||
request['client_ip'] = request.remote
|
||||
for k,v in request.headers.items():
|
||||
if k in match_header_keys:
|
||||
v = v.split(',')[-1].strip()
|
||||
request['client_ip'] = v
|
||||
break
|
||||
return await handler(request)
|
||||
|
||||
return middleware
|
||||
Loading…
x
Reference in New Issue
Block a user