利用公共的Action實現用戶合法性的校驗
在這里,我們可以通過實現一個公共的Action并增加相應的權限驗證功能來實現用戶權限的校驗工作.
這樣,在進行業務功能開發的時候,所有需要執行權限校驗的Action都需要繼承自此公共的Action.
下面是一個簡單的例子
具有校驗功能的Action(SecureAction.java)
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package dgut.ke.struts.secure;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* MyEclipse Struts
* Creation date: 08-28-2007
*
* XDoclet definition:
* @struts.action validate="true"
*/
public abstract class SecureAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public final ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception {
HttpSession session = request.getSession();
String userId = (String)session.getAttribute("SESSION.USER");
if(userId==null)
return (mapping.findForward("isNullSession"));
else
return doExecute(mapping,form,request,response);
}
public abstract ActionForward doExecute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception;
}
下面編寫一個普通的Action(isNullSessionAction.java)繼承自此公共Action
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package dgut.ke.struts.secure;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class IsNullSessionAction extends SecureAction {
@Override
/*重寫類中的方法*/
public ActionForward doExecute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
//通過父類的權限驗證則該方法會被執行
return mapping.findForward("success");
}
}
struts-config.xml中的相關配置
<action path="/isNullSession" type="dgut.ke.struts.secure.IsNullSessionAction">
<forward name="success" path="/success.jsp"></forward>
<forward name="isNullSession" path="/index.jsp"></forward>
</action>
<action path="/secureAction" type="dgut.ke.struts.secure.SecureActionAction"/>
posted on 2007-08-28 20:23
Ke 閱讀(429)
評論(0) 編輯 收藏 所屬分類:
struts