pimutils / pimutils/vdirsyncer

Support digest auth in HTTP

Open
#749 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

cat: documentation cat: RFCs cat: server compat planning
Dominant language
Python
Stars
1.9k
Forks
185
Avg merge
11h 49m
Merged PRs (30d)
1

Description

I think it is better to create a new issue instead of discussion the problem on #740: I´ve installed a debian stretch machine with vdirsyncer-latest from https://packagecloud.io/pimutils/vdirsyncer but it doesn´t work :(.

error: Unknown error occurred for Kalender/calendar: http://OLDSERVER:8008/calendars/__uids__/UID/calendar/: Client Error: 401 Unauthorized
error: Use `-vdebug` to see the full traceback.
debug:   File "/opt/venvs/vdirsyncer-latest/lib/python3.5/site-packages/vdirsyncer/cli/tasks.py", line 69, in sync_collection
debug:     partial_sync=pair.partial_sync
debug:   File "/opt/venvs/vdirsyncer-latest/lib/python3.5/site-packages/vdirsyncer/sync/__init__.py", line 142, in sync
debug:     a_nonempty = a_info.prepare_new_status()
debug:   File "/opt/venvs/vdirsyncer-latest/lib/python3.5/site-packages/vdirsyncer/sync/__init__.py", line 46, in prepare_new_status
debug:     for href, etag in self.storage.list():
debug:   File "/opt/venvs/vdirsyncer-latest/lib/python3.5/site-packages/vdirsyncer/storage/_rust.py", line 18, in list
debug:     native.check_error(e)
debug:   File "/opt/venvs/vdirsyncer-latest/lib/python3.5/site-packages/vdirsyncer/native.py", line 29, in check_error
debug:     errors.check_exception(e[0])
debug:   File "/opt/venvs/vdirsyncer-latest/lib/python3.5/site-packages/shippai/__init__.py", line 112, in check_exception
debug:     _raise_with_more_frames(exc, frames)
debug:   File "/opt/venvs/vdirsyncer-latest/lib/python3.5/site-packages/shippai/__init__.py", line 208, in _raise_with_more_frames
debug:     raise exc
error: 1 out of 2 tasks failed.

and on the old calendarserver:

2018-06-19 12:27:18+0200 [-] [caldav-6]  [-] [twistedcaldav.extensions#error] Client authentication scheme basic is not provided by server ['digest']

in my conf file I set up:

[general]
# A folder where vdirsyncer can store some metadata about each pair.
status_path = "~/vds/status/"

# CALDAV
[pair Kalender]
a = "Kalender_alt"
b = "Kalender_neu"
collections = ["calendar"]
conflict_resolution = "a wins"
metadata = ["color", "displayname"]
partial_sync = "ignore"

[storage Kalender_alt]
type = "caldav"
url = "http://OLDSERVER:8008/principals/__uids__/UID/"
auth = "digest"
username = "USER"
password = "PASSWORD"
read_only = true
item_types = ["VEVENT"]

[storage Kalender_neu]
type = "caldav"
url = "https://NEWSERVER:443/principals/users/USER/"
auth = "digest"
verify_fingerprint = "FP"
username = "USER"
password = "PASSWORD"

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the CalDAV storage and authentication entry points, using the traceback reference to vdirsyncer/storage/_rust.py and the provided digest configuration. Reproduce the 401 against the old CalendarServer; done means a storage configured with auth = "digest" can authenticate and sync the calendar successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.