Implementando o Spring Security com o Java Client
Lado do Cliente
Eu tenho um aplicativo java que se conecta a um servidor remoto usando métodos básicos POST ou GET:
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();
(Eu não posso mudar esse código, as únicas coisas que eu posso mudar é ourlStr
e adata
enviado para o servidor ao chamar o método).
[EDITAR] : O cliente pode ser um cliente java ou qualquer outro cliente (c ++, objective-c, ..). O ponto aqui é que eu só posso acessar o que está no corpo do meu post, bem como o URL.
Lado do servidor
No meu servidor, gostaria de implementar o Spring Security (SecurityContext e persistência de sessão).
Eu entendo que a segurança da primavera é baseada em cookies do navegador quando é umWebApp
para manter as informações sobre osession id
. Mas no meu caso não há navegador.
Preciso simular o armazenamento doJSESSIONID
e enviá-lo de volta para o servidor? Não tenho certeza se isso é possível, já que precisaria ligarconn.addRequestProperty(key, value)
o que não é possível.
Existe alguma outra maneira?
Obrigado.
[EDITAR]
Como apontado por @zagyi, posso usar o URL para passar o token de sessão para o Spring, mas ainda não consigo descobrir como.