Browse Source

fix(api): validate stream key payload. Closes #3082

pull/3095/head
Gabe Kangas 2 years ago
parent
commit
9b44ff107f
No known key found for this signature in database
GPG Key ID: 4345B2060657F330
  1. 12
      controllers/admin/config.go
  2. 12
      test/automated/api/configmanagement.test.js

12
controllers/admin/config.go

@ -850,6 +850,18 @@ func SetStreamKeys(w http.ResponseWriter, r *http.Request) { @@ -850,6 +850,18 @@ func SetStreamKeys(w http.ResponseWriter, r *http.Request) {
return
}
if len(streamKeys.Value) == 0 {
controllers.WriteSimpleResponse(w, false, "must provide at least one valid stream key")
return
}
for _, streamKey := range streamKeys.Value {
if streamKey.Key == "" {
controllers.WriteSimpleResponse(w, false, "stream key cannot be empty")
return
}
}
if err := data.SetStreamKeys(streamKeys.Value); err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return

12
test/automated/api/configmanagement.test.js

@ -187,6 +187,18 @@ test('verify default admin configuration', async (done) => { @@ -187,6 +187,18 @@ test('verify default admin configuration', async (done) => {
done();
});
test('verify stream key validation', async (done) => {
const badPayload = { id: 'zz', comment: 'ouch' };
const url = '/api/admin/config/streamkeys';
const res = await request
.post(url)
.auth('admin', defaultAdminPassword)
.send(badPayload)
.expect(400);
done();
});
test('set server name', async (done) => {
const res = await sendAdminRequest('config/name', newServerName);
done();

Loading…
Cancel
Save