feat(webfinger): add desktop-specific OIDC issuer support
This commit is contained in:
@@ -121,6 +121,11 @@ func getRelationProviders(cfg *config.Config) (map[string]service.RelationProvid
|
||||
switch relationURI {
|
||||
case relations.OpenIDConnectRel:
|
||||
rels[relationURI] = relations.OpenIDDiscovery(cfg.IDP)
|
||||
case relations.OpenIDConnectDesktopRel:
|
||||
// Handled below - can also be auto-enabled via DesktopIDP config
|
||||
if cfg.DesktopIDP != "" {
|
||||
rels[relationURI] = relations.OpenIDDiscoveryDesktop(cfg.DesktopIDP)
|
||||
}
|
||||
case relations.OpenCloudInstanceRel:
|
||||
var err error
|
||||
rels[relationURI], err = relations.OpenCloudInstance(cfg.Instances, cfg.OpenCloudURL)
|
||||
@@ -131,5 +136,16 @@ func getRelationProviders(cfg *config.Config) (map[string]service.RelationProvid
|
||||
return nil, fmt.Errorf("unknown relation '%s'", relationURI)
|
||||
}
|
||||
}
|
||||
|
||||
// Auto-enable desktop OIDC issuer when DesktopIDP is configured,
|
||||
// even if not explicitly listed in Relations. This provides a simpler
|
||||
// configuration experience - just set WEBFINGER_OIDC_ISSUER_DESKTOP.
|
||||
// See: https://github.com/opencloud-eu/desktop/issues/246
|
||||
if cfg.DesktopIDP != "" {
|
||||
if _, exists := rels[relations.OpenIDConnectDesktopRel]; !exists {
|
||||
rels[relations.OpenIDConnectDesktopRel] = relations.OpenIDDiscoveryDesktop(cfg.DesktopIDP)
|
||||
}
|
||||
}
|
||||
|
||||
return rels, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user