「実際に春のセキュリティ入門()小規模チョッパー」このシリーズの最初の記事、HTTP基本アプリケーション春のセキュリティでは、原則としてだけでなく、ソースコードの一部の春のセキュリティエントリ・ケース分析の最も単純で開始しました。最も一般的に使用される認証方式から、この資料 - フォーム認証の開始は、春のセキュリティの認証フォームの基本原則に焦点を当てています。
まず、フォームログ解析のデフォルトの動作
ログイン認証機能は、私たちの最も汎用性の日常の生活の中のいずれかを使用することであり、今のインターネットアプリケーションは、基本的にはフォーム・ログインする能力を持っている、基本的な考え方は、ときに、ユーザーの訪問に必要な機能にアクセスするためのログインで、アプリケーションはユーザーがログインしていません要求されますそう、ログインするためのログインページにジャンプログイン成功後、それは自動的に元の機能やリソースへのアクセスに戻ってジャンプします。今の分離の終了前と後のアプリケーションの場合は、一般の利用者が、元のページに成功したジャンプの後やユーザの個人センターにログインして、一般的にフロントエンドによって決定され、フロントエンドは、ログイン要求、利用者によって提供されるユーザー名とバックエンドの検証を開始パスワードが正しい場合には、ユーザ情報に基づいて次の何をすべきかを決定するために、フロントエンドが提供するフロントエンドユーザ認証情報と許可リストのバックエンドを取得します。
私たちが知っている最初の記事からは、春のセキュリティの関連するカスタム設定で、あなたはそのサブクラスWebSecurityConfigurerAdapter設定する必要があり、その後、ここでは基本的な設定のためのフォームベース認証のユーザー名とパスワードについて行います。私たちは、継承WebSecurityConfig WebSecurityConfigurerAdapterに設定クラスを作成し、以下のように設定します(HttpSecurity HTTP)メソッド、特定のコードを書き換えます:
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.csrf().disable();
}
}
この構成は、構成されたHTTP基本認証、およびまた、クローズドCSRF保護がもはや存在し、中にデフォルト設定WebSecurityConfigurerAdapterを上書きしません。この単純な構成の基本的な分析は、ログイン認証を形成するために使用することができます。
プロジェクトを開始し、アクセスがアクセスに認証が必要なhttp://localhost:8080/demo
ルート、そして確かに、ページが自動的に示すように、ログインページにジャンプ:
私たちはあなたがアクセスし続けることができる前にログインする必要があることhttp://localhost:8080/demo
、現在のログインページから、我々は塗りつぶしできないことユーザー名とパスワードは、パラメータ名の値が現在のデータを処理する背景には、URLが実際に、私たちは一掃するために、現在のページのソースを見ることができ、見ることができない提出し、バックグラウンドに提出するものです。
[画像のダンプはチェーンが失敗し、発信局は、(IMG-jHwpPPWP-1571892234046)直接アップロード(https://s2.ax1x.com/2019/10/02/udplM8.jpgダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです)]
上記ページコード画像からわかるように、フォームを形成するために提出された/login
ルーティングログ処理、ユーザー名、パスワード、フォームの名前、ユーザ名とパスワードでした。私たちは、application.properties優れたユーザー名とパスワード(ユーザー/ 123456)、/デモルートに成功したジャンプ、そして「春のセキュリティを学ぶためにようこそ!」のメッセージへの復帰に設定を入力しました。
正しいを入力し、行動の上記の分析は、我々は最初のデモのルート/訪問したが、そのアクセスの場合には、あなたがアクセスする前にログインするには、このルートの必要性は、中/デモルート、春のセキュリティデフォルトのログインページに直接ジャンプログインしていません。ユーザー名とパスワードの後に、バックグラウンドで検証された/デモへのジャンプと予想されるルーティング情報を返します。そして、このデフォルトの動作は、それを達成する方法ですか?次のセクションでは、このデフォルトの動作の原理を理解するために、ソースコードを読んで。
第二に、コアのソースコード解析フォーム・ログイン
解析の最初のセクションのログインフォームのデフォルトの動作の後、私たちは、全体のプロセスは非常に簡単に理解することですが、あなただけの理解の過程に滞在する場合は、このセクションでは、焦点を当てるので、本当に春のセキュリティの機微を把握することは困難である必要がありこのデフォルト動作の過程を分析するためのソースコード分析の観点から、分析の前に、我々は以下の分析上のいくつかの質問を取る、我々は答えを見つけるためにソースに問題を取りました。
- 春のセキュリティは、私たちがどのようにアクセス/デモに知っているルートは、ログイン後に必須ですか?
- 私たちの現在の訪問は、ログインせずにアクセスする方法春のセキュリティへのインターセプトに私たちの要求があると分析しますか?
- 春のセキュリティでは、我々はそれがデフォルトのログインページに私たちをリードし、どのような状況がログインしていない見つかりましたか?
- 春のセキュリティは、私たちが提出したユーザー名とパスワードをどのように扱うかありますか?
- 春のセキュリティは、我々は正しいユーザー名とパスワードを提供する方法であり、我々はへ/デモのルートをリダイレクトされますか?
私たちは、ソースコードを読み取る過程でこれらの問題を解決した場合、我々は原則を理解した後、私たちは自分自身のプロジェクトのニーズに応じて機能をログインカスタムフォームを開発することができ、本当に春のセキュリティログインフォームの原理を理解考えることができます。いくつかの単語の男は、私たちが勝利の岸に沿って航行、車に細心の注意を払ってください、と述べました。