Возможно несколько серверов CardDAV под одним корневым URL-адресом?

У нас есть приложение Java Spring с множеством контактов внутри базы данных. Теперь мы хотим предоставить эти контакты через CardDAV, чтобы получить к ним доступ через внешние устройства.

Насколько я понял CardDAV, он использует «всем известный» протокол. Это означает, что он будет искать http://mydomain.com/.well-known/carddav

Это может быть проблемой, потому что у нас работает Tomcat Server и несколько приложений, работающих на нем, и каждое из них должно предоставлять сервер CardDAV. Это означает, что наши URL-адреса выглядят так:

  • http://mydomain.com/appOne/

  • http://mydomain.com/appTwo/

  • http://mydomain.com/appThree/

Каждое из этих приложений имеет совершенно другой набор пользователей и данных. Хотя каждый из этих репозиториев CardDAV должен искать свой собственный источник данных и должен использовать свой собственный механизм аутентификации.

Вопрос, конечно же, заключается в следующем: Как я могу получить несколько разных серверов CardDAV с одним доменом?


Кстати: есть ли НАСТОЯЩАЯ информация о CardDAV (не только о WebDAV или все равно ?!)?

Например, я ничего не смог найти о нескольких репозиториях / ограничениях прав доступа. Возможно, я хочу иметь один сервер CardDAV с несколькими разными пользователями, где у каждого пользователя есть собственная адресная книга и есть несколько общих адресных книг.


person Benjamin M    schedule 24.10.2013    source источник


Ответы (2)


Фактически, iOS поддерживает только хорошо известные. Если устройство iOS не может подключиться через известный, это позволит пользователю ввести полный основной адрес, НО это только ПОСЛЕ отображения пользователю сообщения об ошибке, и в этот момент большинство пользователей откажутся.

Однако перенаправление происходит после аутентификации, поэтому до тех пор, пока вы можете аутентифицироваться в корне (например, с помощью схемы имени пользователя, которая включает подсайт, например, appOne: brad), вы сможете это сделать. В качестве альтернативы, как упоминалось выше, просто используйте поддомены.

person brad    schedule 24.10.2013
comment
Спасибо. Я посмотрю, сможем ли мы использовать поддомены. - person Benjamin M; 25.10.2013

Хорошо известный URL-адрес используется клиентами для автоматического обнаружения корня сервера carddav, когда пользователь просто вводит имя домена. Вы можете перенаправить только на 1 сервер на домен, но вы можете настроить несколько доменов для перенаправления на несколько серверов carddav.

Если вы не можете использовать несколько поддоменов, вы просто не можете использовать хорошо известные. Вместо этого вам придется попросить пользователей заполнить полный URL-адрес своего принципала, чтобы настроить свои учетные записи.

Что касается вашего вопроса, есть ли «настоящая» информация. rfc6352 - официальная документация. Это определенно намного больше, чем просто WebDAV.

person Evert    schedule 24.10.2013
comment
Спасибо. Но мне кажется, что я где-то читал, что устройства iOS только поддерживают известные URL-адреса. Это правда? - person Benjamin M; 24.10.2013
comment
Если это правда, то это ошибка. Полный URL-адрес принципала должен работать. - person Evert; 25.10.2013
comment
Привет, Эверт, как упоминалось выше, пользователь может ввести полный URL-адрес в пользовательском интерфейсе iOS, но это отображается только после отображения сообщения об ошибке. Для внутренних пользователей это не проблема, но я обнаружил, что для приложений потребительского уровня он фактически сломан, потому что пользователи сдаются, когда видят сообщение об ошибке. - person brad; 15.11.2013