使用Filter進行 過濾非法登入使用者

2021-04-21 10:27:21 字數 2352 閱讀 5125

很多時候,我們都需要做使用者登入和登入使用者的許可權管理,如何防止沒登入系統的使用者訪問不該訪問的頁面呢?

第一種解決辦法,在沒個使用者登入相關的頁面中判定相應的session是否為空,系統比較小該方法還可行? 系統比較大呢?上千個頁面呢?難道也要在每個頁面中去判斷嗎?這或許不太可取

第二種,引入filter

具體實現如下:

我們在action中,利用request.getsession().setattribute("user",user);

並講請求分發到scuess.jsp

scuess.jsp中無需做任何session就能判定使用者是否非法登入

嘿嘿,別忘了,在web.xml中還需要配置;

<

filter

>

<

filter-name

>loginfilter

filter-name

>

<

filter-class

>com.lovexx.tools.loginfilter

filter-class

>

filter

>

<

>

<

filter-name

>loginfilter

filter-name

>

<

url-pattern

>/scuess.jsp

url-pattern

>

>

忘和j2ee愛好者多多交流,共同進步

在struts開發中,對特定目錄下的頁面進行過濾的時候,要注意別對action path 相對路徑的aciton.do進行驗證,否則會出錯,

如我的web.xml中的配置如下

<

filter

>

<

filter-name

>loginfilter

filter-name

>

<

filter-class

>com.zq.tools.loginfilter

filter-class

>

<

init-param

>

<

param-name

>undo

param-name

>

<

param-value

>/index.jsp

param-value

>

init-param

>

filter

>

<

>

<

filter-name

>loginfilter

filter-name

>

<

url-pattern

>/company/*

url-pattern

>

>

而struts-config.xml中的配置如下

<

action

attribute="loginform"

name="loginform"

path="/company/login"

scope="request"

type="com.zq.struts.action.loginaction"

>

<

forward

name="scuess"

path="/company/main.jsp"

redirect="true"

/>

<

forward

name="fail"

path="/index.jsp"

redirect="true"

/>

action

>

那麼在過濾company目錄下的資源時候,company/login.do也會進行過濾,如果此時不做處理,則會出現死迴圈的現象

我是這樣做的,但好像還是有一點不合理

public

void dofilter(servletrequest arg0, servletresponse arg1,

filterchain arg2) throws ioexception, servletexception 

}arg2.dofilter(arg0, arg1);}

也可以在web.xml配置filter初始化引數,在filter中得到初始化引數,並進行處理

author:jack zhang

技術總結 使用Filter進行XSS過濾

一般來說,系統進行表單資料處理時都需要解決類似xss攻擊以及轉義這樣的問題,這樣的問題具有普遍性,不可能在每個提交表單資料的處理中都加入重複的處理 通常通過 filter 或 interceptor 來攔截處理。這裡介紹下通過 filter 進行xss過濾的方法。流程 使用filter攔截請求,將普...

使用Response Filter過濾非法詞彙

一般資訊發布 論壇等均具有實現非法詞彙過濾功能,即當使用者錄入非法詞彙時,進行替換,使其無法顯示到頁面上,針對此種功能,通常採用的時,在讀取 時,在讀到非法詞彙後,進行替換。這樣做的好處是不用將非法詞彙存入資料庫,缺點是要在每次讀取時都要進行替換。另一種解決方案是在輸出時過濾掉非常詞 匯,優點是只要...

Lucene使用Filter搜尋過濾

排序查詢 param querystr 查詢匹配的字串 param domain 查詢內容的域 param filter 過濾器 public void searchbyfilter string querystr,string domain,filter filter else 輸出資訊 scor...