fix(api): validate docker_compose_raw input in ApplicationsController
- Ensure docker_compose_raw is provided and base64 encoded before processing. - Return appropriate validation error messages for missing or incorrectly formatted input.
This commit is contained in:
@@ -989,7 +989,34 @@ class ApplicationsController extends Controller
|
|||||||
|
|
||||||
$dockerComposeDomainsJson = collect();
|
$dockerComposeDomainsJson = collect();
|
||||||
if ($request->has('docker_compose_domains')) {
|
if ($request->has('docker_compose_domains')) {
|
||||||
$yaml = Yaml::parse($application->docker_compose_raw);
|
if (! $request->has('docker_compose_raw')) {
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Validation failed.',
|
||||||
|
'errors' => [
|
||||||
|
'docker_compose_raw' => 'The base64 encoded docker_compose_raw is required.',
|
||||||
|
],
|
||||||
|
], 422);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! isBase64Encoded($request->docker_compose_raw)) {
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Validation failed.',
|
||||||
|
'errors' => [
|
||||||
|
'docker_compose_raw' => 'The docker_compose_raw should be base64 encoded.',
|
||||||
|
],
|
||||||
|
], 422);
|
||||||
|
}
|
||||||
|
$dockerComposeRaw = base64_decode($request->docker_compose_raw);
|
||||||
|
if (mb_detect_encoding($dockerComposeRaw, 'ASCII', true) === false) {
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Validation failed.',
|
||||||
|
'errors' => [
|
||||||
|
'docker_compose_raw' => 'The docker_compose_raw should be base64 encoded.',
|
||||||
|
],
|
||||||
|
], 422);
|
||||||
|
}
|
||||||
|
$dockerComposeRaw = base64_decode($request->docker_compose_raw);
|
||||||
|
$yaml = Yaml::parse($dockerComposeRaw);
|
||||||
$services = data_get($yaml, 'services');
|
$services = data_get($yaml, 'services');
|
||||||
$dockerComposeDomains = collect($request->docker_compose_domains);
|
$dockerComposeDomains = collect($request->docker_compose_domains);
|
||||||
if ($dockerComposeDomains->count() > 0) {
|
if ($dockerComposeDomains->count() > 0) {
|
||||||
@@ -1918,7 +1945,34 @@ class ApplicationsController extends Controller
|
|||||||
|
|
||||||
$dockerComposeDomainsJson = collect();
|
$dockerComposeDomainsJson = collect();
|
||||||
if ($request->has('docker_compose_domains')) {
|
if ($request->has('docker_compose_domains')) {
|
||||||
$yaml = Yaml::parse($application->docker_compose_raw);
|
if (! $request->has('docker_compose_raw')) {
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Validation failed.',
|
||||||
|
'errors' => [
|
||||||
|
'docker_compose_raw' => 'The base64 encoded docker_compose_raw is required.',
|
||||||
|
],
|
||||||
|
], 422);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! isBase64Encoded($request->docker_compose_raw)) {
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Validation failed.',
|
||||||
|
'errors' => [
|
||||||
|
'docker_compose_raw' => 'The docker_compose_raw should be base64 encoded.',
|
||||||
|
],
|
||||||
|
], 422);
|
||||||
|
}
|
||||||
|
$dockerComposeRaw = base64_decode($request->docker_compose_raw);
|
||||||
|
if (mb_detect_encoding($dockerComposeRaw, 'ASCII', true) === false) {
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Validation failed.',
|
||||||
|
'errors' => [
|
||||||
|
'docker_compose_raw' => 'The docker_compose_raw should be base64 encoded.',
|
||||||
|
],
|
||||||
|
], 422);
|
||||||
|
}
|
||||||
|
$dockerComposeRaw = base64_decode($request->docker_compose_raw);
|
||||||
|
$yaml = Yaml::parse($dockerComposeRaw);
|
||||||
$services = data_get($yaml, 'services');
|
$services = data_get($yaml, 'services');
|
||||||
$dockerComposeDomains = collect($request->docker_compose_domains);
|
$dockerComposeDomains = collect($request->docker_compose_domains);
|
||||||
if ($dockerComposeDomains->count() > 0) {
|
if ($dockerComposeDomains->count() > 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user