All checks were successful
Check meta / check_meta (pull_request) Successful in 16s
Check meta / check_dns (pull_request) Successful in 17s
Check workflows / check_workflows (pull_request) Successful in 18s
Run pre-commit on all files / pre-commit (push) Successful in 27s
Build all the nodes / ap01 (pull_request) Successful in 34s
Build all the nodes / netaccess01 (pull_request) Successful in 21s
Build all the nodes / netcore01 (pull_request) Successful in 21s
Build all the nodes / netcore02 (pull_request) Successful in 23s
Build all the nodes / bridge01 (pull_request) Successful in 54s
Build all the nodes / build01 (pull_request) Successful in 56s
Build all the nodes / cof02 (pull_request) Successful in 59s
Build all the nodes / geo02 (pull_request) Successful in 57s
Build all the nodes / geo01 (pull_request) Successful in 58s
Build the shell / build-shell (pull_request) Successful in 31s
Build all the nodes / hypervisor01 (pull_request) Successful in 1m6s
Build all the nodes / hypervisor03 (pull_request) Successful in 1m3s
Build all the nodes / hypervisor02 (pull_request) Successful in 1m3s
Run pre-commit on all files / pre-commit (pull_request) Successful in 28s
Build all the nodes / rescue01 (pull_request) Successful in 1m8s
Build all the nodes / tower01 (pull_request) Successful in 1m0s
Build all the nodes / storage01 (pull_request) Successful in 1m6s
Build all the nodes / compute01 (pull_request) Successful in 1m38s
Build all the nodes / web02 (pull_request) Successful in 1m6s
Build all the nodes / web03 (pull_request) Successful in 1m4s
Build all the nodes / vault01 (pull_request) Successful in 1m32s
Build all the nodes / web01 (pull_request) Successful in 1m37s
44 lines
1.4 KiB
Diff
44 lines
1.4 KiB
Diff
diff --git a/kanidm/radius/__init__.py b/kanidm/radius/__init__.py
|
|
index b44a6ff50..60c7efe7c 100644
|
|
--- a/kanidm/radius/__init__.py
|
|
+++ b/kanidm/radius/__init__.py
|
|
@@ -1,12 +1,14 @@
|
|
""" kanidm RADIUS module """
|
|
import asyncio
|
|
from aiohttp.client_exceptions import ClientConnectorError
|
|
+import base64
|
|
from functools import reduce
|
|
import json
|
|
import logging
|
|
import os
|
|
from pathlib import Path
|
|
import sys
|
|
+import requests
|
|
from typing import Any, Dict, Optional, Union
|
|
|
|
from kanidm.exceptions import NoMatchingEntries
|
|
@@ -146,13 +148,14 @@ def authorize(
|
|
logging.info("User %s doesn't have a group from the required list.", name)
|
|
return radiusd.RLM_MODULE_REJECT
|
|
|
|
- # look up them in config for group vlan if possible.
|
|
- # TODO: work out the typing on this, WTF.
|
|
- uservlan: int = reduce(
|
|
- check_vlan,
|
|
- tok.groups,
|
|
- kanidm_client.config.radius_default_vlan,
|
|
- )
|
|
+ dgsi_info = requests.get(kanidm_client.config.dgsi_endpoint + "/" + name, headers={
|
|
+ "Authorization": "Basic " + kanidm_client.config.dgsi_token
|
|
+ })
|
|
+ if dgsi_info.status != 200:
|
|
+ logging.error("dgsi: error getting vlan of %s : %s.", name, dgsi_info.status)
|
|
+ return radiusd.RLM_MODULE_FAIL
|
|
+ else:
|
|
+ uservlan: int = int(dgsi_info.text)
|
|
if uservlan == int(0):
|
|
logging.info("Invalid uservlan of 0")
|
|
|
|
--
|
|
2.48.1
|
|
|