From e37fe68b34d1cdec09564922d5e4ca618d0c662a Mon Sep 17 00:00:00 2001 From: "Sascha L. Teichmann" Date: Thu, 30 Jun 2022 16:37:02 +0200 Subject: [PATCH] Link service document in ROLIE feeds. --- cmd/csaf_provider/create.go | 3 +-- cmd/csaf_provider/rolie.go | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cmd/csaf_provider/create.go b/cmd/csaf_provider/create.go index 22c9200..9bd12e9 100644 --- a/cmd/csaf_provider/create.go +++ b/cmd/csaf_provider/create.go @@ -83,13 +83,12 @@ func createService(c *config, wellknownCSAF string) error { continue } ts := string(t) - title := "CSAF feed (TLP:" + strings.ToUpper(ts) + ")" feedName := "csaf-feed-tlp-" + ts + ".json" href := c.CanonicalURLPrefix + "/.well-known/csaf/" + ts + "/" + feedName collection := csaf.ROLIEServiceWorkspaceCollection{ - Title: title, + Title: "CSAF feed (TLP:" + strings.ToUpper(ts) + ")", HRef: href, Categories: categories, } diff --git a/cmd/csaf_provider/rolie.go b/cmd/csaf_provider/rolie.go index 2334699..ed6e641 100644 --- a/cmd/csaf_provider/rolie.go +++ b/cmd/csaf_provider/rolie.go @@ -90,14 +90,22 @@ func (c *controller) extendROLIE( // Create new if does not exists. if rolie == nil { + links := []csaf.Link{{ + Rel: "self", + HRef: string(feedURL), + }} + // If we have a service document we need to link it. + if c.cfg.ServiceDocument { + links = append(links, csaf.Link{ + Rel: "service", + HRef: c.cfg.CanonicalURLPrefix + "/.well-known/csaf/service.json", + }) + } rolie = &csaf.ROLIEFeed{ Feed: csaf.FeedData{ ID: "csaf-feed-tlp-" + ts, Title: "CSAF feed (TLP:" + string(tlpLabel) + ")", - Link: []csaf.Link{{ - Rel: "self", - HRef: string(feedURL), - }}, + Link: links, Category: []csaf.ROLIECategory{{ Scheme: "urn:ietf:params:rolie:category:information-type", Term: "csaf",