Skip to content

Instantly share code, notes, and snippets.

@hikoma
Last active September 21, 2017 12:37
Show Gist options
  • Save hikoma/d459c30627d5659208c9 to your computer and use it in GitHub Desktop.
Save hikoma/d459c30627d5659208c9 to your computer and use it in GitHub Desktop.
Spring ブレークポイントメモ

リクエスト関連

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;
    }

OAuth2

OAuth2AuthenticationProcessingFilter#doFilter

  • アクセストークンで認証をするフィルタ
  • OAuth2 でアクセスできない時

RandomValueAuthorizationCodeServices#createAuthorizationCode

  • リクエストトークンの作成処理を追いたい時

TokenStore#storeAccessToken

  • 作成されたアクセストークンの詳細を見たい時
  • 起動に時間がかかるので、実装クラス側でブレークポイントかけた方がよい

TokenEndpoint#postAccessToken

  • /oauth/token のエンドポイント

DefaultAuthenticationKeyGenerator#extractKey

  • authentication_id の生成ロジック
  • username, clientId, scope の MD5

Social

RestTemplate#doExecute

  • 外部のサービスの API リクエストを追いたい時

OAuth2Template#exchangeForAccess

  • 外部サービスの OAuth2 のアクセストークンを問い合わせるリクエストを見たい時

Redis

RedisSerializer#serialize

  • Redis のシリアライズを確認
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment