類圖的順序為:oauth2authenticationfilter -> authenticatingfilter -> authenticationfilter -> accesscontrolfilter -> pathmatchingfilter -> advicefilter -> onceperrequestfilter -> nameablefilter -> abstractfilter ->
;
//1. org.apache.shiro.web.servlet.filter
public
inte***ce
filter
//2. org.apache.shiro.web.servlet.onceperrequestfilter
public
abstract
class
onceperrequestfilter
extends
nameablefilter
elseif(
!isenabled
(request, response)
||shouldnotfilter
(request)
)else
finally}}
}//3. org.apache.shiro.web.servlet.advicefilter
public
abstract
class
advicefilter
extends
onceperrequestfilter
//由子類實現 posthandle
posthandle
(request, response);}
}//4. org.apache.shiro.web.filter.pathmatchingfilter
public
abstract
class
pathmatchingfilter
extends
advicefilter
implements
pathconfigprocessor
for(string path :
this
keyset()
)}return
true;}
private
boolean
isfilterchaincontinued
(servletrequest request, servletresponse response,
string path, object pathconfig)
throws exception
return
true;}
}public
abstract
class
accesscontrolfilter
extends
pathmatchingfilter
由子類實現onaccessdenied(req, resp);
protected
boolean
onaccessdenied
throws exception
}//6. org.apache.shiro.web.filter.authc.authenticatingfilter
public
abstract
class
authenticatingfilter
extends
authenticationfilter
}//7. org.apache.shiro.web.filter.authc.authenticationfilter
public
abstract
class
authenticationfilter
extends
accesscontrolfilter
}protected subject getsubject
(servletrequest request, servletresponse response)
//9. org.apache.shiro.securityutils
public
static subject getsubject()
return subject;
}//10 由於isauthenticated()=false, 所以isaccessallowed =false;
//所以5.1返回false, 會執行:5.2 onaccessdenied() 該方法由使用者自定義實現
public
class
oauth2authenticationfilter
extends
authenticatingfilter
subject subject =
getsubject
(request, response);if
(!subject.
isauthenticated()
)else
}//進行登入操作
飛彈攔截2
某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。輸入飛彈依次飛來的高度 雷達給出...
飛彈攔截2
某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。輸入飛彈依次飛來的高度 雷達給出...
codevs1409 攔截飛彈 2
題目鏈結 題意 給出n個三維的飛彈,每次攔截只能打x,y,z嚴格上公升的若干個飛彈,求最多能一次攔截下多少個飛彈,以及最少攔截幾次將所有飛彈全部攔截。solution 第一問直接排序後n 的dp即可。第二問我們考慮二分圖匹配,連邊後轉換模型成為最小路徑覆蓋。codevs1409 include in...