From 4c3f82feef3317d6cd10bfe222f78eddf4abefdc Mon Sep 17 00:00:00 2001 From: Aayush garg Date: Wed, 13 Dec 2023 13:01:14 +0530 Subject: [PATCH] Post security configuration on UI --- v3/integrations/nrsecurityagent/go.mod | 2 +- v3/integrations/nrsecurityagent/nrsecurityagent.go | 1 + v3/newrelic/config.go | 2 ++ v3/newrelic/secure_agent.go | 7 +++++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/v3/integrations/nrsecurityagent/go.mod b/v3/integrations/nrsecurityagent/go.mod index a415d6b2f..946cd7f58 100644 --- a/v3/integrations/nrsecurityagent/go.mod +++ b/v3/integrations/nrsecurityagent/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( github.com/newrelic/csec-go-agent v0.5.1 - github.com/newrelic/go-agent/v3 v3.28.1 + github.com/newrelic/go-agent/v3 v3.29.0 github.com/newrelic/go-agent/v3/integrations/nrsqlite3 v1.2.0 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/v3/integrations/nrsecurityagent/nrsecurityagent.go b/v3/integrations/nrsecurityagent/nrsecurityagent.go index bb21f6765..3dedd4c41 100644 --- a/v3/integrations/nrsecurityagent/nrsecurityagent.go +++ b/v3/integrations/nrsecurityagent/nrsecurityagent.go @@ -65,6 +65,7 @@ func InitSecurityAgent(app *newrelic.Application, opts ...ConfigOption) error { if !isValid { return fmt.Errorf("Newrelic application value cannot be read; did you call newrelic.NewApplication?") } + app.UpdateSecurityConfig(c.Security) if !appConfig.HighSecurity && isSecurityAgentEnabled() { secureAgent := securityAgent.InitSecurityAgent(c.Security, appConfig.AppName, appConfig.License, appConfig.Logger.DebugEnabled()) app.RegisterSecurityAgent(secureAgent) diff --git a/v3/newrelic/config.go b/v3/newrelic/config.go index 69f324a4e..5d79bf8fa 100644 --- a/v3/newrelic/config.go +++ b/v3/newrelic/config.go @@ -448,6 +448,8 @@ type Config struct { // This list of ignored prefixes itself is not reported outside the agent. IgnoredPrefixes []string } + // Security is used to post security configuration on UI. + Security interface{} `json:"Security,omitempty"` } // CodeLevelMetricsScope is a bit-encoded value. Each such value describes diff --git a/v3/newrelic/secure_agent.go b/v3/newrelic/secure_agent.go index c7f546a80..6c0057c10 100644 --- a/v3/newrelic/secure_agent.go +++ b/v3/newrelic/secure_agent.go @@ -46,6 +46,13 @@ func (app *Application) RegisterSecurityAgent(s securityAgent) { } } +func (app *Application) UpdateSecurityConfig(s interface{}) { + if app == nil || app.app == nil { + return + } + app.app.config.Config.Security = s +} + func getLinkedMetaData(app *app) map[string]string { runningAppData := make(map[string]string) if app != nil && app.run != nil {