Skip to content

Commit 26be3d7

Browse files
committed
fix (AuthServer): fix logging error/result
1 parent a060a81 commit 26be3d7

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/DIRAC/FrameworkSystem/private/authorization/AuthServer.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
""" This class provides authorization server activity. """
22
import re
3-
import six
43
import json
54
import pprint
65
from dominate import tags as dom
@@ -343,11 +342,15 @@ def handle_response(self, status_code=None, payload=None, headers=None, newSessi
343342
344343
:return: TornadoResponse()
345344
"""
346-
sLog.debug(
347-
f"Handle authorization response with {status_code} status code:",
348-
"HTML page" if isinstance(payload, str) and payload.startswith("<!DOCTYPE html>") else payload,
349-
)
350345
resp = TornadoResponse(payload, status_code)
346+
if not isinstance(payload, dict):
347+
sLog.debug(
348+
f"Handle authorization response with {status_code} status code:",
349+
"HTML page" if payload.startswith("<!DOCTYPE html>") else payload,
350+
)
351+
elif "error" in payload:
352+
resp.clear_cookie("auth_session") # pylint: disable=no-member
353+
sLog.error(f"{payload['error']}: {payload.get('error_description', 'unknown')}")
351354
if headers:
352355
sLog.debug("Headers:", headers)
353356
for key, value in headers:
@@ -356,7 +359,7 @@ def handle_response(self, status_code=None, payload=None, headers=None, newSessi
356359
sLog.debug("Initialize new session:", newSession)
357360
# pylint: disable=no-member
358361
resp.set_secure_cookie("auth_session", json.dumps(newSession), secure=True, httponly=True)
359-
if delSession or isinstance(payload, dict) and "error" in payload:
362+
if delSession:
360363
resp.clear_cookie("auth_session") # pylint: disable=no-member
361364
return resp
362365

@@ -386,18 +389,13 @@ def validate_consent_request(self, request, provider=None):
386389
387390
:return: response generated by `handle_response` or S_ERROR or html
388391
"""
389-
if request.method != "GET":
390-
return self.handle_response(
391-
payload=getHTML("use GET method", theme="error", info="Use GET method to access this endpoint."),
392-
delSession=True,
393-
)
394392
try:
395393
request = self.create_oauth2_request(request)
396394
# Check Identity Provider
397395
req = self.validateIdentityProvider(request, provider)
398396

399-
# If return IdP selector
400-
if isinstance(req, six.string_types):
397+
# If return HTML page with IdP selector
398+
if isinstance(req, str):
401399
return req
402400

403401
sLog.info("Validate consent request for ", req.state)

0 commit comments

Comments
 (0)