SVN - Unable to locate a login configuration

We've been using Visual SourceSafe along with TeamCity for a while now, but we're currently in the process of swapping over to SVN.

I can connect to SVN via TortoiseSVN, AnhkSVN and Internet Explorer, but I cant seem to get TeamCity to talk to SVN.

We're using the latest TeamCity (5.1.4) and VisualSVN Server 2.1.3 using Integrated Windows Authentication.

JVM is 1.6 (Update 20)

Does anyone have any ideas?

Thanks

Rich

jetbrains.buildServer.vcs.VcsException: Error collecting changes for VCS root 'Subversion'
java.lang.SecurityException:            
at jetbrains.buildServer.buildTriggers.vcs.VcsChangesLoader.loadChangesForRoot(VcsChangesLoader.java:10)
at jetbrains.buildServer.vcs.impl.VcsManagerImpl.loadChanges(VcsManagerImpl.java:562)
at jetbrains.buildServer.serverSide.impl.auth.SecuredVcsManager.loadChanges(SecuredVcsManager.java:30)
at jetbrains.buildServer.vcs.impl.VcsChangesCollectorImpl$3.call(VcsChangesCollectorImpl.java)
at jetbrains.buildServer.vcs.impl.VcsChangesCollectorImpl$3.call(VcsChangesCollectorImpl.java:2)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.SecurityException: Unable to locate a login configuration
at com.sun.security.auth.login.ConfigFile.<init>(Unknown Source)
at sun.reflect.GeneratedConstructorAccessor132.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at javax.security.auth.login.Configuration$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.Configuration.getConfiguration(Unknown Source)
at javax.security.auth.login.LoginContext$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.init(Unknown Source)
at javax.security.auth.login.LoginContext.<init>(Unknown Source)
at  org.tmatesoft.svn.core.internal.io.dav.http.HTTPNegotiateAuthentication.initializeSubject(HTTPNegotiateAuthentication.java:138)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPNegotiateAuthentication.needsLogin(HTTPNegotiateAuthentication.java:238)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:534)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:274)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:262)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:516)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:999)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:178)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnSupport.getCurrentVersion(SvnSupport.java:153)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnSupport.getCurrentVersion(SvnSupport.java:141)
at  jetbrains.buildServer.buildTriggers.vcs.VcsChangesLoader.updateCurrentVersionWhenLastDetectedIsNull(VcsChangesLoader.java:244)
at jetbrains.buildServer.buildTriggers.vcs.VcsChangesLoader.loadChangesForRoot(VcsChangesLoader.java:206)
... 9 more
Caused by: java.io.IOException: Unable to locate a login configuration
at com.sun.security.auth.login.ConfigFile.init(Unknown Source)
... 35 more
java.lang.SecurityException: Unable to locate a login configuration
at com.sun.security.auth.login.ConfigFile.<init>(Unknown Source)
at sun.reflect.GeneratedConstructorAccessor132.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at javax.security.auth.login.Configuration$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.Configuration.getConfiguration(Unknown Source)
at javax.security.auth.login.LoginContext$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.init(Unknown Source)
at javax.security.auth.login.LoginContext.<init>(Unknown Source)
at  org.tmatesoft.svn.core.internal.io.dav.http.HTTPNegotiateAuthentication.initializeSubject(HTTPNegotiateAuthentication.java:138)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPNegotiateAuthentication.needsLogin(HTTPNegotiateAuthentication.java:238)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:534)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:274)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:262)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:516)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:999)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:178)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnSupport.getCurrentVersion(SvnSupport.java:153)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnSupport.getCurrentVersion(SvnSupport.java:141)
at  jetbrains.buildServer.buildTriggers.vcs.VcsChangesLoader.updateCurrentVersionWhenLastDetectedIsNull(VcsChangesLoader.java:244)
at jetbrains.buildServer.buildTriggers.vcs.VcsChangesLoader.loadChangesForRoot(VcsChangesLoader.java:206)
at jetbrains.buildServer.vcs.impl.VcsManagerImpl.loadChanges(VcsManagerImpl.java:562)
at jetbrains.buildServer.serverSide.impl.auth.SecuredVcsManager.loadChanges(SecuredVcsManager.java:30)
at jetbrains.buildServer.vcs.impl.VcsChangesCollectorImpl$3.call(VcsChangesCollectorImpl.java)
at jetbrains.buildServer.vcs.impl.VcsChangesCollectorImpl$3.call(VcsChangesCollectorImpl.java:2)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Unable to locate a login configuration
at com.sun.security.auth.login.ConfigFile.init(Unknown Source)
... 35 more
java.io.IOException: Unable to locate a login configuration
at com.sun.security.auth.login.ConfigFile.init(Unknown Source)
at com.sun.security.auth.login.ConfigFile.<init>(Unknown Source)
at sun.reflect.GeneratedConstructorAccessor132.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at javax.security.auth.login.Configuration$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.Configuration.getConfiguration(Unknown Source)
at javax.security.auth.login.LoginContext$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.init(Unknown Source)
at javax.security.auth.login.LoginContext.<init>(Unknown Source)
at  org.tmatesoft.svn.core.internal.io.dav.http.HTTPNegotiateAuthentication.initializeSubject(HTTPNegotiateAuthentication.java:138)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPNegotiateAuthentication.needsLogin(HTTPNegotiateAuthentication.java:238)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:534)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:274)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:262)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:516)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:999)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:178)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnSupport.getCurrentVersion(SvnSupport.java:153)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnSupport.getCurrentVersion(SvnSupport.java:141)
at  jetbrains.buildServer.buildTriggers.vcs.VcsChangesLoader.updateCurrentVersionWhenLastDetectedIsNull(VcsChangesLoader.java:244)
at jetbrains.buildServer.buildTriggers.vcs.VcsChangesLoader.loadChangesForRoot(VcsChangesLoader.java:206)
at jetbrains.buildServer.vcs.impl.VcsManagerImpl.loadChanges(VcsManagerImpl.java:562)
at jetbrains.buildServer.serverSide.impl.auth.SecuredVcsManager.loadChanges(SecuredVcsManager.java:30)
at jetbrains.buildServer.vcs.impl.VcsChangesCollectorImpl$3.call(VcsChangesCollectorImpl.java)
at jetbrains.buildServer.vcs.impl.VcsChangesCollectorImpl$3.call(VcsChangesCollectorImpl.java:2)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

2 comments

Hello Richard,

  Looks like you need to make additional configuration to use Negotiate protocol from TeamCity (due to using Java/SVNKit in TeamCity).
  An example of the configuration is available at http://www.syntevo.com/smartsvn/techarticles.html?page=configuration.kerberos-over-spnego

  You'll have to specify several Java system properties (which start -D key).

  May be it would be easier to setup other types of authentication on the Subversion server, like basic username/password authentication.

  Best regards,
  KIR

0

Thanks for that, I have managed to get basic authentication temporarily turned on on VisualSVN and can now at least build the project.

Have had a quick look at the links and it looks like its going to take a few hours to sort out without having basic authentication on, so will schedule that in for sometime in November when I will have some more free time.

0

Please sign in to leave a comment.