Newer
Older
from flask_migrate import Migrate
from models import db, Benutzer
from flask_httpauth import HTTPBasicAuth
from werkzeug.security import generate_password_hash, check_password_hash
from flask import Flask, jsonify, request
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):

Yannic Nevado Hidalgo
committed
exists = db.session.query(db.exists().where(Benutzer.customerid == id)).scalar()
if exists:
benutzer_email = db.session.query(Benutzer.email).filter(Benutzer.customerid == id).first()[0]
return jsonify(email=benutzer_email)
else:
return json.dumps({'Benutzer': 'existiert nicht'})
@app.route("/benutzer", methods=["POST"])
@auth.login_required
def create_user():

Yannic Nevado Hidalgo
committed
new_user = Benutzer(
vorname=request.json['vorname'],
nachname=request.json['nachname'],
email=request.json['email']
)
db.session.add(new_user)
db.session.commit()

Yannic Nevado Hidalgo
committed
benutzer = json.dumps(
{"vorname": new_user.vorname,
"nachname": new_user.nachname,
"email": new_user.email
})
#return benutzer
return jsonify(benutzer)
@app.route("/benutzer/<id>", methods=["DELETE"])
@auth.login_required
def delete_user(id):

Yannic Nevado Hidalgo
committed
exists = db.session.query(db.exists().where(Benutzer.customerid == id)).scalar()
if exists:
Benutzer.query.filter_by(customerid=id).delete()
db.session.commit()
return json.dumps({'Benutzer': 'geloescht'})
else:
return json.dumps({'Benutzer': 'existiert nicht'})
if __name__ == "__main__":