Struts開發一個許可權驗證攔截器來判斷使用者是否登入

Degree8發表於2015-05-26

開發一個許可權驗證攔截器來判斷使用者是否登入

當使用者請求受保護資源時,先檢查使用者是否登入
如果沒有登入,則向使用者顯示登入頁面
如果已經登入,則繼續操作 



實現步驟

開發許可權驗證攔截器
在配置檔案中定義攔截器並引用它



開發許可權驗證攔截器

public class AuthInterceptor extends AbstractInterceptor {
	public String intercept(ActionInvocation invocation) 
										throws Exception {		
		//獲取使用者會話資訊
		Map session= invocation.getInvocationContext().getSession();
		User user = (User)session.get("login");
		if (user == null) {
			//終止執行,返回登入頁面
			return Action.LOGIN;
		} else {
			//繼續執行剩餘的攔截器和Action
			return invocation.invoke();
		}
	}
}

在配置檔案中定義攔截器並引用它

<package name="renthouse" extends="struts-default">
	<interceptors>
		<!--定義許可權驗證攔截器-->
		<interceptor name="myAuthorization"
			class="cn.jbit.houserent.interceptor.AuthInterceptor">
		</interceptor>
		 <!--定義攔截器棧-->
		<interceptor-stack name="myStack">
			<interceptor-ref name="defaultStack"/>
			<interceptor-ref name="myAuthorization"/>
		</interceptor-stack>
	</interceptors>
	<!-- 定義預設攔截器 -->
	<default-interceptor-ref name="myStack"/>
	… 
</package>

注:因為包含在預設攔截器內,所以Action中無需再引用許可權攔截器




相關文章