Both of the approached are nearly correct, but instead of specifying path to 
"auth" directory 

File auth = new File("C:\\...\\auth");
ISVNAuthenticationManager authManager =
SVNWCUtil.createDefaultAuthenticationManager(auth);

one should specify path to config directory

File auth = new File("C:\\...\\Subversion");
ISVNAuthenticationManager authManager =
SVNWCUtil.createDefaultAuthenticationManager(auth);

Could you try with "jsvn" utility that is distributed together with SVNKit?
Does native SVN ask you to enter something from keyboard (passwords, secret 
key)? (by default 
SVNWCUtil.createDefaultAuthenticationManager() is non-interactive)


And don't forget \\ in paths (should be "C:\\target"):
SvnTarget.fromFile(new File("C:\target"))

--
Dmitry Pavlenko,
TMate Software,
http://subgit.com/ - git-svn bridge

> Hello,
> thank you, but I don't get it to work.
> I've tried to different approaches to successfully connect to the SVN repo:
> 
> *** ONE ***
> try {
>       String repo = "https://path/path";;
>       DAVRepositoryFactory.setup();
>       SVNURL url = SVNURL.parseURIDecoded(repo);
>       final SvnOperationFactory svnOperationFactory = new 
> SvnOperationFactory();
>       final ISVNAuthenticationManager authenticationManager =
> SVNWCUtil.createDefaultAuthenticationManager();
>       svnOperationFactory.setAuthenticationManager(authenticationManager);
>       try {
>               final SvnCheckout checkout = 
> svnOperationFactory.createCheckout();
>               checkout.setSource(SvnTarget.fromURL(url));
>               checkout.setSingleTarget(SvnTarget.fromFile(new 
> File("C:\target")));
>               checkout.run();
>       } finally {
>               svnOperationFactory.dispose();
>       }
> } catch (SVNException e) {
>       e.printStackTrace();
> }
> 
> 
> *** TWO ***
> String repo = "https://path/path";;
> DAVRepositoryFactory.setup();
> File auth = new File("C:\\...\\auth");
> ISVNAuthenticationManager authManager =
> SVNWCUtil.createDefaultAuthenticationManager(auth);
> SVNURL url = SVNURL.parseURIDecoded(repo);
> SVNRepository repository = SVNRepositoryFactory.create(url,null);
> repository.setAuthenticationManager(authManager);
> System.err.println(repository.getLatestRevision());
> 
> Both result in
> 
> org.tmatesoft.svn.core.SVNAuthenticationException: svn: E170001:
> Authentication required for '<https://xxx:443> Subversion Server on ABC'
>       at
> org.tmatesoft.svn.core.internal.wc.SVNErrorManager.authenticationFailed(SVN
> ErrorManager.java:47) at
> org.tmatesoft.svn.core.internal.wc.SVNErrorManager.authenticationFailed(SVN
> ErrorManager.java:41) at
> org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirst
> Authentication(DefaultSVNAuthenticationManager.java:186) at
> org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConn
> ection.java:654) at
> [...]
> 
> 
> What's wrong with the snippets? What do I have to change? On the console,
> I can work with the SVN command line interface because the credentials are
> stored in the folder "C:\\...\\auth".
> 
> 
> Thank you.
> 
> Regards
> Michael
> 
> > Hello Michael,
> > To create an authentication manager that uses settings from ~/.subversion
> > directory use
> > SVNWCUtil#createDefaultAuthenticationManager.
> > 
> > If you want to look at credential that it provides --- usually one
> > haven't to look at those
> > credentials --- use ISVNAuthenticationProvider#getFirstAuthentication
> > ISVNAuthenticationProvider#getNextAuthentication.  SVNAuthentication
> > class (and its subclasses) is
> > an abstraction for credentials.
> > 
> > The most common code to use :
> > 
> > final SvnOperationFactory svnOperationFactory = new
> > SvnOperationFactory(); final ISVNAuthenticationManager
> > authenticationManager =
> > SVNWCUtil.createDefaultAuthenticationManager();
> > svnOperationFactory.setAuthenticationManager(authenticationManager);
> > try {
> > 
> >     // any operations,
> >     final SvnCheckout checkout = svnOperationFactory.createCheckout();
> >     checkout.setSource(SvnTarget.fromURL(url));
> >     checkout.setSingleTarget(SvnTarget.fromFile(workingCopyDirectory));
> >     checkout.run();
> > 
> > } finally {
> > 
> >     svnOperationFactory.dispose();
> > 
> > }
> > 
> > --
> > Dmitry Pavlenko,
> > TMate Software,
> > http://subgit.com/ - git-svn bridge
> > 
> >> Hello,
> >> 
> >> having a "ISVNAuthenticationProvider authenticationProvider", how can I
> >> get credentials to be used to access a Subversion repository with a
> >> command like "svn --username YYY --password XXX status". In other words,
> >> I'd like to re-use stored credentials dynamically to access a repo, but
> >> I'm not sure how to do it. Background: I'm inside a build server plugin,
> >> which uses the SVNKit.
> >> 
> >> 
> >> Thank you.
> >> 
> >> 
> >> Regards
> >> Michael

Reply via email to