Comment obtenir le nom principal, la session et, idéalement, vérifier si le principal est authentifié avec le contexte Spring Security dans un service Web CXF JAX-RS méthode recevant un appel d'un client Android? C'est le code avec lequel je travaille actuellement. J'ai commenté où et ce que j'essaie d'obtenir.Comment obtenir le nom principal de HTTPRequest dans la méthode de service Web CXF JAX-RS appelée depuis l'application android
code Android pour appeler webservice:
httpclient.getCredentialsProvider().setCredentials(
new AuthScope("192.168.1.101", 80),
new UsernamePasswordCredentials("joesmith", "mypasswd"));
HttpGet httpget = new HttpGet(WEBSERVICE_URL+"/makePayload");
httpget.setHeader("User-Agent", userAgent);
httpget.setHeader("Content-Type", "application/xml");
HttpResponse response;
try {
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
... parse xml from response
}
CXF, printemps Code webservice:
@GET
@Path("/getPayload")
@Produces("application/XML")
public Response makePayload(@Context Request request){
//Get user principal name
//Get session?
//Get Spring security context?
Payload payload = new Payload();
payload.setUsersOnline(new Long(200));
return Response.ok().entity(payload).build();
}
Je ne sais pas si vous pouvez injecter @Context HttpServletRequest, si vous faites alors vous pouvez obtenir le Principal de l'objet de la demande et ensuite obtenir le nom d'utilisateur – webjockey