Реализация Spring Security с Java-клиентом
Сторона клиента
У меня есть Java-приложение, которое подключается к удаленному серверу с помощью основных методов POST или 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();
(Я не могу изменить этот код, единственное, что я могу изменить, этоurlStr
иdata
отправляется на сервер при вызове метода).
[РЕДАКТИРОВАТЬ] Клиент может быть Java-клиентом или любым другим клиентом (c ++, target-c, ..). Дело в том, что я могу получить доступ только к тому, что находится в теле моего сообщения, а также к URL.
Сторона сервера
На моей стороне сервера я бы хотел реализовать Spring Security (SecurityContext и сеанс персистентности).
Я понимаю, что весенняя безопасность основана на куки-файлах браузера, когдаWebApp
хранить информацию оsession id
, Но в моем случае нет браузера.
Нужно ли имитировать хранениеJSESSIONID
и отправить его обратно на сервер? Я не уверен, что это возможно, так как мне нужно будет позвонитьconn.addRequestProperty(key, value)
что невозможно.
Есть ли другой способ?
Спасибо.
[РЕДАКТИРОВАТЬ]
как указал @zagyi, я могу использовать URL для передачи токена сессии в Spring, но я до сих пор не могу понять, как это сделать.