Actuellement, chaque service Web pour notre application a un paramètre utilisateur qui est ajouté pour chaque méthode. Par exemple:Comment spécifier un paramètre dans le cadre de chaque appel de service Web?
@WebService
public interface FooWebService {
@WebMethod
public Foo getFoo(@WebParam(name="alwaysHere",header=true,partName="alwaysHere") String user, @WebParam(name="fooId") Long fooId);
@WebMethod
public Result deletetFoo(@WebParam(name="alwaysHere",header=true,partName="alwaysHere") String user, @WebParam(name="fooId") Long fooId);
// ...
}
Il peut y avoir vingt méthodes dans un service, chacune avec le premier paramètre en tant qu'utilisateur. Et il pourrait y avoir vingt services Web. Nous n'utilisons pas vraiment l'argument 'user' dans les implémentations - en fait, je ne sais pas pourquoi c'est là - mais je n'étais pas impliqué dans le design, et la personne qui l'a mis là avait un raison (j'espère).
De toute façon, j'essaie de redresser cette grosse boule de boue.
J'ai déjà parcouru un long chemin en enveloppant les services web par un proxy Spring, ce qui me permet de faire du traitement avant-après dans un intercepteur (avant qu'il y ait au moins 20 lignes de plaque de chaudière par méthode). Je me demande s'il existe une sorte d '"en-tête de message" que je peux appliquer à la méthode ou au paquet et auquel un type de gestionnaire ou quelque chose en dehors de chaque méthode de service Web peut avoir accès.
Merci à l'avance pour les conseils, LES
Je pense qu'il est censé être utilisé pour l'authentification à l'avenir, mais actuellement, personne ne fait rien avec elle. Cela m'agace que cela ne puisse apparemment pas se faire SÉCHER. :( – les2
WS-Security avec le profil UsernameToken peut être le moyen DRY de le faire mais, eh bien, vous ne l'utilisez pas (et en fait, je ne sais pas comment il peut être utilisé avec une première approche Java) –