pimutils / pimutils/vdirsyncer
Support digest auth in HTTP
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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