J'ai une application Web Spring Security (basée sur l'authentification par formulaire) qui exécute les services Web CXF JAX-RS et j'essaie de me connecter à ce service Web à partir d'une application Android qui peut être authentifiée par utilisateur. Actuellement, lorsque j'ajoute une annotation @Secured à ma méthode de service Web, toutes les demandes à cette méthode sont refusées. J'ai essayé de transmettre les informations d'identification d'un utilisateur/mot de passe valide (qui existe actuellement dans l'application Web Spring Security et peut se connecter à l'application Web avec succès) à partir de l'appel android mais la requête ne parvient toujours pas à L'annotation sécurisée est présente. Le paramètre SecurityContext renvoie null lors de l'appel de getUserPrincipal().Comment faire une demande à partir d'une application Android qui peut entrer dans une méthode de service web sécurisé Spring Security?
Comment puis-je effectuer une demande auprès d'une application Android pouvant accéder à une méthode de service Web sécurisée Spring Security?
Voici le code, je travaille avec au moment:
appel Android:
httpclient.getCredentialsProvider().setCredentials(
//new AuthScope("192.168.1.101", 80),
new AuthScope(null, -1),
new UsernamePasswordCredentials("joeuser", "mypassword"));
String userAgent = "Android/" + getVersion();
HttpGet httpget = new HttpGet(MY_URI);
httpget.setHeader("User-Agent", userAgent);
httpget.setHeader("Content-Type", "application/xml");
HttpResponse response;
try {
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
... parse xml
Webservice Méthode:
@GET
@Path("/payload")
@Produces("application/XML")
@Secured({"ROLE_USER","ROLE_ADMIN","ROLE_GUEST"})
public Response makePayload(@Context Request request, @Context SecurityContext securityContext){
Payload payload = new Payload();
payload.setUsersOnline(new Long(200));
if (payload == null) {
return Response.noContent().build();
}
else{
return Response.ok().entity(payload).build();
}
}
Pouvez-vous accéder à ce service à partir d'un autre client, par ex. SoapUI? C'est à dire. Votre sécurité sur le serveur est-elle correctement configurée? – Tomas