oidc added
This commit is contained in:
@ -1,15 +1,25 @@
|
|||||||
async-timeout==5.0.1
|
async-timeout==5.0.1
|
||||||
|
Authlib==1.4.0
|
||||||
blinker==1.9.0
|
blinker==1.9.0
|
||||||
cachelib==0.13.0
|
cachelib==0.13.0
|
||||||
|
certifi==2024.12.14
|
||||||
|
cffi==1.17.1
|
||||||
|
charset-normalizer==3.4.1
|
||||||
click==8.1.8
|
click==8.1.8
|
||||||
|
cryptography==44.0.0
|
||||||
Flask==3.1.0
|
Flask==3.1.0
|
||||||
|
flask-oidc==2.2.2
|
||||||
Flask-Session==0.8.0
|
Flask-Session==0.8.0
|
||||||
|
idna==3.10
|
||||||
importlib_metadata==8.5.0
|
importlib_metadata==8.5.0
|
||||||
itsdangerous==2.2.0
|
itsdangerous==2.2.0
|
||||||
Jinja2==3.1.5
|
Jinja2==3.1.5
|
||||||
loguru==0.7.3
|
loguru==0.7.3
|
||||||
MarkupSafe==3.0.2
|
MarkupSafe==3.0.2
|
||||||
msgspec==0.19.0
|
msgspec==0.19.0
|
||||||
|
pycparser==2.22
|
||||||
redis==5.2.1
|
redis==5.2.1
|
||||||
|
requests==2.32.3
|
||||||
|
urllib3==2.3.0
|
||||||
Werkzeug==3.1.3
|
Werkzeug==3.1.3
|
||||||
zipp==3.21.0
|
zipp==3.21.0
|
||||||
|
26
src/run.py
26
src/run.py
@ -1,11 +1,14 @@
|
|||||||
from flask import Flask, session
|
from flask import Flask, session, g
|
||||||
from flask_session import Session
|
from flask_session import Session
|
||||||
|
from flask_oidc import OpenIDConnect
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
import redis
|
import redis
|
||||||
import os
|
import os
|
||||||
|
|
||||||
try:
|
try:
|
||||||
redis_url = os.environ['REDIS_URL']
|
redis_url = os.environ['REDIS_URL']
|
||||||
|
client_secret = os.environ['CLIENT_SECRET']
|
||||||
|
secret_key = os.environ['SECRET_KEY']
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
logger.error(f"Required environment variable not set ({e})")
|
logger.error(f"Required environment variable not set ({e})")
|
||||||
raise e
|
raise e
|
||||||
@ -14,12 +17,31 @@ except KeyError as e:
|
|||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
app.config.update({
|
app.config.update({
|
||||||
|
'SECRET_KEY': secret_key,
|
||||||
'SESSION_TYPE': 'redis',
|
'SESSION_TYPE': 'redis',
|
||||||
'SESSION_REDIS': redis.from_url('redis://172.23.1.111:6379/4')
|
'SESSION_REDIS': redis.from_url('redis://172.23.1.111:6379/4'),
|
||||||
|
'OIDC_CLIENT_SECRETS': {
|
||||||
|
"web": {
|
||||||
|
"issuer": "https://auth2.hottis.de/realms/hottis",
|
||||||
|
"auth_uri": "https://auth2.hottis.de/ealms/hottis/protocol/openid-connect/auth",
|
||||||
|
"client_id": "mini_flask",
|
||||||
|
"client_secret": client_secret,
|
||||||
|
"redirect_uris": [
|
||||||
|
"http://localhost:8080/*"
|
||||||
|
],
|
||||||
|
"userinfo_uri": "https://auth2.hottis.de/realms/hottis/protocol/openid-connect/userinfo",
|
||||||
|
"token_uri": "https://auth2.hottis.de/realms/hottis/protocol/openid-connect/token"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'OIDC_SCOPES': 'openid email',
|
||||||
|
'OIDC_USER_INFO_ENABLED': True,
|
||||||
|
'SESSION_USE_SIGNER': True,
|
||||||
})
|
})
|
||||||
Session(app)
|
Session(app)
|
||||||
|
oidc = OpenIDConnect(app)
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
|
@oidc.require_login
|
||||||
def index():
|
def index():
|
||||||
counter = int(session.get('counter', '0'))
|
counter = int(session.get('counter', '0'))
|
||||||
counter += 1
|
counter += 1
|
||||||
|
Reference in New Issue
Block a user