Shiro を用いた Spring Boot アプリケーションでの認証・認可制御の実装

Web アプリケーションにおけるアクセス制御は、ユーザーのログイン状態やロール・権限に基づいて URL や UI 要素へのアクセスを制限する仕組みです。Apache Shiro は Java 向けの軽量かつ柔軟なセキュリティフレームワークであり、認証(Authentication)、認可(Authorization)、セッション管理などをシンプルに実現できます。本稿では、Spring Boot と Thymeleaf を使用 ...

7月31日 08:08 投稿

Spring Bootでのバックエンドグラフィック認証コードの実装

この認証コードの実装は多くのプラグインを使用せず、コードを直接提示します。すぐに使用できます。 1.認証コードクラス package com.example.security.util.captcha; import lombok.Data; /** * 認証コードクラス */ @Data public class CaptchaCode { private String code; private byte[] imageBytes; private long expirationTime; } 2.認証コー ...

7月28日 23:28 投稿

Spring Bootでのインターセプター設定:認証ガード実装

Spring Bootでのインターセプター設定(認証ガード) 本記事では、Spring Boot 2.x環境でのインターセプター設定方法、特にログイン認証のガードとしての実装について解説します。 1. インターセプター実装クラスの作成 まず、HandlerInterceptorインターフェースを実装したクラスを作成し、必要なメソッドをオーバーライドして独自のビジネスロジックを実装します。 p ...

7月27日 17:53 投稿

Spring BootでChatGLM3-6bモデルを統合する方法

この記事では、Spring BootアプリケーションでChatGLM3-6bモデルと連携する方法について説明します。他のモデルとの接続方法も同様に応用できます。 モデルパラメータの確認 ここでは、アリクラウドから提供された文書に基づいて、モデルパラメータを設定します。HTTPリクエストを使用して非SDK方式でAPIを呼び出します。 以下のサンプルリクエストを見ていきます: c ...

7月26日 16:03 投稿

開発効率を向上させるための実践的なヒント

既に定義されたAPIインターフェースに対して、なぜ開発が遅いのでしょうか?他の作業が挟まることもありますが、それでもなお遅いと感じるのは、思考の問題なのか、それともテクニックの問題なのでしょうか。 細心さを持ち、バグを減らそう! 同僚から圧縮ファイルのアップロード機能の実装を依頼され、以前作成した圧縮関数があったので、そのままコピー&ペーストしま ...

7月25日 23:28 投稿

Java Webアプリケーションにおけるクロスドメインリクエストの実装方法

JSONPを使用したクロスドメイン通信 JSONP(JSON with Padding)は、同一生成元ポリシーの制限を回避するための一般的な手法です。以下にJavaバックエンドとJavaScriptフロントエンドの実装例を示します。 サーバーサイド実装 package com.example.web.controller; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.web.bind.annotation. ...

7月24日 18:35 投稿

Java ベースのタスク割当システム設計と実装ガイド

システムアーキテクチャと開発フロー 本ガイドでは、Spring Boot を基盤とした高スループットなタスク割当プラットフォームの構築手順を段階的に解説します。ドメイン駆動設計(DDD)の考え方を一部取り入れ、責務を明確に分割したモジュール構造を目指します。 1. プロジェクト初期化とビルド設定 開発環境の基盤には Maven を採用し、Spring Boot 3.x の依存関係を一括 ...

7月24日 03:58 投稿

Spring BootとRabbitMQを用いた支払い結果通知システムの実装

RabbitMQ設定クラス @Configuration public class PaymentNotificationConfig implements ApplicationContextAware { public static final String PAYMENT_EXCHANGE = "payment_exchange"; public static final String NOTIFICATION_TYPE = "payment_result"; public static final String NOTIFICATION_QUEUE = "payment_notification_queue"; @Bean(PA ...

7月22日 23:05 投稿

MyBatisインターセプターを用いたデータ匿名化の実現

1. MyBatisインターセプターの概要 1.1 MyBatisインターセプターとは MyBatisインターセプターは、MyBatisがSQL文を実行する際にその処理を傍受し、変更または拡張するためのプラグイン機構です。この機構により、MyBatisの実行フローの様々なポイントにカスタムロジックを挿入し、ログ記録、SQLクエリの動的な変更、パフォーマンス最適化などの独自動作を実装できます。 ...

7月22日 16:24 投稿

Spring Bootにおける条件付きBeanの有効化: @ConditionalOnPropertyアノテーションの活用

@ConditionalOnPropertyによる条件付きBeanの定義 Spring Bootアプリケーションでは、特定の条件に基づいてBeanを登録したり、設定クラスを有効にしたりすることができます。その中でも、アプリケーションのプロパティ値に基づいてコンポーネントの有効/無効を切り替える際に非常に便利なのが@ConditionalOnPropertyアノテーションです。 このアノテーションは、指定された ...

7月21日 21:15 投稿