diff --git a/cmd/csaf_aggregator/indices.go b/cmd/csaf_aggregator/indices.go index fb2c778..34adcba 100644 --- a/cmd/csaf_aggregator/indices.go +++ b/cmd/csaf_aggregator/indices.go @@ -139,10 +139,12 @@ func (w *worker) writeIndex(label string, summaries []summary) error { func (w *worker) writeROLIE(label string, summaries []summary) error { - fname := "csaf-feed-tlp-" + strings.ToLower(label) + ".json" + labelFolder := strings.ToLower(label) + + fname := "csaf-feed-tlp-" + labelFolder + ".json" feedURL := w.cfg.Domain + "/.well-known/csaf-aggregator/" + - w.provider.Name + "/" + fname + w.provider.Name + "/" + labelFolder + "/" + fname entries := make([]*csaf.Entry, len(summaries)) @@ -197,7 +199,7 @@ func (w *worker) writeROLIE(label string, summaries []summary) error { // Sort by descending updated order. rolie.SortEntriesByUpdated() - path := filepath.Join(w.dir, fname) + path := filepath.Join(w.dir, labelFolder, fname) return util.WriteToFile(path, rolie) } diff --git a/cmd/csaf_aggregator/mirror.go b/cmd/csaf_aggregator/mirror.go index 4fad34a..1e75e41 100644 --- a/cmd/csaf_aggregator/mirror.go +++ b/cmd/csaf_aggregator/mirror.go @@ -203,8 +203,8 @@ func (w *worker) writeProviderMetadata() error { fname := filepath.Join(w.dir, "provider-metadata.json") - pm := csaf.NewProviderMetadataDomain( - w.cfg.Domain, + pm := csaf.NewProviderMetadataPrefix( + w.cfg.Domain+"/.well-known/csaf-aggreator/"+w.provider.Name, w.labelsFromSummaries()) // Figure out the role diff --git a/csaf/models.go b/csaf/models.go index 89cb7db..035bb60 100644 --- a/csaf/models.go +++ b/csaf/models.go @@ -607,9 +607,15 @@ func NewProviderMetadata(canonicalURL string) *ProviderMetadata { // NewProviderMetadataDomain creates a new provider with the given URL // and tlps feeds. func NewProviderMetadataDomain(domain string, tlps []TLPLabel) *ProviderMetadata { + return NewProviderMetadataPrefix(domain+"/.well-known/csaf", tlps) +} + +// NewProviderMetadataPrefix creates a new provider with a given prefix +// and tlps feeds. +func NewProviderMetadataPrefix(prefix string, tlps []TLPLabel) *ProviderMetadata { pm := NewProviderMetadata( - domain + "/.well-known/csaf/provider-metadata.json") + prefix + "/provider-metadata.json") if len(tlps) == 0 { return pm @@ -622,7 +628,7 @@ func NewProviderMetadataDomain(domain string, tlps []TLPLabel) *ProviderMetadata for i, t := range tlps { lt := strings.ToLower(string(t)) feed := "csaf-feed-tlp-" + lt + ".json" - url := JSONURL(domain + "/.well-known/csaf/" + lt + "/" + feed) + url := JSONURL(prefix + "/" + lt + "/" + feed) t := t feeds[i] = Feed{