提交 97ad90109046245da536772df369d75c14f8f4fa

作者 qianyingz
1 个父辈 e6b36de7

调整提示信息

@@ -2,18 +2,25 @@ from functools import wraps @@ -2,18 +2,25 @@ from functools import wraps
2 from authlib.integrations.flask_oauth2 import current_token 2 from authlib.integrations.flask_oauth2 import current_token
3 from flask import abort 3 from flask import abort
4 from app.modules.auth.oauth2 import require_oauth 4 from app.modules.auth.oauth2 import require_oauth
  5 +from flask import request
5 6
6 # 认证装饰器 7 # 认证装饰器
7 8
  9 +
8 class auth_decorator(object): 10 class auth_decorator(object):
9 - def __init__(self, action='', permission=''): 11 + def __init__(self, action='', permission='', scope='profile'):
10 self.permission = permission 12 self.permission = permission
11 self.action = action 13 self.action = action
  14 + self.scope = scope
12 15
13 def __call__(self, func): 16 def __call__(self, func):
  17 +
14 @wraps(func) 18 @wraps(func)
15 - @require_oauth("profile")  
16 def wrapped_function(*args, **kwargs): 19 def wrapped_function(*args, **kwargs):
  20 + token = request.headers.get('Authorization')
  21 + if not token:
  22 + abort(401)
  23 + validate_token()
17 if current_token and current_token.user and current_token.user.role: 24 if current_token and current_token.user and current_token.user.role:
18 print(func.__name__) 25 print(func.__name__)
19 if self.permission and len(self.permission) > 0: 26 if self.permission and len(self.permission) > 0:
@@ -28,6 +35,10 @@ class auth_decorator(object): @@ -28,6 +35,10 @@ class auth_decorator(object):
28 # 无permission,不校验 35 # 无permission,不校验
29 return func(*args, **kwargs) 36 return func(*args, **kwargs)
30 else: 37 else:
31 - pass # 无token,401 38 + abort(401) # 无token,401
  39 +
  40 + @require_oauth(self.scope)
  41 + def validate_token():
  42 + pass
32 43
33 return wrapped_function 44 return wrapped_function
  1 +from functools import wraps
  2 +from authlib.integrations.flask_oauth2 import current_token
  3 +from flask import abort
  4 +from app.modules.auth.oauth2 import require_oauth
  5 +from flask import request
  6 +
  7 +# 认证装饰器
  8 +
  9 +
  10 +class token_decorator(object):
  11 + def __init__(self, scope='profile'):
  12 + self.scope = scope
  13 +
  14 + def __call__(self, func):
  15 + @wraps(func)
  16 + def wrapped_function(*args, **kwargs):
  17 + token = request.headers.get('Authorization')
  18 + if token:
  19 + validate_token()
  20 + if current_token and current_token.user:
  21 + return func(*args, **kwargs)
  22 + else:
  23 + abort(403)
  24 +
  25 + else:
  26 + abort(401) # 无token,401
  27 +
  28 + @require_oauth(self.scope)
  29 + def validate_token():
  30 + pass
  31 +
  32 + return wrapped_function
@@ -6,12 +6,13 @@ from app.util import BlueprintApi @@ -6,12 +6,13 @@ from app.util import BlueprintApi
6 from flask import Blueprint, render_template, redirect, request, session, jsonify 6 from flask import Blueprint, render_template, redirect, request, session, jsonify
7 from sqlalchemy import and_ 7 from sqlalchemy import and_
8 from .models import * 8 from .models import *
9 -from .oauth2 import authorization, require_oauth, generate_user_info 9 +from .oauth2 import authorization, generate_user_info
10 from authlib.oauth2 import OAuth2Error 10 from authlib.oauth2 import OAuth2Error
11 from authlib.integrations.flask_oauth2 import current_token 11 from authlib.integrations.flask_oauth2 import current_token
12 from . import user_create, client_create, client_query, user_query, user_update, user_delete 12 from . import user_create, client_create, client_query, user_query, user_update, user_delete
13 import configure 13 import configure
14 from app.decorators.auth_decorator import auth_decorator 14 from app.decorators.auth_decorator import auth_decorator
  15 +from app.decorators.token_decorator import token_decorator
