Skip to content

Commit 4d9988e

Browse files
committed
AC-465: Allow to configure input limit for RESTful endpoints
1 parent d2c897b commit 4d9988e

File tree

8 files changed

+123
-123
lines changed

8 files changed

+123
-123
lines changed

app/code/Magento/Webapi/Controller/Soap/Request/Handler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
*/
3333
class Handler
3434
{
35-
const RESULT_NODE_NAME = 'result';
35+
public const RESULT_NODE_NAME = 'result';
3636

3737
/**
3838
* @var \Magento\Framework\Webapi\Request

app/code/Magento/Webapi/Model/Config/Converter.php

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,23 @@ class Converter implements \Magento\Framework\Config\ConverterInterface
1616
/**#@+
1717
* Array keys for config internal representation.
1818
*/
19-
const KEY_SERVICE_CLASS = 'class';
20-
const KEY_URL = 'url';
21-
const KEY_SERVICE_METHOD = 'method';
22-
const KEY_SECURE = 'secure';
23-
const KEY_ROUTES = 'routes';
24-
const KEY_ACL_RESOURCES = 'resources';
25-
const KEY_SERVICE = 'service';
26-
const KEY_SERVICES = 'services';
27-
const KEY_FORCE = 'force';
28-
const KEY_VALUE = 'value';
29-
const KEY_DATA_PARAMETERS = 'parameters';
30-
const KEY_SOURCE = 'source';
31-
const KEY_METHOD = 'method';
32-
const KEY_METHODS = 'methods';
33-
const KEY_DESCRIPTION = 'description';
34-
const KEY_REAL_SERVICE_METHOD = 'realMethod';
35-
const KEY_INPUT_ARRAY_SIZE_LIMIT = 'input-array-size-limit';
19+
public const KEY_SERVICE_CLASS = 'class';
20+
public const KEY_URL = 'url';
21+
public const KEY_SERVICE_METHOD = 'method';
22+
public const KEY_SECURE = 'secure';
23+
public const KEY_ROUTES = 'routes';
24+
public const KEY_ACL_RESOURCES = 'resources';
25+
public const KEY_SERVICE = 'service';
26+
public const KEY_SERVICES = 'services';
27+
public const KEY_FORCE = 'force';
28+
public const KEY_VALUE = 'value';
29+
public const KEY_DATA_PARAMETERS = 'parameters';
30+
public const KEY_SOURCE = 'source';
31+
public const KEY_METHOD = 'method';
32+
public const KEY_METHODS = 'methods';
33+
public const KEY_DESCRIPTION = 'description';
34+
public const KEY_REAL_SERVICE_METHOD = 'realMethod';
35+
public const KEY_INPUT_ARRAY_SIZE_LIMIT = 'input-array-size-limit';
3636
/**#@-*/
3737

3838
/**

app/code/Magento/Webapi/Model/Rest/Config.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,23 @@ class Config
2020
/**#@+
2121
* HTTP methods supported by REST.
2222
*/
23-
const HTTP_METHOD_GET = 'GET';
24-
const HTTP_METHOD_DELETE = 'DELETE';
25-
const HTTP_METHOD_PUT = 'PUT';
26-
const HTTP_METHOD_POST = 'POST';
27-
const HTTP_METHOD_PATCH = 'PATCH';
23+
public const HTTP_METHOD_GET = 'GET';
24+
public const HTTP_METHOD_DELETE = 'DELETE';
25+
public const HTTP_METHOD_PUT = 'PUT';
26+
public const HTTP_METHOD_POST = 'POST';
27+
public const HTTP_METHOD_PATCH = 'PATCH';
2828
/**#@-*/
2929

3030
/**#@+
3131
* Keys that a used for config internal representation.
3232
*/
33-
const KEY_IS_SECURE = 'isSecure';
34-
const KEY_CLASS = 'class';
35-
const KEY_METHOD = 'method';
36-
const KEY_ROUTE_PATH = 'routePath';
37-
const KEY_ACL_RESOURCES = 'resources';
38-
const KEY_PARAMETERS = 'parameters';
39-
const KEY_INPUT_ARRAY_SIZE_LIMIT = 'input-array-size-limit';
33+
public const KEY_IS_SECURE = 'isSecure';
34+
public const KEY_CLASS = 'class';
35+
public const KEY_METHOD = 'method';
36+
public const KEY_ROUTE_PATH = 'routePath';
37+
public const KEY_ACL_RESOURCES = 'resources';
38+
public const KEY_PARAMETERS = 'parameters';
39+
public const KEY_INPUT_ARRAY_SIZE_LIMIT = 'input-array-size-limit';
4040
/*#@-*/
4141

4242
/**

app/code/Magento/Webapi/Model/ServiceMetadata.php

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,33 +21,33 @@ class ServiceMetadata
2121
/**#@+
2222
* Keys that a used for service config internal representation.
2323
*/
24-
const KEY_CLASS = 'class';
24+
public const KEY_CLASS = 'class';
2525

26-
const KEY_IS_SECURE = 'isSecure';
26+
public const KEY_IS_SECURE = 'isSecure';
2727

28-
const KEY_SERVICE_METHODS = 'methods';
28+
public const KEY_SERVICE_METHODS = 'methods';
2929

30-
const KEY_METHOD = 'method';
30+
public const KEY_METHOD = 'method';
3131

32-
const KEY_IS_REQUIRED = 'inputRequired';
32+
public const KEY_IS_REQUIRED = 'inputRequired';
3333

34-
const KEY_ACL_RESOURCES = 'resources';
34+
public const KEY_ACL_RESOURCES = 'resources';
3535

36-
const KEY_ROUTES = 'routes';
36+
public const KEY_ROUTES = 'routes';
3737

38-
const KEY_ROUTE_METHOD = 'method';
38+
public const KEY_ROUTE_METHOD = 'method';
3939

40-
const KEY_ROUTE_PARAMS = 'parameters';
40+
public const KEY_ROUTE_PARAMS = 'parameters';
4141

42-
const KEY_METHOD_ALIAS = 'methodAlias';
42+
public const KEY_METHOD_ALIAS = 'methodAlias';
4343

44-
const KEY_INPUT_ARRAY_SIZE_LIMIT = 'input-array-size-limit';
44+
public const KEY_INPUT_ARRAY_SIZE_LIMIT = 'input-array-size-limit';
4545

46-
const SERVICES_CONFIG_CACHE_ID = 'services-services-config';
46+
public const SERVICES_CONFIG_CACHE_ID = 'services-services-config';
4747

48-
const ROUTES_CONFIG_CACHE_ID = 'routes-services-config';
48+
public const ROUTES_CONFIG_CACHE_ID = 'routes-services-config';
4949

50-
const REFLECTED_TYPES_CACHE_ID = 'soap-reflected-types';
50+
public const REFLECTED_TYPES_CACHE_ID = 'soap-reflected-types';
5151

5252
/**#@-*/
5353

app/code/Magento/WebapiAsync/Model/ServiceConfig/Converter.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ class Converter implements \Magento\Framework\Config\ConverterInterface
1616
/**#@+
1717
* Array keys for config internal representation.
1818
*/
19-
const KEY_SERVICES = 'services';
20-
const KEY_METHOD = 'method';
21-
const KEY_METHODS = 'methods';
22-
const KEY_SYNCHRONOUS_INVOCATION_ONLY = 'synchronousInvocationOnly';
23-
const KEY_ROUTES = 'routes';
24-
const KEY_INPUT_ARRAY_SIZE_LIMIT = 'input-array-size-limit';
19+
public const KEY_SERVICES = 'services';
20+
public const KEY_METHOD = 'method';
21+
public const KEY_METHODS = 'methods';
22+
public const KEY_SYNCHRONOUS_INVOCATION_ONLY = 'synchronousInvocationOnly';
23+
public const KEY_ROUTES = 'routes';
24+
public const KEY_INPUT_ARRAY_SIZE_LIMIT = 'input-array-size-limit';
2525
/**#@-*/
2626

2727
/**

lib/internal/Magento/Framework/Config/ConfigOptionsListConstants.php

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -18,151 +18,151 @@ class ConfigOptionsListConstants
1818
/**#@+
1919
* Path to the values in the deployment config
2020
*/
21-
const CONFIG_PATH_INSTALL_DATE = 'install/date';
22-
const CONFIG_PATH_CRYPT_KEY = 'crypt/key';
23-
const CONFIG_PATH_SESSION_SAVE = 'session/save';
24-
const CONFIG_PATH_RESOURCE_DEFAULT_SETUP = 'resource/default_setup/connection';
25-
const CONFIG_PATH_DB_CONNECTION_DEFAULT_DRIVER_OPTIONS = 'db/connection/default/driver_options';
26-
const CONFIG_PATH_DB_CONNECTION_DEFAULT = 'db/connection/default';
27-
const CONFIG_PATH_DB_CONNECTIONS = 'db/connection';
28-
const CONFIG_PATH_DB_PREFIX = 'db/table_prefix';
29-
const CONFIG_PATH_X_FRAME_OPT = 'x-frame-options';
30-
const CONFIG_PATH_CACHE_HOSTS = 'http_cache_hosts';
31-
const CONFIG_PATH_BACKEND = 'backend';
32-
const CONFIG_PATH_INSTALL = 'install';
33-
const CONFIG_PATH_CRYPT = 'crypt';
34-
const CONFIG_PATH_SESSION = 'session';
35-
const CONFIG_PATH_DB = 'db';
36-
const CONFIG_PATH_RESOURCE = 'resource';
37-
const CONFIG_PATH_CACHE_TYPES = 'cache_types';
38-
const CONFIG_PATH_DOCUMENT_ROOT_IS_PUB = 'directories/document_root_is_pub';
39-
const CONFIG_PATH_DB_LOGGER_OUTPUT = 'db_logger/output';
40-
const CONFIG_PATH_DB_LOGGER_LOG_EVERYTHING = 'db_logger/log_everything';
41-
const CONFIG_PATH_DB_LOGGER_QUERY_TIME_THRESHOLD = 'db_logger/query_time_threshold';
42-
const CONFIG_PATH_DB_LOGGER_INCLUDE_STACKTRACE = 'db_logger/include_stacktrace';
21+
public const CONFIG_PATH_INSTALL_DATE = 'install/date';
22+
public const CONFIG_PATH_CRYPT_KEY = 'crypt/key';
23+
public const CONFIG_PATH_SESSION_SAVE = 'session/save';
24+
public const CONFIG_PATH_RESOURCE_DEFAULT_SETUP = 'resource/default_setup/connection';
25+
public const CONFIG_PATH_DB_CONNECTION_DEFAULT_DRIVER_OPTIONS = 'db/connection/default/driver_options';
26+
public const CONFIG_PATH_DB_CONNECTION_DEFAULT = 'db/connection/default';
27+
public const CONFIG_PATH_DB_CONNECTIONS = 'db/connection';
28+
public const CONFIG_PATH_DB_PREFIX = 'db/table_prefix';
29+
public const CONFIG_PATH_X_FRAME_OPT = 'x-frame-options';
30+
public const CONFIG_PATH_CACHE_HOSTS = 'http_cache_hosts';
31+
public const CONFIG_PATH_BACKEND = 'backend';
32+
public const CONFIG_PATH_INSTALL = 'install';
33+
public const CONFIG_PATH_CRYPT = 'crypt';
34+
public const CONFIG_PATH_SESSION = 'session';
35+
public const CONFIG_PATH_DB = 'db';
36+
public const CONFIG_PATH_RESOURCE = 'resource';
37+
public const CONFIG_PATH_CACHE_TYPES = 'cache_types';
38+
public const CONFIG_PATH_DOCUMENT_ROOT_IS_PUB = 'directories/document_root_is_pub';
39+
public const CONFIG_PATH_DB_LOGGER_OUTPUT = 'db_logger/output';
40+
public const CONFIG_PATH_DB_LOGGER_LOG_EVERYTHING = 'db_logger/log_everything';
41+
public const CONFIG_PATH_DB_LOGGER_QUERY_TIME_THRESHOLD = 'db_logger/query_time_threshold';
42+
public const CONFIG_PATH_DB_LOGGER_INCLUDE_STACKTRACE = 'db_logger/include_stacktrace';
4343
/**#@-*/
4444

4545
/**
4646
* Parameter for disabling/enabling static content deployment on demand in production mode
4747
* Can contains 0/1 value
4848
*/
49-
const CONFIG_PATH_SCD_ON_DEMAND_IN_PRODUCTION = 'static_content_on_demand_in_production';
49+
public const CONFIG_PATH_SCD_ON_DEMAND_IN_PRODUCTION = 'static_content_on_demand_in_production';
5050

5151
/**
5252
* Parameter for forcing HTML minification even if file is already minified.
5353
*/
54-
const CONFIG_PATH_FORCE_HTML_MINIFICATION = 'force_html_minification';
54+
public const CONFIG_PATH_FORCE_HTML_MINIFICATION = 'force_html_minification';
5555

5656
/**
5757
* Default limiting input array size for synchronous Web API
5858
*/
59-
const CONFIG_PATH_WEBAPI_SYNC_DEFAULT_INPUT_ARRAY_SIZE_LIMIT = 'webapi/sync/default_input_array_size_limit';
59+
public const CONFIG_PATH_WEBAPI_SYNC_DEFAULT_INPUT_ARRAY_SIZE_LIMIT = 'webapi/sync/default_input_array_size_limit';
6060

6161
/**
6262
* Default limiting input array size for asynchronous Web API
6363
*/
64-
const CONFIG_PATH_WEBAPI_ASYNC_DEFAULT_INPUT_ARRAY_SIZE_LIMIT = 'webapi/async/default_input_array_size_limit';
64+
public const CONFIG_PATH_WEBAPI_ASYNC_DEFAULT_INPUT_ARRAY_SIZE_LIMIT = 'webapi/async/default_input_array_size_limit';
6565

6666
/**#@+
6767
* Input keys for the options
6868
*/
69-
const INPUT_KEY_ENCRYPTION_KEY = 'key';
70-
const INPUT_KEY_SESSION_SAVE = 'session-save';
71-
const INPUT_KEY_DB_HOST = 'db-host';
72-
const INPUT_KEY_DB_NAME = 'db-name';
73-
const INPUT_KEY_DB_USER = 'db-user';
74-
const INPUT_KEY_DB_PASSWORD = 'db-password';
75-
const INPUT_KEY_DB_PREFIX = 'db-prefix';
76-
const INPUT_KEY_DB_MODEL = 'db-model';
77-
const INPUT_KEY_DB_INIT_STATEMENTS = 'db-init-statements';
78-
const INPUT_KEY_DB_ENGINE = 'db-engine';
79-
const INPUT_KEY_DB_SSL_KEY = 'db-ssl-key';
80-
const INPUT_KEY_DB_SSL_CERT = 'db-ssl-cert';
81-
const INPUT_KEY_DB_SSL_CA = 'db-ssl-ca';
82-
const INPUT_KEY_DB_SSL_VERIFY = 'db-ssl-verify';
83-
const INPUT_KEY_RESOURCE = 'resource';
84-
const INPUT_KEY_SKIP_DB_VALIDATION = 'skip-db-validation';
85-
const INPUT_KEY_CACHE_HOSTS = 'http-cache-hosts';
69+
public const INPUT_KEY_ENCRYPTION_KEY = 'key';
70+
public const INPUT_KEY_SESSION_SAVE = 'session-save';
71+
public const INPUT_KEY_DB_HOST = 'db-host';
72+
public const INPUT_KEY_DB_NAME = 'db-name';
73+
public const INPUT_KEY_DB_USER = 'db-user';
74+
public const INPUT_KEY_DB_PASSWORD = 'db-password';
75+
public const INPUT_KEY_DB_PREFIX = 'db-prefix';
76+
public const INPUT_KEY_DB_MODEL = 'db-model';
77+
public const INPUT_KEY_DB_INIT_STATEMENTS = 'db-init-statements';
78+
public const INPUT_KEY_DB_ENGINE = 'db-engine';
79+
public const INPUT_KEY_DB_SSL_KEY = 'db-ssl-key';
80+
public const INPUT_KEY_DB_SSL_CERT = 'db-ssl-cert';
81+
public const INPUT_KEY_DB_SSL_CA = 'db-ssl-ca';
82+
public const INPUT_KEY_DB_SSL_VERIFY = 'db-ssl-verify';
83+
public const INPUT_KEY_RESOURCE = 'resource';
84+
public const INPUT_KEY_SKIP_DB_VALIDATION = 'skip-db-validation';
85+
public const INPUT_KEY_CACHE_HOSTS = 'http-cache-hosts';
8686
/**#@-*/
8787

8888
/**#@+
8989
* Input keys for cache configuration
9090
*/
91-
const KEY_CACHE_FRONTEND = 'cache/frontend';
92-
const CONFIG_PATH_BACKEND_OPTIONS = 'backend_options';
91+
public const KEY_CACHE_FRONTEND = 'cache/frontend';
92+
public const CONFIG_PATH_BACKEND_OPTIONS = 'backend_options';
9393

9494
/**
9595
* Definition format constant.
9696
*/
97-
const INPUT_KEY_DEFINITION_FORMAT = 'definition-format';
97+
public const INPUT_KEY_DEFINITION_FORMAT = 'definition-format';
9898

9999
/**#@+
100100
* Values for session-save
101101
*/
102-
const SESSION_SAVE_FILES = 'files';
103-
const SESSION_SAVE_DB = 'db';
104-
const SESSION_SAVE_REDIS = 'redis';
102+
public const SESSION_SAVE_FILES = 'files';
103+
public const SESSION_SAVE_DB = 'db';
104+
public const SESSION_SAVE_REDIS = 'redis';
105105
/**#@-*/
106106

107107
/**
108108
* Array Key for session save method
109109
*/
110-
const KEY_SAVE = 'save';
110+
public const KEY_SAVE = 'save';
111111

112112
/**#@+
113113
* Array keys for Database configuration
114114
*/
115-
const KEY_HOST = 'host';
116-
const KEY_PORT = 'port';
117-
const KEY_NAME = 'dbname';
118-
const KEY_USER = 'username';
119-
const KEY_PASSWORD = 'password';
120-
const KEY_ENGINE = 'engine';
121-
const KEY_PREFIX = 'table_prefix';
122-
const KEY_MODEL = 'model';
123-
const KEY_INIT_STATEMENTS = 'initStatements';
124-
const KEY_ACTIVE = 'active';
125-
const KEY_DRIVER_OPTIONS = 'driver_options';
115+
public const KEY_HOST = 'host';
116+
public const KEY_PORT = 'port';
117+
public const KEY_NAME = 'dbname';
118+
public const KEY_USER = 'username';
119+
public const KEY_PASSWORD = 'password';
120+
public const KEY_ENGINE = 'engine';
121+
public const KEY_PREFIX = 'table_prefix';
122+
public const KEY_MODEL = 'model';
123+
public const KEY_INIT_STATEMENTS = 'initStatements';
124+
public const KEY_ACTIVE = 'active';
125+
public const KEY_DRIVER_OPTIONS = 'driver_options';
126126
/**#@-*/
127127

128128
/**#@+
129129
* Array keys for database driver options configurations
130130
*/
131-
const KEY_MYSQL_SSL_KEY = \PDO::MYSQL_ATTR_SSL_KEY;
132-
const KEY_MYSQL_SSL_CERT = \PDO::MYSQL_ATTR_SSL_CERT;
133-
const KEY_MYSQL_SSL_CA = \PDO::MYSQL_ATTR_SSL_CA;
131+
public const KEY_MYSQL_SSL_KEY = \PDO::MYSQL_ATTR_SSL_KEY;
132+
public const KEY_MYSQL_SSL_CERT = \PDO::MYSQL_ATTR_SSL_CERT;
133+
public const KEY_MYSQL_SSL_CA = \PDO::MYSQL_ATTR_SSL_CA;
134134

135135
/**
136136
* Constant \PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT cannot be used as it was introduced in PHP 7.1.4
137137
* and Magento 2 is currently supporting PHP 7.1.3.
138138
*/
139-
const KEY_MYSQL_SSL_VERIFY = 1014;
139+
public const KEY_MYSQL_SSL_VERIFY = 1014;
140140
/**#@-*/
141141

142142
/**
143143
* Db config key
144144
*/
145-
const KEY_DB = 'db';
145+
public const KEY_DB = 'db';
146146

147147
/**
148148
* Array Key for encryption key in deployment config file
149149
*/
150-
const KEY_ENCRYPTION_KEY = 'key';
150+
public const KEY_ENCRYPTION_KEY = 'key';
151151

152152
/**
153153
* Resource config key
154154
*/
155-
const KEY_RESOURCE = 'resource';
155+
public const KEY_RESOURCE = 'resource';
156156

157157
/**
158158
* Key for modules
159159
*/
160-
const KEY_MODULES = 'modules';
160+
public const KEY_MODULES = 'modules';
161161

162162
/**
163163
* Size of random string generated for store's encryption key
164164
* phpcs:disable
165165
*/
166-
const STORE_KEY_RANDOM_STRING_SIZE = SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES;
166+
public const STORE_KEY_RANDOM_STRING_SIZE = SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES;
167167
//phpcs:enable
168168
}

lib/internal/Magento/Framework/Webapi/ServiceInputProcessor.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
*/
3737
class ServiceInputProcessor implements ServicePayloadConverterInterface
3838
{
39-
const EXTENSION_ATTRIBUTES_TYPE = \Magento\Framework\Api\ExtensionAttributesInterface::class;
39+
public const EXTENSION_ATTRIBUTES_TYPE = \Magento\Framework\Api\ExtensionAttributesInterface::class;
4040

4141
/**
4242
* @var \Magento\Framework\Reflection\TypeProcessor

lib/internal/Magento/Framework/Webapi/Test/Unit/ServiceInputProcessor/TestService.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
class TestService
1313
{
14-
const DEFAULT_VALUE = 42;
15-
const CUSTOM_ATTRIBUTE_CODE = 'customAttr';
14+
public const DEFAULT_VALUE = 42;
15+
public const CUSTOM_ATTRIBUTE_CODE = 'customAttr';
1616

1717
/**
1818
* @param int $entityId

0 commit comments

Comments
 (0)