Notification callback that occurs when the corresponding Session has expired.
<p/>
<b>Note</b>: this method is almost never called at the exact instant that the {@code Session} expires. Almost all
session management systems, including Shiro's implementations, lazily validate sessions - either when they
are accessed or during a regular validation interval. It would be too resource intensive to monitor every
single session instance to know the exact instant it expires.
<p/>
If you need to perform time-based logic when a session expires, it is best to write it based on the
session's {@link hunt.shiro.session.Session#getLastAccessTime() lastAccessTime} and <em>not</em> the time
when this method is called.
Notification callback that occurs when the corresponding Session has expired. <p/> <b>Note</b>: this method is almost never called at the exact instant that the {@code Session} expires. Almost all session management systems, including Shiro's implementations, lazily validate sessions - either when they are accessed or during a regular validation interval. It would be too resource intensive to monitor every single session instance to know the exact instant it expires. <p/> If you need to perform time-based logic when a session expires, it is best to write it based on the session's {@link hunt.shiro.session.Session#getLastAccessTime() lastAccessTime} and <em>not</em> the time when this method is called.
@param session the session that has expired.