15 16
16 17
17 def current_user(): 18 def current_user():
@@ -81,7 +82,7 @@ class DataManager(BlueprintApi): @@ -81,7 +82,7 @@ class DataManager(BlueprintApi):
81 82
82 @staticmethod 83 @staticmethod
83 @bp.route("/userinfo") 84 @bp.route("/userinfo")
84 - @require_oauth("profile") 85 + @token_decorator("profile")
85 def api_me(): 86 def api_me():
86 try: 87 try:
87 return jsonify(generate_user_info(current_token.user, current_token.scope)) 88 return jsonify(generate_user_info(current_token.user, current_token.scope))
@@ -11,7 +11,7 @@ from . import task_detail @@ -11,7 +11,7 @@ from . import task_detail
11 from . import task_delete 11 from . import task_delete
12 from . import task_count 12 from . import task_count
13 from . import task_kill 13 from . import task_kill
14 -from app.modules.auth.oauth2 import require_oauth 14 +from app.decorators.token_decorator import token_decorator
15 15
16 16
17 class DataManager(BlueprintApi): 17 class DataManager(BlueprintApi):
@@ -39,7 +39,7 @@ class DataManager(BlueprintApi): @@ -39,7 +39,7 @@ class DataManager(BlueprintApi):
39 @staticmethod 39 @staticmethod
40 @bp.route('/Delete', methods=['POST']) 40 @bp.route('/Delete', methods=['POST'])
41 @swag_from(task_delete.Api.api_doc) 41 @swag_from(task_delete.Api.api_doc)
42 - @require_oauth("profile") 42 + @token_decorator("profile")
43 def task_delete(): 43 def task_delete():
44 """ 44 """
45 删除任务 45 删除任务
@@ -49,7 +49,7 @@ class DataManager(BlueprintApi): @@ -49,7 +49,7 @@ class DataManager(BlueprintApi):
49 @staticmethod 49 @staticmethod
50 @bp.route('/Kill', methods=['POST']) 50 @bp.route('/Kill', methods=['POST'])
51 @swag_from(task_kill.Api.api_doc) 51 @swag_from(task_kill.Api.api_doc)
52 - @require_oauth("profile") 52 + @token_decorator("profile")
53 def task_kill(): 53 def task_kill():
54 """ 54 """
55 Kill任务 55 Kill任务
@@ -16,7 +16,7 @@ from . import service_info @@ -16,7 +16,7 @@ from . import service_info
16 from . import service_edit 16 from . import service_edit
17 import os 17 import os
18 from flask import send_from_directory 18 from flask import send_from_directory
19 -from app.modules.auth.oauth2 import require_oauth 19 +from app.decorators.token_decorator import token_decorator
20 20
21 21
22 class DataManager(BlueprintApi): 22 class DataManager(BlueprintApi):
@@ -28,7 +28,7 @@ class DataManager(BlueprintApi): @@ -28,7 +28,7 @@ class DataManager(BlueprintApi):
28 @staticmethod 28 @staticmethod
29 @bp.route('/Register', methods=['POST']) 29 @bp.route('/Register', methods=['POST'])
30 @swag_from(service_register.Api.api_doc) 30 @swag_from(service_register.Api.api_doc)
31 - @require_oauth("profile") 31 + @token_decorator("profile")
32 def api_service_register(): 32 def api_service_register():
33 """ 33 """
34 服务注册 34 服务注册
@@ -47,7 +47,7 @@ class DataManager(BlueprintApi): @@ -47,7 +47,7 @@ class DataManager(BlueprintApi):
47 @staticmethod 47 @staticmethod
48 @bp.route('/State', methods=['POST']) 48 @bp.route('/State', methods=['POST'])
49 @swag_from(service_state.Api.api_doc) 49 @swag_from(service_state.Api.api_doc)
50 - @require_oauth("profile") 50 + @token_decorator("profile")
51 def api_service_state(): 51 def api_service_state():
52 """ 52 """
53 修改服务状态 53 修改服务状态
@@ -85,7 +85,7 @@ class DataManager(BlueprintApi): @@ -85,7 +85,7 @@ class DataManager(BlueprintApi):
85 @staticmethod 85 @staticmethod
86 @bp.route('/Edit', methods=['POST']) 86 @bp.route('/Edit', methods=['POST'])
87 @swag_from(service_edit.Api.api_doc) 87 @swag_from(service_edit.Api.api_doc)
88 - @require_oauth("profile") 88 + @token_decorator("profile")
89 def api_service_edit(): 89 def api_service_edit():
90 """ 90 """
91 服务Edit 91 服务Edit
@@ -97,7 +97,7 @@ class DataManager(BlueprintApi): @@ -97,7 +97,7 @@ class DataManager(BlueprintApi):
97 @staticmethod 97 @staticmethod
98 @bp.route('/Delete', methods=['POST']) 98 @bp.route('/Delete', methods=['POST'])
99 @swag_from(service_delete.Api.api_doc) 99 @swag_from(service_delete.Api.api_doc)
100 - @require_oauth("profile") 100 + @token_decorator("profile")
101 def api_service_delete(): 101 def api_service_delete():
102 """ 102 """
103 服务删除 103 服务删除
@@ -7,7 +7,7 @@ from flasgger import swag_from @@ -7,7 +7,7 @@ from flasgger import swag_from
7 from flask import Blueprint 7 from flask import Blueprint
8 from app.util import BlueprintApi 8 from app.util import BlueprintApi
9 from . import image_service_delete,image_service_register,image_service_edit,image_build_pyramid 9 from . import image_service_delete,image_service_register,image_service_edit,image_build_pyramid
10 -from app.modules.auth.oauth2 import require_oauth 10 +from app.decorators.token_decorator import token_decorator
11 11
12 class DataManager(BlueprintApi): 12 class DataManager(BlueprintApi):
13 13
@@ -18,7 +18,7 @@ class DataManager(BlueprintApi): @@ -18,7 +18,7 @@ class DataManager(BlueprintApi):
18 @staticmethod 18 @staticmethod
19 @bp.route('/BuildPyramid', methods=['POST']) 19 @bp.route('/BuildPyramid', methods=['POST'])
20 @swag_from(image_build_pyramid.Api.api_doc) 20 @swag_from(image_build_pyramid.Api.api_doc)
21 - @require_oauth("profile") 21 + @token_decorator("profile")
22 def api_image_build_pyramid(): 22 def api_image_build_pyramid():
23 """ 23 """
24 创建影像金字塔 24 创建影像金字塔
@@ -28,7 +28,7 @@ class DataManager(BlueprintApi): @@ -28,7 +28,7 @@ class DataManager(BlueprintApi):
28 @staticmethod 28 @staticmethod
29 @bp.route('/Register', methods=['POST']) 29 @bp.route('/Register', methods=['POST'])
30 @swag_from(image_service_register.Api.api_doc) 30 @swag_from(image_service_register.Api.api_doc)
31 - @require_oauth("profile") 31 + @token_decorator("profile")
32 def api_image_service_register(): 32 def api_image_service_register():
33 """ 33 """
34 注册ImageService 34 注册ImageService
@@ -38,7 +38,7 @@ class DataManager(BlueprintApi): @@ -38,7 +38,7 @@ class DataManager(BlueprintApi):
38 @staticmethod 38 @staticmethod
39 @bp.route('/Edit', methods=['POST']) 39 @bp.route('/Edit', methods=['POST'])
40 @swag_from(image_service_edit.Api.api_doc) 40 @swag_from(image_service_edit.Api.api_doc)
41 - @require_oauth("profile") 41 + @token_decorator("profile")
42 def api_image_service_edit(): 42 def api_image_service_edit():
43 """ 43 """
44 修改ImageService 44 修改ImageService
@@ -48,7 +48,7 @@ class DataManager(BlueprintApi): @@ -48,7 +48,7 @@ class DataManager(BlueprintApi):
48 @staticmethod 48 @staticmethod
49 @bp.route('/Delete', methods=['POST']) 49 @bp.route('/Delete', methods=['POST'])
50 @swag_from(image_service_delete.Api.api_doc) 50 @swag_from(image_service_delete.Api.api_doc)
51 - @require_oauth("profile") 51 + @token_decorator("profile")
52 def api_image_service_delete(): 52 def api_image_service_delete():
53 """ 53 """
54 ImageService Delete 54 ImageService Delete
@@ -7,7 +7,7 @@ from flasgger import swag_from @@ -7,7 +7,7 @@ from flasgger import swag_from
7 from flask import Blueprint 7 from flask import Blueprint
8 from app.util import BlueprintApi 8 from app.util import BlueprintApi
9 from . import map_service_register, map_service_edit 9 from . import map_service_register, map_service_edit
10 -from app.modules.auth.oauth2 import require_oauth 10 +from app.decorators.token_decorator import token_decorator
11 11
12 12
13 class DataManager(BlueprintApi): 13 class DataManager(BlueprintApi):
@@ -19,7 +19,7 @@ class DataManager(BlueprintApi): @@ -19,7 +19,7 @@ class DataManager(BlueprintApi):
19 @staticmethod 19 @staticmethod
20 @bp.route('/Register', methods=['POST']) 20 @bp.route('/Register', methods=['POST'])
21 @swag_from(map_service_register.Api.api_doc) 21 @swag_from(map_service_register.Api.api_doc)
22 - @require_oauth("profile") 22 + @token_decorator("profile")
23 def api_wms_register(): 23 def api_wms_register():
24 """ 24 """
25 注册MapService 25 注册MapService
@@ -29,7 +29,7 @@ class DataManager(BlueprintApi): @@ -29,7 +29,7 @@ class DataManager(BlueprintApi):
29 @staticmethod 29 @staticmethod
30 @bp.route('/Edit', methods=['POST']) 30 @bp.route('/Edit', methods=['POST'])
31 @swag_from(map_service_edit.Api.api_doc) 31 @swag_from(map_service_edit.Api.api_doc)
32 - @require_oauth("profile") 32 + @token_decorator("profile")
33 def api_wms_edit(): 33 def api_wms_edit():
34 """ 34 """
35 修改MapService 35 修改MapService
@@ -14,7 +14,7 @@ from . import scheme_edit @@ -14,7 +14,7 @@ from . import scheme_edit
14 from . import scheme_list 14 from . import scheme_list
15 from . import scheme_resolve 15 from . import scheme_resolve
16 from . import scheme_info 16 from . import scheme_info
17 -from app.modules.auth.oauth2 import require_oauth 17 +from app.decorators.token_decorator import token_decorator
18 18
19 19
20 class SchemeManager(BlueprintApi): 20 class SchemeManager(BlueprintApi):
@@ -25,7 +25,7 @@ class SchemeManager(BlueprintApi): @@ -25,7 +25,7 @@ class SchemeManager(BlueprintApi):
25 @staticmethod 25 @staticmethod
26 @bp.route('/Create', methods=['POST']) 26 @bp.route('/Create', methods=['POST'])
27 @swag_from(scheme_create.Api.api_doc) 27 @swag_from(scheme_create.Api.api_doc)
28 - @require_oauth("profile") 28 + @token_decorator("profile")
29 def api_scheme_create(): 29 def api_scheme_create():
30 """ 30 """
31 创建切片方案 31 创建切片方案
@@ -36,7 +36,7 @@ class SchemeManager(BlueprintApi): @@ -36,7 +36,7 @@ class SchemeManager(BlueprintApi):
36 @staticmethod 36 @staticmethod
37 @bp.route('/Delete', methods=['POST']) 37 @bp.route('/Delete', methods=['POST'])
38 @swag_from(scheme_delete.Api.api_doc) 38 @swag_from(scheme_delete.Api.api_doc)
39 - @require_oauth("profile") 39 + @token_decorator("profile")
40 def api_scheme_delete(): 40 def api_scheme_delete():
41 """ 41 """
42 删除切片方案 42 删除切片方案
@@ -46,7 +46,7 @@ class SchemeManager(BlueprintApi): @@ -46,7 +46,7 @@ class SchemeManager(BlueprintApi):
46 @staticmethod 46 @staticmethod
47 @bp.route('/Edit', methods=['POST']) 47 @bp.route('/Edit', methods=['POST'])
48 @swag_from(scheme_edit.Api.api_doc) 48 @swag_from(scheme_edit.Api.api_doc)
49 - @require_oauth("profile") 49 + @token_decorator("profile")
50 def api_scheme_edit(): 50 def api_scheme_edit():
51 """ 51 """
52 修改切片方案 52 修改切片方案
@@ -8,7 +8,7 @@ from flasgger import swag_from @@ -8,7 +8,7 @@ from flasgger import swag_from
8 from flask import Blueprint 8 from flask import Blueprint
9 from app.util import BlueprintApi 9 from app.util import BlueprintApi
10 from . import upload_oview,tile_service_register,tile_service_edit,tile_service_reload 10 from . import upload_oview,tile_service_register,tile_service_edit,tile_service_reload
11 -from app.modules.auth.oauth2 import require_oauth 11 +from app.decorators.token_decorator import token_decorator
12 12
13 13
14 class DataManager(BlueprintApi): 14 class DataManager(BlueprintApi):
@@ -30,7 +30,7 @@ class DataManager(BlueprintApi): @@ -30,7 +30,7 @@ class DataManager(BlueprintApi):
30 @staticmethod 30 @staticmethod
31 @bp.route('/Register', methods=['POST']) 31 @bp.route('/Register', methods=['POST'])
32 @swag_from(tile_service_register.Api.api_doc) 32 @swag_from(tile_service_register.Api.api_doc)
33 - @require_oauth("profile") 33 + @token_decorator("profile")
34 def api_wmts_register(): 34 def api_wmts_register():
35 """ 35 """
36 注册TileService 36 注册TileService
@@ -40,7 +40,7 @@ class DataManager(BlueprintApi): @@ -40,7 +40,7 @@ class DataManager(BlueprintApi):
40 @staticmethod 40 @staticmethod
41 @bp.route('/Edit', methods=['POST']) 41 @bp.route('/Edit', methods=['POST'])
42 @swag_from(tile_service_edit.Api.api_doc) 42 @swag_from(tile_service_edit.Api.api_doc)
43 - @require_oauth("profile") 43 + @token_decorator("profile")
44 def api_wmts_edit(): 44 def api_wmts_edit():
45 """ 45 """
46 修改TileService 46 修改TileService
@@ -4,8 +4,8 @@ import logging @@ -4,8 +4,8 @@ import logging
4 deploy_ip_host = "172.26.40.105:8840" 4 deploy_ip_host = "172.26.40.105:8840"
5 # 系统数据库 5 # 系统数据库
6 6
7 -SQLALCHEMY_DATABASE_URI = "postgresql://postgres:chinadci@172.26.60.100:5432/dmap_manager_test"  
8 -# SQLALCHEMY_DATABASE_URI = "postgresql://postgres:postgres@localhost:5433/dmap_dms_test" 7 +# SQLALCHEMY_DATABASE_URI = "postgresql://postgres:chinadci@172.26.60.100:5432/dmap_manager_test"
  8 +SQLALCHEMY_DATABASE_URI = "postgresql://postgres:postgres@localhost:5433/dmap_dms_test"
9 9
10 # 指定精华表所在位置(必须为空间库),设置为None则存放在各自的实体库中 10 # 指定精华表所在位置(必须为空间库),设置为None则存放在各自的实体库中
11 #VACUATE_DB_URI = None 11 #VACUATE_DB_URI = None
注册登录 后发表评论