import os app = Flask(__name__) app.register_blueprint(app_views) CORS(app, resources={r"/api/v1/*": {"origins": "*"}}) auth = None app.config['JSONIFY_PRETTYPRINT_REGULAR'] = True AUTH_TYPE = getenv("AUTH_TYPE") if AUTH_TYPE == "auth": from api.v1.auth.auth import Auth auth = Auth() elif AUTH_TYPE == "basic_auth": from api.v1.auth.basic_auth import BasicAuth auth = BasicAuth() @app.errorhandler(404) def not_found(error) -> str: """ Not found handler """ return jsonify({"error": "Not found"}), 404 @app.errorhandler(401) def unauthorized_error(error) -> str: """ Request unauthorized """ return jsonify({"error": "Unauthorized"}), 401
#!/usr/bin/env python3 """ Main 2 """ from api.v1.auth.basic_auth import BasicAuth a = BasicAuth() print(a.extract_base64_authorization_header(None)) print(a.extract_base64_authorization_header(89)) print(a.extract_base64_authorization_header("Holberton School")) print(a.extract_base64_authorization_header("Basic Holberton")) print(a.extract_base64_authorization_header("Basic SG9sYmVydG9u")) print(a.extract_base64_authorization_header("Basic SG9sYmVydG9uIFNjaG9vbA==")) print(a.extract_base64_authorization_header("Basic1234"))
#!/usr/bin/env python3 """ Check response """ if __name__ == "__main__": from api.v1.auth.basic_auth import BasicAuth ba = BasicAuth() res = ba.user_object_from_credentials("*****@*****.**", "pwd") if res is not None: print("user_object_from_credentials must return None if 'user_email' is not linked to any user") exit(1) print("OK", end="")
#!/usr/bin/env python3 """ Main 4 """ from api.v1.auth.basic_auth import BasicAuth a = BasicAuth() print(a.extract_user_credentials(None)) print(a.extract_user_credentials(89)) print(a.extract_user_credentials("Holberton School")) print(a.extract_user_credentials("Holberton:School")) print(a.extract_user_credentials("[email protected]:toto1234"))
#!/usr/bin/python3 """ module containing flask app """ import os from api.v1.auth.auth import Auth from api.v1.auth.basic_auth import BasicAuth from api.v1.views import app_views from flask import abort, Flask, jsonify, request from models import db_session app = Flask(__name__) app.url_map.strict_slashes = False app.register_blueprint(app_views) auth = BasicAuth() if os.getenv('HBNB_YELP_AUTH') == 'basic_auth' else Auth() host = os.getenv('HBNB_API_HOST') port = os.getenv('HBNB_API_PORT') @app.before_request def bfr_req(): """ function to run before request """ if auth.require_auth(request.path, ['/api/v1/status/', '/api/v1/unauthorized/', '/api/v1/forbidden/']) is False: return if auth.authorization_header(request) is None: abort(401) if auth.current_user(request) is None: abort(403)
#!/usr/bin/python3 """ Main 5 """ import uuid from api.v1.auth.basic_auth import BasicAuth from models import db_session from models.user import User """ Create a user test """ user_email = str(uuid.uuid4()) user_clear_pwd = str(uuid.uuid4()) user = User() user.email = user_email user.password = user_clear_pwd print("New user: {}".format(user)) db_session.add(user) db_session.commit() """ Retreive this user via the class BasicAuth """ a = BasicAuth() print(a.user_object_from_credentials(None, None)) print(a.user_object_from_credentials(89, 98)) print(a.user_object_from_credentials("*****@*****.**", "pwd")) print(a.user_object_from_credentials(user_email, "pwd")) print(a.user_object_from_credentials(user_email, user_clear_pwd))
#!/usr/bin/env python3 """ Main 3 """ from api.v1.auth.basic_auth import BasicAuth a = BasicAuth() print(a.decode_base64_authorization_header(None)) print(a.decode_base64_authorization_header(89)) print(a.decode_base64_authorization_header("Holberton School")) print(a.decode_base64_authorization_header("SG9sYmVydG9u")) print(a.decode_base64_authorization_header("SG9sYmVydG9uIFNjaG9vbA==")) print( a.decode_base64_authorization_header( a.extract_base64_authorization_header( "Basic SG9sYmVydG9uIFNjaG9vbA=="))) print( a.decode_base64_authorization_header( "Ym9iQGhidG4uaW86SDBsYmVydG9uU2Nob29sOTgh"))
import uuid from api.v1.auth.basic_auth import BasicAuth from models.user import User """ Create a user test """ user_email = str(uuid.uuid4()) user_clear_pwd = str(uuid.uuid4()) user = User() user.email = user_email user.first_name = "Bob" user.last_name = "Dylan" user.password = user_clear_pwd print("New user: {}".format(user.display_name())) user.save() """ Retreive this user via the class BasicAuth """ a = BasicAuth() u = a.user_object_from_credentials(None, None) print(u.display_name() if u is not None else "None") u = a.user_object_from_credentials(89, 98) print(u.display_name() if u is not None else "None") u = a.user_object_from_credentials("*****@*****.**", "pwd") print(u.display_name() if u is not None else "None") u = a.user_object_from_credentials(user_email, "pwd") print(u.display_name() if u is not None else "None") u = a.user_object_from_credentials(user_email, user_clear_pwd) print(u.display_name() if u is not None else "None")