<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Answers to: Subscribe when login ivy user ?</title><link>https://answers.axonivy.com/questions/3190/subscribe-when-login-ivy-user</link><description>&lt;p&gt;Hi all&lt;/p&gt;
&lt;p&gt;Normally we use &lt;code&gt;Ivy.session().loginSessionUser(userName, password)&lt;/code&gt;  to login. 
And we have common modules to do common stuff like this (wrap by Ivy component).&lt;/p&gt;
&lt;p&gt;My question is: Does ivy support a mechanism that we can subscribe this event and we'll be notified when a ivy user is logged in?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;</description><atom:link href="https://answers.axonivy.com/questions/3190/subscribe-when-login-ivy-user" rel="self"></atom:link><language>en</language><lastBuildDate>Mon, 16 Apr 2018 09:30:45 -0400</lastBuildDate><item><title>Answer by Alex Suter</title><link>https://answers.axonivy.com/questions/3190/subscribe-when-login-ivy-user/3191</link><description>&lt;p&gt;Hello &lt;a href="https://answers.axonivy.com/users/118/trungdv"&gt;&lt;a href="https://answers.axonivy.com/users/118/trungdv"&gt;@trungdv&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Something like that should work. You can register this SessionExtension in a Program Start:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import ch.ivyteam.di.restricted.DiCore;
import ch.ivyteam.ivy.environment.Ivy;
import ch.ivyteam.ivy.persistence.IPersistentTransaction;
import ch.ivyteam.ivy.persistence.PersistencyException;
import ch.ivyteam.ivy.security.ISecurityManager;
import ch.ivyteam.ivy.security.ISession;
import ch.ivyteam.ivy.security.ISessionExtension;
import ch.ivyteam.log.Logger;

public class TrackingSessionEvents {

    public static void register()
    {
        DiCore.getGlobalInjector().getInstance(ISecurityManager.class).addSessionExtension(new MySessionExtension());
    }

    private static class MySessionExtension implements ISessionExtension
    {
        private Logger log;
        public MySessionExtension() {
            log = Ivy.log();
        }

        @Override
        public void createSession(ISession session, IPersistentTransaction arg1) throws PersistencyException {          
            log.info("create session for: " + session.getSessionUser().getName());
        }

        @Override
        public void destroySession(ISession session, IPersistentTransaction arg1) throws PersistencyException {
            log.info("destroy session for: " + session.getSessionUser().getName());
        }

        @Override
        public void logoutSession(ISession session, IPersistentTransaction arg1, long arg2) throws PersistencyException {
            log.info("logout session for: " + session.getSessionUser().getName());
        }
    }

}
&lt;/code&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alex Suter</dc:creator><pubDate>Mon, 16 Apr 2018 09:30:45 -0400</pubDate><guid>https://answers.axonivy.com/questions/3190/subscribe-when-login-ivy-user/3191</guid></item></channel></rss>