Interceptors aren't actions, shouldn't extend ActionSupport, and having them implement action-oriented interfaces is meaningless. Having an interceptor
The actions you defined each set their own interceptor stack consisting *solely* of the login interceptor; this is almost certainly not what you want. If you define an interceptor stack for an action you must define *all* the interceptors that action requires.
You can avoid defining an interceptor stack for each action by defining a default interceptor stack containing all the interceptors you require.
Normally, if doing something like this by hand, there will be an un-protected login action that will check the user's credentials and put a user object (in your case) into session. It's not really appropriate (in my opinion) for that functionality to reside in an interceptor--interceptors are meant for application-wide, cross-cutting behavior. In this case, the cross-cutting behavior is to check for a valid user and if none is found go to the login page.