Implementando Spring Security con Java Client
Lado del cliente
Tengo una aplicación java que se conecta a un servidor remoto usando métodos POST o GET básicos:
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setAllowUserInteraction(false);
conn.setRequestProperty("Content-type", "text/xml; charset=" + ENCODING);
conn.connect();
conn.getOutputStream().write(data.getBytes(ENCODING));
conn.getOutputStream().close();
(No puedo cambiar este código, lo único que puedo cambiar es laurlStr
y eldata
enviado al servidor al llamar al método).
[EDITAR] : El cliente puede ser un cliente java o cualquier otro cliente (c ++, object-c, ..). El punto aquí es que solo puedo acceder a lo que está en el cuerpo de mi publicación, así como a la URL.
Lado del servidor
En el lado de mi servidor, me gustaría implementar Spring Security (SecurityContext y la persistencia de sesión).
Entiendo que Spring Security se basa en las cookies del navegador cuando es unaWebApp
para mantener la información sobre elsession id
. Pero en mi caso no hay navegador.
¿Necesito simular el almacenamiento de laJSESSIONID
y enviarlo de vuelta al servidor? No estoy seguro de que esto sea posible ya que necesitaría llamarconn.addRequestProperty(key, value)
Lo que no es posible.
¿Hay alguna otra manera?
Gracias.
[EDITAR]
Como lo señaló @zagyi, puedo usar la URL para pasar el token de sesión a Spring, pero todavía no puedo entender cómo.