shiro oauth2攔截流程

2021-10-25 11:32:23 字數 3284 閱讀 7641

類圖的順序為: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...