I wonder if the problem is in your test which may create multiple SftpServer somehow ? Could you move the creation in the beforeClass method ?
On Wed, Sep 14, 2011 at 18:29, Davis Ford <[email protected]> wrote: > Here's a follow up to my last email with a demo class / test case that > illustrates the failure.**** > > ** ** > > Add this code to the apache-sshd/sshd-core project under > src/test/java/com/example**** > > ** ** > > When you run the test the first case passes. It spins up a new Sshd/SFTP > server and connects to it with the JSch client, and authenticates just fine > with the user/pass obtained via the ConcurrentHashMap.**** > > ** ** > > The second test case fails. It tries to connect multiple sessions with > different user/pass combos. You'll see the following printed on > system.err.println =>**** > > ** ** > > First, we create a new session for foo=bar:**** > > CREATE-SESSION: SftpServer identity:1190000432, authMap identity:822056113, > authMap:{foo=bar}, user:foo, pass:bar**** > > Then we authenticate -- works ok, you'll see foo=bar is in the map**** > > AUTHENTICATE: SftpServer identity:1526115339, authMap identity:2023306452, > authMap:{foo=bar}, user:foo, pass:bar**** > > Now, we create a new session for foo2=bar2, note that it prints the > contents of the map after this call and it contains foo2=bar2**** > > CREATE-SESSION: SftpServer identity:1190000432, authMap identity:822056113, > authMap:{foo2=bar2, foo=bar}, user:foo2, pass:bar2**** > > Then we try to authenticate, but it fails. foo2=bar2 is not in the map, > and the identity hashcode is different.**** > > AUTHENTICATE: SftpServer identity:1526115339, authMap identity:2023306452, > authMap:{foo=bar}, user:foo2, pass:bar2**** > > ** ** > > Note that the identity hashcodes change between calls to createSession( ) > in the test, and authenticate( ) coming in from apache-sshd. If you look at > the code, you'll see that I don't manipulate the ConcurrentMap anywhere in > the code or the test case other than adding an entry to it, and it is a > private final instance variable.**** > > ** ** > > So, why doesn't this work? Something in the mina code is using a stale > instance of the SftpServer.java class it seems?**** > > ** ** > > Any ideas?**** > > ** ** > > Regards, > Davis**** > -- ------------------------ Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ Open Source SOA http://fusesource.com
