Je suis en train de faire quelques essais de remoting et amfphp (avec
asguard.net.remoting) et j'ai quelques questions:
- Comment passer un Array() avec la methode [params] de RemotingService
? Qu'en je lui passe, il concatène tout. En vérifiant directement dans
la classe, tout s'explique mais je ne vois pas de moyen d'empêcher cela.
- Je développe une application qui devra pouvoir être "embarquée" (comme
les player de Youtube), comment sécuriser l'accès à AMFphp et à mes
requêtes ? Cryptage ? ?
Merci d'avance pour vos conseils,
thomas
Dans l'exemple "remoting01.fla" tu fais:
*service.params = [ "world" + cpt++ ]*
Du coup sans trop faire gaffe, j'ai passé plusieurs objets comme ça:
*service.params [ [] + [] ]*
Donc:
*service.params[ Array ] //va très bien.
**service.params[ Array , Array2 ] //va aussi très bien.*
*
*
Une fois de plus, l'erreur venait de moi. Pouark, le boulet ! Pourtant
cette fois, j'avais attendu le matin pour écrire ;-)
Cependant, une petite question, si tu choisis de passer des objets
génériques, est-ce uniquement une question de lisibilité de code ?
Merci de ta réponse et pour les liens pour la sécurisation. Super !
ekameleon a écrit :
> Hello :)
>
> Montre moi un peu de code pour voir ce que tu fais (juste l'essentiel)
>
> En principe pour passer un Array suffit de faire :
>
> service.params = [ ] ;
>
> service.run() ;
>
> En effet si tu passes directement le Array. En effet la propriétés
> params est un Array des paramètres donc faut faire gaffe si tu envois
> un Array.
>
> Sinon tu peux aussi juste taper :
>
> service.run( [ 2, 3, 4 ] ) ;
>
> Mais si tu fais bien ce que je dis au dessus je ferais des tests.
>
> Dans tous les cas pour des envois vers un serveur je préfère pour ma
> part envoyer des objets génériques qui sont donc transformés en PHP en
> Array indexé.
>
> Si tu continues à avoir un soucis avec ton Array montre moi ton code
> et je verrais si je dois fixer mon code ou pas ? :)
>
> Pour sécuriser AMFPHP :
>
> 1 - utilise les authentifications de AMFPHP avec les credentials :
>
> http://code.google.com/p/as-gard/source/browse/trunk/AS3/trunk/examples/asgard/net/remoting/trunk/examples/ExampleRemoting03.as
>
> Avec dans ton PHP :
>
> http://code.google.com/p/as-gard/source/browse/trunk/AS3/trunk/examples/asgard/net/remoting/trunk/deploy/php/services/TestAuthentificate.php
>
> 2 - utilise du cryptage oui avec TEA, XTEA , SHA1 etc...
>
> EKA+ :)
>
>
> Le 8 juin 2009 09:34, thomas <ths....@gmail.com
> <mailto:ths....@gmail.com>> a écrit :
Observez, Partagez,
Réagissez sur www.InfosLibres.fr
RSS : S'abonner au flux RSS http://www.infoslibres.fr/feed/
Newsletter : Recevoir les articles par email http://www.infoslibres.fr/phpmynewsletter/index.php
Du coup, j'en profite pour dire (ça pourrait servir à d'autres
débutants) que l'utilisation d'un framework est super même pour un
débutant, on apprend beaucoup de choses qui ne figureraient pas dans des
codes dédiés. Je regrette pas !
bonne journée !
ekameleon a écrit :
> Hello :)
>
> @Thomas
>
> Oui pour le moment en Ruby tu peux utiliser l'opérateur + pour
> concaténer les Array (super) mais en AS3 c'est pas encore possible,
> j'espère qu'en AS4 on aura la possibilité de définir les opérateurs
> comme c'était prévu en ES4 avant le grand chambardement de l'ES5 aka
> ES3.1 de Microsoft.. :(
>
> Sinon pour le coup de l'objet générique... je vais un peu plus loin
> que cela ;)
>
> En fait dans mon application souvent j'ai des value objects (simple
> classe pour gérer les données que l'on veut transférer entre un client
> et un serveur), exemple :
>
> package
> {
> public class UserVO
> {
> public function UserVO( name:String )
> {
> this.name <http://this.name> = name ;
> }
> public var name:String ;
> }
> }
>
> Donc pour le class mapping entre server et client c'est le top avec un
> registerClassByAlias, sinon dans l'autre sens client vers serveur
> AMFPHP fonctionne pas bien en class mapping du coup dans tous mes
> values object j'ajoute une méthode toObject() qui renvoi une version
> "objet générique" de mon objet :
>
> package
> {
> public class UserVO
> {
> public function UserVO( name:String )
> {
> this.name <http://this.name> = name ;
> }
> public var name:String ;
>
> public function toObject()
> {
> return { name : name } ;
> }
> }
> }
>
> Du coup dans mes services je lance la méthode avec un paramètre typé
> et son toObject():
>
> service.run( user.toObject() ) ;
>
> du coup je peux sécuriser ce que j'envois vers le serveur dans la
> méthode toObject() et il est beaucoup plus simple du coup de tester
> (unit test) ce que j'envois vers le serveur.
>
> A noter avec VEGAS et eden qu'il est pratique d'utiliser eden pour
> voir le contenu de ce que l'on envoi vers le serveur en tapant :
>
> trace( eden.serialize( user.toObject() ) ;
>
> EKA+ :)
>
> Le 8 juin 2009 10:22, thomas <ths....@gmail.com
> <mailto:ths....@gmail.com>> a écrit :
> <mailto:ths....@gmail.com> <mailto:ths....@gmail.com