diff --git a/Dockerfile b/Dockerfile index 6cd6a4a34329d28e040d0378ea2217a4fc2ca444..01003b8e364ef8f2888e08aec7c611c75175bd6d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,9 @@ RUN mkdir /app RUN curl -fsSL https://deb.nodesource.com/setup_19.x | bash - RUN apt-get -y install make autoconf automake libtool pkg-config nodejs git python3-pip +# --- +RUN apt-get -y install tree +# --- RUN rm -rf /var/lib/apt/lists/* WORKDIR /app @@ -26,6 +29,8 @@ RUN cd frontend; \ cp dist/favicon.ico ../server/server/static/; \ rm -fr dist +RUN tree + RUN bash -c "adduser --disabled-login --quiet --gecos app app && \ chmod -R o+r /app/ && \ chmod o+x /app/server/run.sh" diff --git a/server/server/authentication/__init__.py b/server/server/authentication/__init__.py index 39a086d677df3c5dc45ad82c328efada5e09787a..80804f8de7e6295f791f92b681544e1a55aea28e 100644 --- a/server/server/authentication/__init__.py +++ b/server/server/authentication/__init__.py @@ -9,25 +9,25 @@ import werkzeug def authentication_required(func: typing.Callable) -> typing.Callable: @functools.wraps(func) def decorator(*args, **kwargs) -> typing.Any: - #if "token" not in flask.request.cookies: - #return flask.redirect(flask.url_for("oidc.login")) - - #try: - #claims = authlib.jose.jwt.decode( - #flask.request.cookies["token"], - #flask.current_app.config["JWT_SECRET_KEY"], - #) - #except authlib.jose.JoseError as exception: - #raise werkzeug.exceptions.BadRequest from exception - - #try: - #claims.validate() - #except authlib.jose.JoseError as exception: - #flask.current_app.logger.info( - #"Claim validation failed for user %s: %s", claims["sub"], exception - #) - - #return flask.redirect(flask.url_for("oidc.login")) + if "token" not in flask.request.cookies: + return flask.redirect(flask.url_for("oidc.login")) + + try: + claims = authlib.jose.jwt.decode( + flask.request.cookies["token"], + flask.current_app.config["JWT_SECRET_KEY"], + ) + except authlib.jose.JoseError as exception: + raise werkzeug.exceptions.BadRequest from exception + + try: + claims.validate() + except authlib.jose.JoseError as exception: + flask.current_app.logger.info( + "Claim validation failed for user %s: %s", claims["sub"], exception + ) + + return flask.redirect(flask.url_for("oidc.login")) return func(*args, **kwargs)