Я думаю, что ваша проблема заключается в перенаправлении пользователя на страницу входа в систему, когда они не вошли в систему. Использование @before для каждого actionBean - это не очень хорошая идея. Для этого вы можете сделать свой собственный перехватчик, расширив SpringInterceptorSupport.
@Intercepts(LifecycleStage.ActionBeanResolution)
public class MyInterceptor extends SpringInterceptorSupport {
private static final List<Class<? extends ActionBean>> ALLOW = Arrays.asList(LoginActionBean.class, anyOtherActionBeanAllowedWithoutLogin.class);
@Override
@SuppressWarnings({ "rawtypes" })
public Resolution intercept(ExecutionContext execContext) throws Exception {
Resolution resolution = execContext.proceed();
ActionBean actionBean = execContext.getActionBean();
Class<? extends ActionBean> destinationclass = actionBean.getClass();
if (!ALLOW.contains(destinationclass) && !isSessionExist()) {
resolution = new RedirectResolution(LoginActionBean.class);
}
return resolution;
}
private boolean isSessionExist() {
String login = (String)context.getRequest().getSession().getAttribute("login");
return login != null;
}
}
Конечно, Вы можете также написать свой собственный перехватчик: http://www.stripesframework.org/display/stripes/Intercept+Execution (это очень легко!) – Kdeveloper