コード例 #1
0
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
コード例 #2
0
#!/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"))
コード例 #3
0
#!/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="")
コード例 #4
0
#!/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"))

コード例 #5
0
#!/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)
コード例 #6
0
#!/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))
コード例 #7
0
#!/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"))
コード例 #8
0
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")