为了账号安全,请及时绑定邮箱和手机立即绑定

Struts2实现未登录进行权限拦截 一直没起作用,懂得帮忙看看。

Struts2实现未登录进行权限拦截 一直没起作用,懂得帮忙看看。

qq_脚本 2015-09-19 14:49:17
我想实现的就是除了登录页面,访问其他的都需要登录后才能访问,各位慕课网的朋友帮忙看看代码哪里有问题。谢谢!!LoginInterceptor.javapackage com.yeka.oa.interceptor; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; import com.yeka.oa.entity.SysEmployee; @SuppressWarnings("serial") public class LoginInterceptor extends MethodFilterInterceptor  { @SuppressWarnings("unchecked") @Override protected String doIntercept(ActionInvocation invocation) throws Exception { ActionContext context = invocation.getInvocationContext(); //通过ActionContext获取session的信息,以Map形式返回 Map session = context.getSession(); //获取容器里面的username值,如果存在说明该用户已经登录,让他执行操作,如果未登录让他进行登录 SysEmployee user = (SysEmployee) session.get("user"); if(user!=null){ invocation.invoke(); } context.put("nologin", "对不起,你没有登录,不能进行该操作"); return "login"; } }struts.xml配置<!-- 配置拦截器 -->  <package name="my-default" extends="struts-default">      <interceptors>          <!-- 配置未登录进行操作的拦截器 -->          <interceptor name="loginInterceptor" class="com.struts2.interceptor.LoginInterceptor">          </interceptor>          <!-- 重新封装一个默认的拦截器栈 -->          <interceptor-stack name="myDefaultStack">                <interceptor-ref name="loginInterceptor" />                <interceptor-ref name="defaultStack" />          </interceptor-stack>      </interceptors>      <!-- 为这个包设置默认的拦截器栈 -->      <default-interceptor-ref name="myDefaultStack" />      <!-- 设置全局的返回值 -->      <global-results>           <result name="login" type="redirect">login.jsp</result>      </global-results>  </package>
查看完整描述

1 回答

?
出任CEO迎娶白富美

TA贡献4条经验 获得超5个赞

设置全局的返回值应该是 /login.jsp

查看完整回答
1 反对 回复 2016-12-26
  • 1 回答
  • 1 关注
  • 2494 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信