The only pure Java™ Subversion library in the world!
Home Get Library Knowledge Base Licensing

Authentication

To provide user's authentication information to a repository server SVNRepository drivers use the ISVNAuthenticationManager (org.tmatesoft.svn.core.auth) interface.

When directly using an SVNRepository object you should provide an authentication manager in the following way:

...
import org.tmatesoft.svn.core.io.SVNRepository;
import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
...

    SVNRepository repository;
    ISVNAuthenticationManager authManager;
    ...
    
    repository.setAuthenticationManager(authManager);

If managing Working Copies (i.e. using SVN*Client classes):

...
import org.tmatesoft.svn.core.wc.SVNUpdateClient;
import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
import org.tmatesoft.svn.core.wc.ISVNOptions;
...
    
    ISVNAuthenticationManager authManager;
    ISVNOptions options;
    ...    
    SVNUpdateClient updateClient = new SVNUpdateClient(authManager, options);
or if using a single SVNClientManager:
...
import org.tmatesoft.svn.core.wc.SVNClientManager;
...
    SVNClientManager manager = 
                     SVNClientManager.newInstance(options, authManager); 

You may implement your own authentication manager and thus make SVNKit use it during runtime.

ISVNAuthenticationProvider and ISVNAuthenticationStorage

As a matter of fact, for providing client's credentials and accepting server's authentication certificates ISVNAuthenticationManager may use the ISVNAuthenticationProvider interface. To make an authentication manager use your auth provider implementation simply pass it to the manager like this:

import org.tmatesoft.svn.core.auth.ISVNAuthenticationProvider;

    ISVNAuthenticationProvider yourAuthProvider;
    ISVNAuthenticationManager authManager;
    ...

    authManager.setAuthenticationProvider(yourAuthProvider);

Also ISVNAuthenticationManager may be configured with a run-time authentication storage that can be used for credentials caching during runtime:

import org.tmatesoft.svn.core.auth.ISVNAuthenticationStorage;

    ISVNAuthenticationStorage yourAuthStorage;
    ISVNAuthenticationManager authManager;
    ...

    authManager.setAuthenticationProvider(yourAuthStorage);

Using a default implementation

To get a default implementation of ISVNAuthenticationManager you should use createDefaultAuthenticationManager() methods of the SVNWCUtil class (org.tmatesoft.svn.core.wc). Read the javadoc for this class.

In addition to an authentication provider the default implementation - DefaultSVNAuthenticationManager (org.tmatesoft.svn.core.internal.wc) - also uses settings and credentials cache from either the default Subversion run-time configuration directory or from the config directory that was provided to an appropriate createDefaultAuthenticationManager() method.



If you have any questions regarding SVNKit, would like to report a bug or contribute a patch, please write to support@svnkit.com


Java™ and all Java-based marks are a trademark or registered trademark of Sun Microsystems, Inc, in the United States and other countries. TMate Software and the website svnkit.com are independent of Sun Microsystems, Inc. and have no relationship, formal or informal.