当前位置:编程学习 > JAVA >>

ssh 拦截所有action验证用户是否登录

我正在用ssh做一个项目。 想用struts2的拦截器拦截所有的action请求,若用户已登录则继续访问action,若用户未登录则跳转到登录页面,我的拦截器配置文件是这样写的:

<package name="my-default" extends="json-default">    
     <!-- 定义权限控制拦截器 -->
     <interceptors>
     <interceptor class="com.tsz.interceptor.AuthorityInterceptor" name="authority" />
     <interceptor-stack name="mydefault">
     <interceptor-ref name="defaultStack"></interceptor-ref>
     <interceptor-ref name="authority"></interceptor-ref>
     </interceptor-stack>
     </interceptors>
    
     <!-- 重新定义默认拦截器 -->
     <default-interceptor-ref name="mydefault" />
    
     <!-- 定义全局处理结果 -->
     <global-results>
     <result name="login" type="redirect">/login.html</result>
     </global-results>
    </package>

对应的拦截器为:

public class AuthorityInterceptor extends AbstractInterceptor {

@Override
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext ctx = invocation.getInvocationContext();
Map<String,Object> session = ctx.getSession();
Object object = session.get("name");
if(object != null){
return invocation.invoke();
}else{
return Action.LOGIN;
}
}

}

ssh中得struts版本为 struts2.2.1.1.jar, 但页面<result name="login" type="redirect">/login.html</result>不跳转。  action中请求的数据已经被拦截了,只是页面不跳转,求各位给出意见???
谢谢 --------------------编程问答-------------------- 把你自定义的拦截器放置到你定义的拦截器集的上面:

<!-- 定义权限控制拦截器 -->
  <interceptors>
  <interceptor class="com.tsz.interceptor.AuthorityInterceptor" name="authority" />
  <interceptor-stack name="mydefault">

  <interceptor-ref name="authority"></interceptor-ref>
  <interceptor-ref name="defaultStack"></interceptor-ref>

  </interceptor-stack>
  </interceptors>
--------------------编程问答-------------------- 我把自定义的拦截器放到了默认拦截器的上面,还是不行呢 --------------------编程问答-------------------- 那我就没有办法了,我看不到你的源码,帮不了你 --------------------编程问答-------------------- 382721734  我的qq号   你加我吧  帮我看看源码   谢谢了! --------------------编程问答-------------------- 你说:AuthorityInterceptor 这个拦截器中的代码有被执行到吧。 --------------------编程问答-------------------- 执行到了   而且整个login.html被当做JSON格式的数据传前台了,是不是因为继承了json-default啊 --------------------编程问答-------------------- 楼主解决了吗?把方法贴出来,我也想知道 --------------------编程问答-------------------- 还没解决 --------------------编程问答-------------------- struts全贴出来啊 --------------------编程问答-------------------- 你没把默认的 拦截器加进去 --------------------编程问答-------------------- 我的也犯了这个错,后来发现action配置的result="login"返回json对象的配置 。原来重复了
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,