Используем HttpInvoker. На сервере по URL висит соответствующий сервис на этом протоколе. Поверх него Spring Security просто по этому и URL и автентификация по Basic Authentication.
Оформлено в виде интерфейса и его реализации на сервере. Стабы Spring генерит на лету на клиенте, на клиенте ему кроме интерфейса ничего не надо.
Недостаток: Spring на клиенте, что ЖРЕТ. Есть полегче альтернативы? Но чтобы не генерить код ручками при сборке, никаких танцев с бубном. Активная разработка, интерфейс часто меняется.
Раньше использовали JAX-WS, но оно тормозило и вызывало редкий баг. Если приложение отдавать по Web-Start и использовать Basic Authentication, то при передаче неправильных имени пользователя и пароля выбрасывается окно (!!!) с приглашением их ввода, которое нельзя перехватить и предотвратить. Facepalm.java