DispatcherServlet#getHandler
AbstractHandlerMapping#setOrder
ModelAttributeMethodProcessor#validateIfApplicable
AbstractMessageConverterMethodArgumentResolver#validateIfApplicable
BeanWrapperImpl#getPropertyValue
- リクエストパラメータをモデルにバインドする処理を見たい時
WebSecurity#performBuild
- フィルタチェインの登録処理を順番に追いたい時
DefaultSecurityFilterChain#DefaultSecurityFilterChain
- フィルタがどの順番で登録されているか知りたい時
- requestMatcher の最初にマッチした filters が使われるので、AnyRequestMatcher に注意
DefaultSecurityFilterChain#matches
- 実際のリクエストでフィルタがマッチするか1つ1つ確認したい時
FilterChainProxy#getFilters
- 実際のリクエストでマッチされたフィルタを確認する時
private List<Filter> getFilters(HttpServletRequest request) {
for (SecurityFilterChain chain : filterChains) {
if (chain.matches(request)) {
return chain.getFilters(); // THIS_LINE
}
}
return null;
}
OAuth2AuthenticationProcessingFilter#doFilter
- アクセストークンで認証をするフィルタ
- OAuth2 でアクセスできない時
RandomValueAuthorizationCodeServices#createAuthorizationCode
- リクエストトークンの作成処理を追いたい時
TokenStore#storeAccessToken
- 作成されたアクセストークンの詳細を見たい時
- 起動に時間がかかるので、実装クラス側でブレークポイントかけた方がよい
TokenEndpoint#postAccessToken
- /oauth/token のエンドポイント
DefaultAuthenticationKeyGenerator#extractKey
- authentication_id の生成ロジック
- username, clientId, scope の MD5
RestTemplate#doExecute
- 外部のサービスの API リクエストを追いたい時
OAuth2Template#exchangeForAccess
- 外部サービスの OAuth2 のアクセストークンを問い合わせるリクエストを見たい時
RedisSerializer#serialize
- Redis のシリアライズを確認