apache / apache/cloudstack

Leading/trailing spaces are allowed in string fields for some API endpoints

Abierto
#12,506 7 comentarios 0 reacciones 0 asignados Ver en GitHub
component:api type:improvement
Lenguaje dominante
Java
Estrellas
3.1k
Forks
1.4k
Merge medio
6 d 19 h
PR fusionados (30 d)
32

Descripción

### problem

Currently, some API endpoints allow saving string fields with leading or trailing spaces. This behavior can lead to inconsistent data and unexpected UI/API issues.

For example, when creating or updating certain resources (e.g. volumes, templates, ISOs), values with spaces at the beginning or end of the string are accepted and stored successfully, while they should instead be rejected with a validation error.

Here is the list of API endpoints where the issue occurs for the name and description fields:
- registerIso / updateIso
- createVolume / updateVolume / uploadVolume
- registerTemplate / updateTemplate
- updateNetwork / createNetwork / createNetworkACL / updateNetworkACLList
- createVPC / updateVPC
- createVpnCustomerGateway / createVpnGateway / createVpnCustomerGateway

Please also check other endpoints where this issue might occur, as similar validation problems may exist elsewhere.

### versions

CloudStack 4.20.2.0

### The steps to reproduce the bug

1. Call one of the affected endpoints (for example: ISO creation or update).
2. Provide string fields with leading or trailing spaces.
3. Observe that the request is accepted and the data is stored.

```
{
"listisosresponse": {
"count": 1,
"iso": [
{
"id": "fee7a4be-b9cd-41d9-81c9-e948332e605b",
"name": " test name ",
"displaytext": " text ",
"isready": true,
"url": "my_url",
....
}
]
}
}
```

### What to do about it?

The API should not allow leading or trailing spaces in string fields. It would be preferable to introduce this validation globally for all string fields across the API

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza rastreando la validación de los puntos de entrada de API indicados, usando registerIso o updateIso para reproducir la aceptación de espacios iniciales y finales. Comprueba los demás endpoints nombrados de volumen, plantilla, red, VPC y VPN para detectar el mismo comportamiento; se considera terminado cuando los campos de tipo string afectados rechacen esos valores con un error de validación, incluidos los endpoints adicionales que se encuentren.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
api, backend, cloud
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.