67,512
社区成员
发帖
与我相关
我的任务
分享
<package name="cn.edu.software.nju.crm.action" extends="struts-default">
<interceptors>
<interceptor name="authorization" class="authorizationInterceptor"></interceptor>
<interceptor name="log" class="logInterceptor"></interceptor>
<interceptor-stack name="authorizationAndLog">
<interceptor-ref name="authorization"></interceptor-ref>
<interceptor-ref name="log"></interceptor-ref>
</interceptor-stack>
</interceptors>
<action name="UserSubsystems" class="userSubsystemsAction">
<interceptor-ref name="authorization"></interceptor-ref>
<result>/crm/UserSubsystems.jsp</result>
</action>
<!-- 其他action配置-->
<bean id="authorizationInterceptor"
class="cn.edu.software.nju.crm.interceptor.AuthorizationInterceptor">
</bean>
<bean id="userSubsystemsAction"
class="cn.edu.software.nju.crm.action.UserSubsystems"
scope="prototype">
<property name="systemService" ref="systemService"/>
</bean>
<!-- 其他bean-->
public class AuthorizationInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 4502697384032660168L;
/**
* 超时时间,单位millisecond,默认10分钟。
*/
private static final long TIME_OUT_INTERVAL = 600000L;
@Override
public String intercept(ActionInvocation ai) throws Exception {
Map session = ai.getInvocationContext().getSession();
//判断是否登录。
if(session.get("userId") == null){
return Action.LOGIN;
}else{
//判断是否超时
long startTime = (Long)session.get("startTime");
long interval = System.currentTimeMillis() - startTime;
if(interval > TIME_OUT_INTERVAL){
session.clear();
return Action.LOGIN;
}else{
//没有超时,重新设置计时开始时间
session.put("startTime", System.currentTimeMillis());
//调用Action
return ai.invoke();
}
}
}
}
public class UserSubsystems extends ActionSupport implements SessionAware {
private static final long serialVersionUID = -8136997656959262253L;
private SystemService systemService;
@SuppressWarnings("unchecked")
private Map session;
private List<Subsystem> subsystems;
public List<Subsystem> getSubsystems() {
Long userId = (Long)session.get("userId");
return this.systemService.getSubsystems(userId);
}
@SuppressWarnings("unchecked")
public void setSession(Map session) {
this.session = session;
}
public void setSystemService(SystemService systemService) {
this.systemService = systemService;
}
}