@@ -93,6 +93,8 @@ class OIDCClient:
9393 service_account_roles : List [str ] = field (default_factory = list )
9494 service_account_realm_roles : List [str ] = field (default_factory = list )
9595 public_client : bool = False
96+ client_extra_web_origins : List [str ] = field (default_factory = list )
97+ client_extra_redirect_uris : List [str ] = field (default_factory = list )
9698
9799 def __post_init__ (self ):
98100 self .base_url = self .base_url .rstrip ("/" )
@@ -163,8 +165,8 @@ def to_dict(self) -> Dict[str, Any]:
163165 "baseUrl" : self .base_url ,
164166 "publicClient" : self .public_client ,
165167 "attributes" : self .attributes ,
166- "redirectUris" : [self .base_url + "/*" ],
167- "webOrigins" : [self .base_url + "/*" ],
168+ "redirectUris" : [self .base_url + "/*" ] + self . client_extra_redirect_uris ,
169+ "webOrigins" : [self .base_url + "/*" ] + self . client_extra_web_origins ,
168170 "protocolMappers" : default_protocol_mappers
169171 + [
170172 {
@@ -207,6 +209,12 @@ def from_env(cls, prefix: str = "RENKU_KC_CLIENT_") -> "OIDCClient":
207209 service_account_realm_roles = json .loads (
208210 os .environ .get (f"{ prefix } SERVICE_ACCOUNT_REALM_ROLES" , "[]" )
209211 ),
212+ client_extra_redirect_uris = json .loads (
213+ os .environ .get (f"{ prefix } EXTRA_REDIRECT_URIS" , "[]" )
214+ ),
215+ client_extra_web_origins = json .loads (
216+ os .environ .get (f"{ prefix } EXTRA_WEB_ORIGINS" , "[]" )
217+ )
210218 )
211219
212220
0 commit comments