@@ -40,7 +40,7 @@ const (
40
40
// Default endpoint to handle HTTP errors
41
41
errorPath string = "/error"
42
42
// Service configuration file
43
- configurationFile string = "config/admin .json"
43
+ configurationFile string = "config/" + settings . ServiceAdmin + " .json"
44
44
// osquery version to display tables
45
45
osqueryTablesVersion string = "3.3.2"
46
46
// JSON file with osquery tables data
@@ -70,38 +70,42 @@ var (
70
70
osqueryTables []OsqueryTable
71
71
)
72
72
73
- // Function to load the configuration file and assign to variables
74
- func loadConfiguration () error {
75
- log .Printf ("Loading %s" , configurationFile )
73
+ // Function to load the configuration file
74
+ func loadConfiguration (file , service string ) (types.JSONConfigurationService , error ) {
75
+ var cfg types.JSONConfigurationService
76
+ log .Printf ("Loading %s" , file )
76
77
// Load file and read config
77
- viper .SetConfigFile (configurationFile )
78
+ viper .SetConfigFile (file )
78
79
err := viper .ReadInConfig ()
79
80
if err != nil {
80
- return err
81
+ return cfg , err
81
82
}
82
83
// TLS Admin values
83
- adminRaw := viper .Sub ("admin" )
84
- err = adminRaw .Unmarshal (& adminConfig )
84
+ adminRaw := viper .Sub (service )
85
+ err = adminRaw .Unmarshal (& cfg )
85
86
if err != nil {
86
- return err
87
+ return cfg , err
87
88
}
88
89
// Load configuration for the auth method
89
- if adminConfig .Auth == settings .AuthSAML {
90
- samlRaw := viper .Sub (settings .AuthSAML )
91
- err = samlRaw .Unmarshal (& samlConfig )
92
- if err != nil {
93
- return err
90
+ /*
91
+ if adminConfig.Auth == settings.AuthSAML {
92
+ samlRaw := viper.Sub(settings.AuthSAML)
93
+ err = samlRaw.Unmarshal(&samlConfig)
94
+ if err != nil {
95
+ return cfg, err
96
+ }
94
97
}
95
- }
98
+ */
96
99
// No errors!
97
- return nil
100
+ return cfg , nil
98
101
}
99
102
100
103
// Function to load the JSON data for osquery tables
101
- func loadOsqueryTables () error {
102
- jsonFile , err := os .Open (osqueryTablesFile )
104
+ func loadOsqueryTables (file string ) ([]OsqueryTable , error ) {
105
+ var tables []OsqueryTable
106
+ jsonFile , err := os .Open (file )
103
107
if err != nil {
104
- return err
108
+ return tables , err
105
109
}
106
110
//defer jsonFile.Close()
107
111
defer func () {
@@ -111,31 +115,34 @@ func loadOsqueryTables() error {
111
115
}
112
116
}()
113
117
byteValue , _ := ioutil .ReadAll (jsonFile )
114
- err = json .Unmarshal (byteValue , & osqueryTables )
118
+ err = json .Unmarshal (byteValue , & tables )
115
119
if err != nil {
116
- return err
120
+ return tables , err
117
121
}
118
122
// Add a string for platforms to be used as filter
119
- for i , t := range osqueryTables {
123
+ for i , t := range tables {
120
124
filter := ""
121
125
for _ , p := range t .Platforms {
122
126
filter += " filter-" + p
123
127
}
124
- osqueryTables [i ].Filter = strings .TrimSpace (filter )
128
+ tables [i ].Filter = strings .TrimSpace (filter )
125
129
}
126
- return nil
130
+ return tables , nil
127
131
}
128
132
129
133
// Initialization code
130
134
func init () {
135
+ var err error
131
136
// Logging flags
132
137
log .SetFlags (log .Lshortfile )
133
- // Load configuration
134
- if err := loadConfiguration (); err != nil {
135
- log .Fatalf ("Error loading configuration %s" , err )
138
+ // Load admin configuration
139
+ adminConfig , err = loadConfiguration (configurationFile , settings .ServiceAdmin )
140
+ if err != nil {
141
+ log .Fatalf ("Error loading %s - %s" , configurationFile , err )
136
142
}
137
143
// Load osquery tables JSON
138
- if err := loadOsqueryTables (); err != nil {
144
+ osqueryTables , err = loadOsqueryTables (osqueryTablesFile )
145
+ if err != nil {
139
146
log .Fatalf ("Error loading osquery tables %s" , err )
140
147
}
141
148
}
@@ -210,6 +217,10 @@ func main() {
210
217
log .Fatalf ("Failed to add %s to configuration: %v" , settings .InactiveHours , err )
211
218
}
212
219
}
220
+ // Write JSON config to settings
221
+ if err := settingsmgr .SetAllJSON (settings .ServiceAdmin , adminConfig .Listener , adminConfig .Port , adminConfig .Host , adminConfig .Auth , adminConfig .Logging ); err != nil {
222
+ log .Fatalf ("Failed to add JSON values to configuration: %v" , err )
223
+ }
213
224
// multiple listeners channel
214
225
finish := make (chan bool )
215
226
// Start SAML Middleware if we are using SAML
0 commit comments