ホームページ Java &#&チュートリアル Springbootと組み合わせたログイン時の認証コードの使用例を紹介

Springbootと組み合わせたログイン時の認証コードの使用例を紹介

Jun 17, 2017 am 11:48 AM
springboot 使用法 ログイン 組み合わせる 確認する

検証コードは、Web アプリケーションの一般的な要素です。ロボットやクローラーの防止に一定の効果があるため、次の記事でログイン認証コード kaptcha と Spring Boot の使用方法を組み合わせて関連情報を紹介します。

はじめに

ユーザーがログインするとき、セキュリティ上の理由から、ここではGoogleのkaptchaが軽量で独立しており、Springベースのアプリケーション開発を可能にします。極めてシンプル。 springboot についてはインターネット上にたくさんの紹介があるので、ここでは詳しく説明しません。

本題に戻り、ログイン時のSpringbootと組み合わせた認証コードの使い方について説明します

kaptchaに必要なjarパッケージの紹介、ここではmavenを使用します

  <dependency> 
   <groupId>com.github.penggle</groupId> 
   <artifactId>kaptcha</artifactId> 
   <version>2.3.2</version> 
    
   <exclusions> 
    <exclusion> 
     <artifactId>javax.servlet-api</artifactId> 
     <groupId>javax.servlet</groupId> 
    </exclusion> 
   </exclusions> 
  </dependency>
ログイン後にコピー

付属のサーブレットを削除しますパッケージバッグ付き。私の個人的な理解では、springboot は javaconfig とアノテーションで構築された軽量のマイクロアーキテクチャです。

以下はkapchaのjavaconfigです

@Configuration 
public class CaptchaConfig { 
  
 
 @Bean(name="captchaProducer") 
 public DefaultKaptcha getKaptchaBean(){ 
  DefaultKaptcha defaultKaptcha=new DefaultKaptcha(); 
  Properties properties=new Properties(); 
  properties.setProperty("kaptcha.border", "yes"); 
  properties.setProperty("kaptcha.border.color", "105,179,90"); 
  properties.setProperty("kaptcha.textproducer.font.color", "blue"); 
  properties.setProperty("kaptcha.image.width", "125"); 
  properties.setProperty("kaptcha.image.height", "45"); 
  properties.setProperty("kaptcha.session.key", "code"); 
  properties.setProperty("kaptcha.textproducer.char.length", "4"); 
  properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");   
  Config config=new Config(properties); 
  defaultKaptcha.setConfig(config); 
  return defaultKaptcha; 
 } 
}
ログイン後にコピー

ここでのkatchaのjavaconfigはspringmvcのBean設定と同等です。参考までに上記のjavaconfigのspringmvcのBean例を示します

<bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha"> 
  <property name="config"> 
   <bean class="com.google.code.kaptcha.util.Config"> 
    <constructor-arg> 
     <props> 
      <prop key="kaptcha.border">yes</prop> 
      <prop key="kaptcha.border.color">105,179,90</prop> 
      <prop key="kaptcha.textproducer.font.color">blue</prop> 
      <prop key="kaptcha.image.width">125</prop> 
      <prop key="kaptcha.image.height">45</prop> 
      <prop key="kaptcha.textproducer.font.size">45</prop> 
      <prop key="kaptcha.session.key">code</prop> 
      <prop key="kaptcha.textproducer.char.length">4</prop> 
      <prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop> 
     </props> 
    </constructor-arg> 
   </bean> 
  </property> 
 </bean>
ログイン後にコピー


構築メソッド

の属性パラメータは、独自のニーズに応じて設定できます。

設定ファイル

が設定されたので、独自のQRコードを取得するにはどうすればよいですか? 私の理解では、キャンバスの概念を理解して、生成された4桁の検証コードを使用して対応するキャンバスを生成し、結果を書き出すということです。

コードは次のとおりです:


@RequestMapping(value = "/captcha-image") 
 public ModelAndView getKaptchaImage(HttpServletRequest request, 
   HttpServletResponse response) throws Exception { 
  response.setDateHeader("Expires", 0); 
  response.setHeader("Cache-Control", 
    "no-store, no-cache, must-revalidate"); 
  response.addHeader("Cache-Control", "post-check=0, pre-check=0"); 
  response.setHeader("Pragma", "no-cache"); 
  response.setContentType("image/jpeg"); 
 
  String capText = captchaProducer.createText(); 
  System.out.println("capText: " + capText); 
 
  try { 
   String uuid=UUIDUtils.getUUID32().trim().toString();    
   redisTemplate.opsForValue().set(uuid, capText,60*5,TimeUnit.SECONDS); 
   Cookie cookie = new Cookie("captchaCode",uuid); 
   response.addCookie(cookie); 
  } catch (Exception e) { 
   e.printStackTrace(); 
  } 
 
   
 
  BufferedImage bi = captchaProducer.createImage(capText); 
  ServletOutputStream out = response.getOutputStream(); 
  ImageIO.write(bi, "jpg", out); 
  try { 
   out.flush(); 
  } finally { 
   out.close(); 
  } 
  return null; 
 }
ログイン後にコピー

上記のコードのように、ユーザーがログインするときに、cooike内の認証コードとキャプチャコードを使用して一意性検証を実現することを最初は入れようと考えました。考えてみると、これは非科学的だと感じます。たとえば、セッションにキャプチャコードが配置されている場合、後で別のユーザーが再度ログインすると、前のユーザーが。この時点では、一連の問題が発生します。ここでは、ユーザーの同時ログイン検証を処理するために Cookie と Redis が使用されます。


このページは次のように比較的簡単に使用できます:

<p style="float: left;"> 
  <i><img style="height:22px;" id="codeImg" alt="点击更换" title="点击更换" src="code/captcha-image" /></i> 
</p>
ログイン後にコピー

変更したい場合は、クリックイベントを追加してから、Redis 内の以前の対応する
キャッシュデータ

をクリアするか、ライフタイムを設定します。確認コードを取得するときにサイクルします。

以上がSpringbootと組み合わせたログイン時の認証コードの使用例を紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PlayStation Network へのログインは失敗しますが、インターネット接続は成功します PlayStation Network へのログインは失敗しますが、インターネット接続は成功します Feb 19, 2024 pm 11:33 PM

一部のプレイヤーは、発売時に PS4 または PS5 で奇妙な問題に遭遇しています。たとえば、PlayStation Network へのログインが失敗しても、インターネット接続は正常である場合に、これが原因で問題が発生する可能性があります。ログイン情報を入力するときにエラーが発生し、PSParty チャットに参加できない場合があります。同様の問題が発生した場合は、このガイドが問題の解決に役立つ可能性があります。 PlayStationNetworkSign-in の横に、「AnErrorHaveAreAre」というエラー メッセージが表示され、「失敗」と表示されます。 IP アドレス、インターネット接続、接続速度の取得などの他のパラメーターは正常に完了しました。では、ここで何が問題になるのでしょうか?あなたに仕事をあげます

AADSTS7000112、アプリケーションが無効になっている Microsoft アカウントのログイン エラーを修正 AADSTS7000112、アプリケーションが無効になっている Microsoft アカウントのログイン エラーを修正 Feb 19, 2024 pm 06:27 PM

AADSTS7000112 エラーにより、Microsoft アカウントを使用してアプリにログインできなくなり、ご不便をおかけする場合があります。この記事では、この問題を解決し、通常のログイン エクスペリエンスを復元するのに役立つ解決策を紹介します。ログイン: 申し訳ありませんが、ログインできません。 AADSTS7000112: アプリケーションが無効になりました。幸いなことに、いくつかの簡単な提案に従うことでエラーを修正できます。エラーコード AADSTS7000112 とは何ですか?エラー コード AADSTS7000112 は、Microsoft の Azure Active Directory への接続に問題があることを示します。通常、これは、ログインしようとしている Microsoft アプリケーションがブロックされていることが原因である可能性があります。

PDFの署名を検証する方法 PDFの署名を検証する方法 Feb 18, 2024 pm 05:33 PM

私たちは通常、政府やその他の機関から PDF ファイルを受け取りますが、中にはデジタル署名が付いているものもあります。署名を検証すると、SignatureValid メッセージと緑色のチェック マークが表示されます。署名が検証されない場合、有効性は不明です。署名の検証は重要です。PDF で署名を検証する方法を見てみましょう。 PDF 形式の署名を検証する方法 PDF 形式で署名を検証すると、署名の信頼性が高まり、文書が受け入れられる可能性が高くなります。次の方法で PDF ドキュメントの署名を検証できます。 Adobe Reader で PDF を開きます。 署名を右クリックし、「署名プロパティの表示」を選択します。 「署名者証明書の表示」ボタンをクリックします。 「信頼」タブから信頼できる証明書リストに署名を追加します。 「署名の検証」をクリックして検証を完了します。

WeChatの友人による認証を使用してブロックを解除する詳細な方法 WeChatの友人による認証を使用してブロックを解除する詳細な方法 Mar 25, 2024 pm 01:26 PM

1. WeChatを開いた後、検索アイコンをクリックし、WeChatチームと入力し、下のサービスをクリックして入力します。 2. 入力後、左下隅にあるセルフサービス ツール オプションをクリックします。 3. をクリックした後、上のオプションで、補助検証のブロック解除/再審査請求のオプションをクリックします。

JSPコメントの使用法と分類を分析する JSPコメントの使用法と分類を分析する Feb 01, 2024 am 08:01 AM

JSP コメントの分類と使用状況の分析 JSP コメントは 2 つのタイプに分類されます。 単一行コメント: で終わる、単一行のコードのみコメントできます。複数行のコメント: /* で始まり */ で終わると、複数行のコードにコメントを付けることができます。単一行のコメントの例 複数行のコメントの例/**これは複数行のコメントです*コードの複数行にコメントできます*/JSP コメントの使用法 JSP コードを読みやすくするために JSP コメントを使用できます。

企業 WeChat メールにログインする方法 企業 WeChat メールにログインする方法 Mar 10, 2024 pm 12:43 PM

Enterprise WeChat の電子メール アドレスにログインするにはどうすればよいですか? Enterprise WeChat APP で電子メール アドレスにログインできますが、ほとんどのユーザーは電子メール アドレスにログインする方法がわかりません。次は、その方法に関するグラフィック チュートリアルです。興味のある方は編集者が用意したEnterprise WeChatのメールアドレスにログインして、ぜひ覗いてみてください! Enterprise WeChat 使用チュートリアル Enterprise WeChat メールへのログイン方法 1. まず Enterprise WeChat APP を開き、メイン ページの下部にある [ワークベンチ] に移動し、クリックして特別なエリアに移動します; 2. 次に、ワークベンチでエリアで、[Enterprise Mailbox] サービスを選択します; 3. 次に、企業メール機能ページに移動し、下部の [バインド] または [メールの変更] をクリックします; 4. 最後に、ページで [QQ アカウント] と [パスワード] を入力します以下に示すように、メールにログインします。

PHP 8 の新機能: 検証と署名の追加 PHP 8 の新機能: 検証と署名の追加 Mar 27, 2024 am 08:21 AM

PHP8 は PHP の最新バージョンであり、プログラマーにさらなる利便性と機能をもたらします。このバージョンはセキュリティとパフォーマンスに特に重点を置いており、注目すべき新機能の 1 つは検証および署名機能の追加です。この記事では、これらの新機能とその使用法について詳しく説明します。検証と署名は、コンピューター サイエンスにおける非常に重要なセキュリティ概念です。これらは、送信されるデータが完全で本物であることを確認するためによく使用されます。オンライン取引や機密情報を扱う場合、検証と署名がさらに重要になります。誰かがデータを改ざんできると、潜在的にデータが改ざんされる可能性があるためです。

GeForce Experience のログインがフリーズする [修正] GeForce Experience のログインがフリーズする [修正] Mar 19, 2024 pm 06:30 PM

この記事では、Windows 11/10 での GeForceExperience ログイン クラッシュの問題を解決する方法を説明します。通常、これは、不安定なネットワーク接続、破損した DNS キャッシュ、古いまたは破損したグラフィックス カード ドライバなどが原因で発生する可能性があります。 GeForceExperience のログイン ブラック スクリーンを修正する 開始する前に、必ずインターネット接続とコンピューターを再起動してください。場合によっては、問題の原因が一時的なものである可能性があります。 NVIDIA GeForce Experience のログインの黒い画面の問題がまだ発生している場合は、次の提案を検討してください。 インターネット接続を確認する 別のインターネット接続に切り替える

See all articles