cern-fts / davix

High-performance file management over WebDAV / HTTP
GNU Lesser General Public License v2.1
84 stars 36 forks source link

[RFE] ~/.netrc support #9

Open gandrille opened 8 years ago

gandrille commented 8 years ago

For authentication, would it be possible to add ~/.netrc support for providing credentials? This feature is used a lot by FTP command line tools. PS: thanks so much davix (I use it for WebDAV access)!

gandrille commented 8 years ago

For the command line tools, of course.

gbitzes commented 8 years ago

Hi,

I had a look at .netrc, it seems you can only specify a username and password in there. It would not be appropriate for davix, as it supports more authentication methods apart from simple username/password: x509 certificates, S3, Azure..

I think I will add ~/.davixrc, similar to .netrc in syntax but with support for the additional authentication methods. What do you think?

adevress commented 8 years ago

Hi georgios,

If my opinion matter, It would be awesome to have both I think. netrc for compat and something like davixrc for exotic auth method.

Nowadays, a lot of service can now generate temporary service password which are safe to store in ~/.netrc.
I dont like clear text password more than you ~/.netrc is supported by almost all network tools including curl, wget, git and cadaver, that would be nice is davix support it too. :)

Cheers, Adrien

gbitzes commented 8 years ago

Sure, we could first check ~/.davixrc, and if no hosts in there match, then check ~/.netrc. Since the file format will be the same in both, no need to write two different parsers.

Some people have started using gpg-encrypted .netrc files.. :-)

gandrille commented 8 years ago

Hi All, I fully agree with all of your comments. Thanks a lot for listening to rfe! Kind regards, Etienne

gbitzes commented 8 years ago

Hi,

The feature has been implemented and can be found in the devel branch. Please test, and try to break my terrible parser. :) Let me know especially in case it misbehaves with existing .netrc files. It always gives priority to .davixrc over .netrc.

Even though I usually prefer strict error checking, in this case any directives not understood are deliberately ignored, to minimize the risk of creating incompatibilities with other tools using their own custom directives.

Cheers