mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-08-17 19:30:23 -04:00
cas: support setting display name (#6114)
Now, the CAS server can return an attribute stating what's the desired displayname, instead of using the username directly.
This commit is contained in:
parent
a0d0ba7862
commit
be9b55e0d2
4 changed files with 8 additions and 1 deletions
|
@ -377,6 +377,7 @@ class CasTicketServlet(RestServlet):
|
|||
super(CasTicketServlet, self).__init__()
|
||||
self.cas_server_url = hs.config.cas_server_url
|
||||
self.cas_service_url = hs.config.cas_service_url
|
||||
self.cas_displayname_attribute = hs.config.cas_displayname_attribute
|
||||
self.cas_required_attributes = hs.config.cas_required_attributes
|
||||
self._sso_auth_handler = SSOAuthHandler(hs)
|
||||
self._http_client = hs.get_simple_http_client()
|
||||
|
@ -400,6 +401,7 @@ class CasTicketServlet(RestServlet):
|
|||
|
||||
def handle_cas_response(self, request, cas_response_body, client_redirect_url):
|
||||
user, attributes = self.parse_cas_response(cas_response_body)
|
||||
displayname = attributes.pop(self.cas_displayname_attribute, None)
|
||||
|
||||
for required_attribute, required_value in self.cas_required_attributes.items():
|
||||
# If required attribute was not in CAS Response - Forbidden
|
||||
|
@ -414,7 +416,7 @@ class CasTicketServlet(RestServlet):
|
|||
raise LoginError(401, "Unauthorized", errcode=Codes.UNAUTHORIZED)
|
||||
|
||||
return self._sso_auth_handler.on_successful_auth(
|
||||
user, request, client_redirect_url
|
||||
user, request, client_redirect_url, displayname
|
||||
)
|
||||
|
||||
def parse_cas_response(self, cas_response_body):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue