Spring Boot検証コードフレームCAPTCHA詳細


CAPTCHA
Gigthub倉庫を調べます𞓜Gite倉庫を見る;
概要
マンマシン識別と検証コードはバックエンド開発において保護インターフェースの最も一般的な方法の一つであり、このようなコードはしばしば業務コードと結合してプロジェクトのメンテナンス性が悪くなる。
CAPTCHAは、Spring Bootに基づく検証コードの枠組みであり、AOPによって検証コードの生成、送信、記憶などの検証コードを含む関連サービスを完了し、業務コードとの結合を回避する。
開発者は、異なるコンポーネントの組み合わせによって検証サービスを容易に行うことができ、自身のサービスニーズ(例えば、メール検証コード、ショートメッセージ検証コード)に対応するためにカスタマイズを行うことができる。
コードの例
導入Maven依存

<dependency>
 <groupId>cn.dustlight.captcha</groupId>
 <artifactId>captcha-core</artifactId>
 <version>0.0.6</version>
</dependency>
注釈を追加してCAPTCHAを有効にします。

@SpringBootApplication
@EnableCaptcha //    CAPTCHA
public class DemoApplication {
 public static void main(String[] args) {
  SpringApplication.run(DemoApplication.class, args);
 }
}
注釈生産検証コードを使用する

 @RequestMapping("/captcha")
 @SendCode //               
 public void captcha(@CodeValue String code) {
  //            ,      、          '@SendCode'   。
  log.info(code);
 }
注釈消費検証コード(保護インターフェース)を使用する。

 @RequestMapping("/")
 @VerifyCode
 public String index(@CodeValue String code) {
  //            ,               '@VerifyCode'   。
  return String.format("Hello World! (%s)", code);
 }
原理を実現する
CAPTCHAは切断面向けプログラミング(AOP)思想に基づいて、検証コードサービスを二つの断面に分けます。@SendCode
  • は、認証コード
  • を生成する。
  • 保存検証コード
  • は、認証コード
  • を送信する。@VerifyCode
  • 認証コードを読み出す
  • による検証
    同時に検証コード業務を以下のいくつかのインターフェースに抽象化する:
  • Code――認証コード
  • CodeGenerator――生成器
  • CodeSender、送信機
  • CodeStore−メモリ
  • CodeVerifier−ベリファイア

  • ランダム文字画像検証コードのAOPを実現しました。
    業務分析
  •  クライアントアクセス認証コードインターフェースは画像を取得し、バックエンドサービスは生成した検証コードをSessionまたはRedisに格納する。
  • クライアントアクセスインターフェース(ログイン、登録など)、着信パラメータおよび検証コード、バックエンドサービスは検証コードを取り出して検証する。
  • モジュール区分
    インターフェース
    実現する
    機能/説明
    コード
    コード<String>
    文字列型コードには、検証コード名、検証コード値があります。認証コード名は、異なるサービスを区別するための認証コードです。)
    CodeGenerator
    RandomString CodeGenerator
    ランダム文字列を生成し、パラメータ設定文字列および長さを使用します。
    CodeSender
    ImageCodeSender
    画像(ランダム文字、妨害線)を描画し、Resonseに出力します。
    CodeStore
    HttpSession CodeStore
    Sessionに基づいて検証コードを保存し、取り出す。
    Code Verifer
    StringEquals CodeVer ifeier
    文字列比較の検証は、パラメータ構成によって、文字の大きさや文字の大きさに敏感かどうか、およびtrimかどうかを確認します。
    業務ロジック
    @SendCode
  • は、CodeGeneratorを介してCodeを生成する。
  • は、CodeStoreを介してCodeを格納する。
  • は、CodeSenderを介してCodeを出力する。
  • は、業務コードを実行する。
  • @VerifyCode
  • は、要求パラメータから検証すべき検証コードを取得する。
  • CodeStoreを介してCodeを取り出す。
  • CodeVerifyによって検証される。
  • 認証が完了すると、業務コードが実行され、異常が発生します。
  • 展開と組合せ
    画像認証コード(ヒューマンマシン識別)以外に、一般的な検証コードサービスまたはパーソナルマシン識別サービスは、例えば、ショートメールの検証コード、メールの検証コード、GoogleのreCAPTCHA人機識別など、これらのインターフェースを実現することによって業務を遂行することができる。
    例えば、Redisストレージ検証コードを使用するには、RedisTemplateを通じてCodeStoreを実装すればよく、モジュールの組み合わせ使用によって、ユーザ定義の検証コードサービスを容易に完成することができ、また、サービスコードに影響を与えない。
    ここでSpring Boot検証コードの枠組み-CAPTCHAに関する記事を紹介します。Spring Boot検証コードの枠組みの内容は以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。