From 48fc419b7f2567110dcb9ffb55dc5a4515f3cdad Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Sun, 31 Jan 2021 12:42:59 -0500 Subject: [PATCH 1/7] Return 400 instead of 401 for Authentication header issues --- .../Controllers/ApiController.cs | 3 --- tests/Tgstation.Server.Tests/RawRequestTests.cs | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Tgstation.Server.Host/Controllers/ApiController.cs b/src/Tgstation.Server.Host/Controllers/ApiController.cs index 0c37a75142..beaae1e95d 100644 --- a/src/Tgstation.Server.Host/Controllers/ApiController.cs +++ b/src/Tgstation.Server.Host/Controllers/ApiController.cs @@ -182,9 +182,6 @@ namespace Tgstation.Server.Host.Controllers if (headersException.MissingOrMalformedHeaders.HasFlag(HeaderTypes.Accept)) return StatusCode(HttpStatusCode.NotAcceptable, errorMessage); - if (headersException.MissingOrMalformedHeaders == HeaderTypes.Authorization) - return Unauthorized(errorMessage); - return BadRequest(errorMessage); } diff --git a/tests/Tgstation.Server.Tests/RawRequestTests.cs b/tests/Tgstation.Server.Tests/RawRequestTests.cs index df9bad0018..a9e308e73b 100644 --- a/tests/Tgstation.Server.Tests/RawRequestTests.cs +++ b/tests/Tgstation.Server.Tests/RawRequestTests.cs @@ -136,6 +136,20 @@ namespace Tgstation.Server.Tests Assert.AreEqual(ErrorCode.InstanceHeaderRequired, message.ErrorCode); } + using (var request = new HttpRequestMessage(HttpMethod.Get, url.ToString())) + { + request.Headers.Accept.Clear(); + request.Headers.UserAgent.Add(new ProductInfoHeaderValue("RootTest", "1.0.0")); + request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(MediaTypeNames.Application.Json)); + request.Headers.Add(ApiHeaders.ApiVersionHeader, "Tgstation.Server.Api/" + ApiHeaders.Version); + request.Headers.Authorization = new AuthenticationHeaderValue(ApiHeaders.BearerAuthenticationScheme.ToLower(), token); + using var response = await httpClient.SendAsync(request, cancellationToken); + Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); + var content = await response.Content.ReadAsStringAsync(); + var message = JsonConvert.DeserializeObject(content); + Assert.AreEqual(ErrorCode.BadHeaders, message.ErrorCode); + } + using (var request = new HttpRequestMessage(HttpMethod.Post, url.ToString())) { request.Headers.Accept.Clear(); From 7c5a0f7cb2e0cef2d59620f8e9c26b6d0a86b088 Mon Sep 17 00:00:00 2001 From: alexkar598 <25136265+alexkar598@users.noreply.github.com> Date: Sun, 31 Jan 2021 13:01:38 -0500 Subject: [PATCH 3/7] Update ControlPanelVersion.props --- build/ControlPanelVersion.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ControlPanelVersion.props b/build/ControlPanelVersion.props index f13fb24260..dc9dc3ae40 100644 --- a/build/ControlPanelVersion.props +++ b/build/ControlPanelVersion.props @@ -1,6 +1,6 @@ - 2.1.3 + 2.1.4 From 5b86f1a4442ae289aeed8eb066c08938410fceb5 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Sun, 31 Jan 2021 13:02:24 -0500 Subject: [PATCH 4/7] Fix V3 DMAPI build error [DMDeploy][TGSDeploy] --- build/Version.props | 2 +- src/DMAPI/tgs.dm | 2 +- src/DMAPI/tgs/v3210/api.dm | 2 +- tests/DMAPI/BasicOperation/Config.dm | 1 + tests/DMAPI/BasicOperation/Test.dm | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/build/Version.props b/build/Version.props index f8cbd5f8fc..4448449308 100644 --- a/build/Version.props +++ b/build/Version.props @@ -7,7 +7,7 @@ 3.0.0 8.3.0 9.2.0 - 6.0.1 + 6.0.2 5.3.0 1.1.1 1.2.0 diff --git a/src/DMAPI/tgs.dm b/src/DMAPI/tgs.dm index de9533dc32..a379073193 100644 --- a/src/DMAPI/tgs.dm +++ b/src/DMAPI/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "6.0.1" +#define TGS_DMAPI_VERSION "6.0.2" // All functions and datums outside this document are subject to change with any version and should not be relied on. diff --git a/src/DMAPI/tgs/v3210/api.dm b/src/DMAPI/tgs/v3210/api.dm index 5b41e6a89d..245381b93e 100644 --- a/src/DMAPI/tgs/v3210/api.dm +++ b/src/DMAPI/tgs/v3210/api.dm @@ -160,7 +160,7 @@ var/datum/tgs_revision_information/test_merge/tm = new tm.number = text2num(I) var/list/entry = json[I] - tm.pull_request_commit = entry["commit"] + tm.head_commit = entry["commit"] tm.author = entry["author"] tm.title = entry["title"] . += tm diff --git a/tests/DMAPI/BasicOperation/Config.dm b/tests/DMAPI/BasicOperation/Config.dm index 1fff7f2a61..3cd3f332de 100644 --- a/tests/DMAPI/BasicOperation/Config.dm +++ b/tests/DMAPI/BasicOperation/Config.dm @@ -9,3 +9,4 @@ #define TGS_ERROR_LOG(message) world.log << "Err: [##message]" #define TGS_NOTIFY_ADMINS(event) #define TGS_CLIENT_COUNT 0 +#define TGS_V3_API diff --git a/tests/DMAPI/BasicOperation/Test.dm b/tests/DMAPI/BasicOperation/Test.dm index 23dbc6295c..d0119e52fc 100644 --- a/tests/DMAPI/BasicOperation/Test.dm +++ b/tests/DMAPI/BasicOperation/Test.dm @@ -17,7 +17,7 @@ var/list/world_params = params2list(world.params) if(!("test" in world_params) || world_params["test"] != "bababooey") text2file("Expected parameter test=bababooey but did not receive", "test_fail_reason.txt") - + world.log << "sleep2" sleep(150) world.log << "Terminating..." From 0c1b1ba2ba48bd785a2a8d4120e9600f15a0092e Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Sun, 31 Jan 2021 13:30:02 -0500 Subject: [PATCH 5/7] Remove stray space [TGSDeploy][DMDeploy] --- src/DMAPI/tgs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DMAPI/tgs.dm b/src/DMAPI/tgs.dm index a379073193..f89c696020 100644 --- a/src/DMAPI/tgs.dm +++ b/src/DMAPI/tgs.dm @@ -101,7 +101,7 @@ // #define TGS_EVENT_WORLD_END_PROCESS 19 // #define TGS_EVENT_WORLD_REBOOT 20 /// Watchdog event when TgsInitializationComplete() is called. No parameters. - #define TGS_EVENT_WORLD_PRIME 21 +#define TGS_EVENT_WORLD_PRIME 21 // OTHER ENUMS From 6432f97a6614bf8aa9fe2a787a31590a396eb7fe Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Sun, 31 Jan 2021 13:44:07 -0500 Subject: [PATCH 6/7] Fix bad test asserts [TGSDeploy][DMDeploy] --- tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs b/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs index 5cd9871d7b..753ed4085c 100644 --- a/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs +++ b/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs @@ -143,7 +143,7 @@ namespace Tgstation.Server.Tests.Instance Assert.IsNotNull(newerCompileJob); Assert.AreNotEqual(initialCompileJob.Id, newerCompileJob.Id); - Assert.AreEqual(DreamDaemonSecurity.Safe, newerCompileJob.MinimumSecurityLevel); + Assert.AreEqual(DreamDaemonSecurity.Trusted, newerCompileJob.MinimumSecurityLevel); Assert.AreEqual(DMApiConstants.InteropVersion, daemonStatus.StagedCompileJob.DMApiVersion); await instanceClient.DreamDaemon.Shutdown(cancellationToken); } @@ -163,7 +163,7 @@ namespace Tgstation.Server.Tests.Instance Assert.IsNotNull(daemonStatus.ActiveCompileJob); Assert.IsNull(daemonStatus.StagedCompileJob); Assert.AreEqual(DMApiConstants.InteropVersion, daemonStatus.ActiveCompileJob.DMApiVersion); - Assert.AreEqual(DreamDaemonSecurity.Safe, daemonStatus.ActiveCompileJob.MinimumSecurityLevel); + Assert.AreEqual(DreamDaemonSecurity.Trusted, daemonStatus.ActiveCompileJob.MinimumSecurityLevel); Job startJob; if (new PlatformIdentifier().IsWindows) // Can't get address reuse to trigger on linux for some reason From 8b94b4dcceb80bb64954db79936aeddef0bdc9bf Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Sun, 31 Jan 2021 15:26:12 -0500 Subject: [PATCH 7/7] Fix bad security level setting [TGSDeploy][DMDeploy] --- tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs b/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs index 753ed4085c..80b88a3bde 100644 --- a/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs +++ b/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs @@ -157,7 +157,7 @@ namespace Tgstation.Server.Tests.Instance AdditionalParameters = "test=bababooey" }, cancellationToken); Assert.AreEqual("test=bababooey", daemonStatus.AdditionalParameters); - daemonStatus = await DeployTestDme("BasicOperation/basic_operation_test", DreamDaemonSecurity.Ultrasafe, true, cancellationToken); + daemonStatus = await DeployTestDme("BasicOperation/basic_operation_test", DreamDaemonSecurity.Trusted, true, cancellationToken); Assert.AreEqual(WatchdogStatus.Offline, daemonStatus.Status.Value); Assert.IsNotNull(daemonStatus.ActiveCompileJob);