Symfony2 Form, PATCH requests and handleRequest: Form is never valid

From Symfony 2.3 we can use (PR #7849) PATCH requests with the Form component to submit a part of the form which will override the form default values. This is really helpful moreover using FOSRestBundle and its listeners !

With this configuration, to make a user available to PATCH its profile using REST API, you simply have to write this few lines:

But the form is never valid…

In fact, you’ll never have a valid form if you let it as it’s. The problem is that the form is never submitted by the HttpFundationRequestHandler because the current request method (PATCH) isn’t a GET or POST, which are waited by the form (see L39).

Two solutions

You’ve 2 simple solutions, use the submit method, or set the method option on the form.

facebooktwittergoogle_plusredditpinterestlinkedinmail

jCryption2: Une utilisation plus personnalisée de jCryption

Suite à la sortie de jCryption 2.0 qui ajoutes les mêmes fonctionnalités, je ne met plus à jour cette librairie.

jCryption est une petite application JavaScript utilisant jQuery à ajouter à votre site qui permet de crypter un formulaire de données à l’aide d’un système de clé publique/clé privée. Ainsi, tout ce qui circule sur le réseau est protégé! Cela peut être utile lorsque qu’il vous est impossible de mettre en place un accès HTTPS ou lorsque le client (le visiteur) ne supporte pas le HTTPS mais a le JavaScript.

Le problème, c’est que à vouloir tout faire, jCryption fait trop. En effet, en deux lignes de code, jCryption récupère les champs du formulaire, récupère les clés de cryptage, crypte les données, les compacte puis les envoi à l’attention du script décrit dans l’attribut action de la balise <form>.

C’est pourquoi j’ai décidé de créer un jCryption2, qui ne vise en aucun cas à remplacer jCryption, ou à se prétendre supérieur mais plutôt à être tout aussi accessible, ce qui permet de choisir entre la simplicité (jCryption) ou la personnalisation (jCryption2). Ainsi, jCryption permet de récupérer les clés de cryptage de n’importe quelle façon et d’envoyer les données cryptées de n’importe quelle façon: vous devez créer une instance de jCryption2Key qui décrit la clé publique et vous devez définir un callback (une fonction de retour) lorsque l’encryptage sera terminée, avec comme seul paramètre la chaine cryptée.

En tout aussi peu de lignes, nous avons un système permettant de crypter les données envoyées de manière beaucoup plus personnalisée car vous pouvez récupérer les clés d’un fichier FTP par exemple, puis envoyer la chaine cryptée vers un socket, à l’aide de jSocket par exemple !

Continue reading jCryption2: Une utilisation plus personnalisée de jCryption

facebooktwittergoogle_plusredditpinterestlinkedinmail