使用mainFrame登录问题。

两个工程,没做单点登录,a工程用b工程的页面,需要a工程登录才可以用

首先配置拦截器

<interceptors>
<interceptor name="sgAdminAuthorityInterceptor" class="org.scbit.lsbi.unilab.action.AdminAuthorityInterceptor"/>

</interceptors>

在需要加此拦截的action上加拦截

 

<action name="tjptSearchAccount" class="org.scbit.lsbi.unilab.action.TjptAction" method="adminSearchAccount">
<interceptor-ref name="noLoginInterceptor"></interceptor-ref>
<interceptor-ref name="sgAdminAuthorityInterceptor"/>
<result name="success" type="dispatcher">/WEB-INF/pages/lsc/tjpt/account_list.jsp</result>
</action>

 

 

org.scbit.lsbi.unilab.action.AdminAuthorityInterceptor对应代码

 

public class AdminAuthorityInterceptor extends AbstractInterceptor {

private static final long serialVersionUID = 1L;

public String intercept(ActionInvocation invocation) throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
String refer=request.getHeader("referer")!=null?request.getHeader("referer"):"";

List<String> ableRefer=new ArrayList<String>();
ableRefer.add("a工程的域名 如www.baidu.com");
Boolean checkRef = Boolean.FALSE;
String adminLogName=request.getParameter("userName");
for(int i=0;i<ableRefer.size() && !checkRef;i++){
String ableRef = ableRefer.get(i);
if(refer.startsWith(ableRef)&& StringUtils.isNotBlank(adminLogName)){
checkRef=Boolean.TRUE;
}
}


//已登录,继续用户操作
if( null != request.getSession().getAttribute("SESSION_TJPT_ADMIN")){
}else if (checkRef){
request.getSession().setAttribute("SESSION_TJPT_ADMIN",adminLogName);
}
else{
//进入登录页面
response.sendRedirect("a工程的登录地址");
return null;
}

return invocation.invoke();
}

}

转载于:https://www.cnblogs.com/w1995w/p/10469714.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值