Newer
Older
from flask_migrate import Migrate
from models import db, Benutzer
#from sqlalchemy import create_engine
from flask_httpauth import HTTPBasicAuth
from sqlalchemy.orm.exc import NoResultFound
from werkzeug.security import generate_password_hash, check_password_hash
from flask import Flask, jsonify, request
from sqlalchemy import select
import json
app = Flask(__name__)
autorisierte_benutzer = {
"admin": generate_password_hash("admin")
}
#engine = create_engine("postgresql://postgres:postgres@postgres:5432/web-sec",echo = True)
#conn = engine.connect()
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://postgres:postgres@postgres:5432/web-sec"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)
migrate = Migrate(app, db)
@auth.verify_password
def verify_password(username, password):
if username in autorisierte_benutzer and \
check_password_hash(autorisierte_benutzer.get(username), password):
return username
@app.route('/')
def index():
return json.dumps({'Aufgabe1': 'Security of web applications'})
@app.route("/benutzer/<id>", methods=["GET"])
@auth.login_required
def get_email(id):
benutzer_email = db.session.query(Benutzer.email).filter(Benutzer.customerid == id).first()[0]
return jsonify(email=benutzer_email)
@app.route("/benutzer", methods=["POST"])
@auth.login_required
def create_user():
new_user = Benutzer(
vorname=request.json['vorname'],
nachname=request.json['nachname'],
email=request.json['email']
)
db.session.add(new_user)
db.session.commit()
return jsonify(benutzer=new_user)
@app.route("/benutzer/<id>", methods=["DELETE"])
@auth.login_required
def delete_user(id):
benutzer = db.session.query(Benutzer).filter(Benutzer.customerid == id).first()[0]
db.session.delete(benutzer)
db.session.commit()
if __name__ == "__main__":