I suppose that can happen for session that are not authenticated yet, but
otherwise it should work if you defined getTokenId as
session.getAttribute(TOKEN_ID)



On Mon, Jul 23, 2012 at 3:29 PM, Wright, Omari <[email protected]>wrote:

> When I get the list of active sessions and try to get the token id, it is
> null.
>
> -----Original Message-----
> From: Guillaume Nodet [mailto:[email protected]]
> Sent: Friday, July 20, 2012 4:09 PM
> To: [email protected]
> Subject: Re: [Apache SSHD] Question about authentication
>
> Looks good at a first glance.  What's the problem ?
>
> On Fri, Jul 20, 2012 at 7:26 PM, Wright, Omari <[email protected]
> >wrote:
>
> > I'm still having problems accessing an attribute in the list of
> > managed sessions.
> >
> > public static final AttributeKey<TokenId> TOKEN_ID = new
> > AttributeKey<TokenId>();
> >
> > public boolean authenticate(String username, String password,
> > ServerSession session) {
> >                 PdaUserManager userManager = (PdaUserManager)
> >
> session.getServerFactoryManager().getUserManagerFactory().createUserManager();
> >                 Authentication auth = new
> > UsernamePasswordAuthentication(username, password);
> >
> >                 try {
> >                                         String returnVal =
> > userManager.authenticateSshd(auth);
> >                                         TokenId tokenId = new
> > TokenId(returnVal);
> >                                         session.setAttribute(TOKEN_ID,
> > tokenId);
> >                                 } catch (AuthenticationFailedException
> e) {
> >                                         return false;
> >                                 }
> >
> >                 return true;
> >             }
> >
> > _____________________________
> >
> > Then in another class I try:
> >
> > public static boolean disconnectByTokenId(String tokenId) {
> >                 List<AbstractSession> sessions =
> > server.getActiveSessions();
> >                 for (AbstractSession session : sessions) {
> >                         if (session != null
> >                                         &&
> >
> SshServer.getTokenId(session).getValue().equalsIgnoreCase(sessionTokenId)) {
> >                                 session.close(true);
> >                                 return true;
> >                         }
> >                 }
> >
> >                 return false;
> >         }
> >
> >
> > -----Original Message-----
> > From: Guillaume Nodet [mailto:[email protected]]
> > Sent: Friday, July 13, 2012 9:30 AM
> > To: [email protected]
> > Subject: Re: [Apache SSHD] Question about authentication
> >
> > Attributes are supposed to be used the following way
> >
> >       private static final AttributeKey<MyValue> MY_KEY = new
> > AttributeKey<MyValue>();
> >
> >       public static MyValue getMyValue(Session s) {
> >         return s.getAttribute(MY_KEY);
> >       }
> >
> >       private void setMyValue(Session s, MyValue value) {
> >         s.setAttribute(MY_KEY, value);
> >       }
> >
> >
> > On Fri, Jul 13, 2012 at 3:15 PM, Wright, Omari
> > <[email protected]
> > >wrote:
> >
> > > Also, does that AttributeKey that I set have to be its own data type?
> > >
> > > -----Original Message-----
> > > From: Guillaume Nodet [mailto:[email protected]]
> > > Sent: Friday, July 13, 2012 8:49 AM
> > > To: [email protected]
> > > Subject: Re: [Apache SSHD] Question about authentication
> > >
> > > The UserAuth interface you'll have to implement is given the
> > > ServerSession as a parameter and you can use get/setAttributes() to
> > > associate your id with the ssh session.
> > > When you want to kick users, you can enumerate the sessions using
> > > sshServer.getActiveSessions() and check what you need there,
> > > eventually calling close() on the sessions.
> > >
> > > On Fri, Jul 13, 2012 at 2:41 PM, Wright, Omari
> > > <[email protected]
> > > >wrote:
> > >
> > > > I have OpenAM which I plan to use to handle user authentication
> > > > again an Active Directory server. I plan to make a call during the
> > > > SSHD authenticate method passing along username/password. The
> > > > returned value of this call is a token id if it is successful and
> > > > null otherwise. I then want to associate this value with the
> > > > session as a type of session id. Is this possible? If so, how can
> > > > I go about doing
> > > this?
> > > >
> > > > The token id would basically be an added property on the session.
> > > > The reason I want this functionality is that I then want to be
> > > > able to kick users based off the token id passed to the disconnect
> > > > method. The reason for this is a need to have OpenAM manage user
> > disconnects.
> > > >
> > >
> > >
> > >
> > > --
> > > ------------------------
> > > Guillaume Nodet
> > > ------------------------
> > > Blog: http://gnodet.blogspot.com/
> > > ------------------------
> > > FuseSource, Integration everywhere
> > > http://fusesource.com
> > >
> >
> >
> >
> > --
> > ------------------------
> > Guillaume Nodet
> > ------------------------
> > Blog: http://gnodet.blogspot.com/
> > ------------------------
> > FuseSource, Integration everywhere
> > http://fusesource.com
> >
>
>
>
> --
> ------------------------
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> FuseSource, Integration everywhere
> http://fusesource.com
>



-- 
------------------------
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
FuseSource, Integration everywhere
http://fusesource.com

Reply via email to