yuusuke-roughの日記

Java,SpringBoot,趣味等

2023-01-01から1年間の記事一覧

一年の振り返り 2023/12/31

冬にしては暖かく感じます。 もう一年も終わりです。 来年の抱負の前に、今年一年で思っていた事をつらつらと書きたいなと思います。 誰かが読む程度の記事でもないゆえに心配は不要かと思いますが、暗い話もある点はご容赦を。 1月 転職が決まり、二年半ほ…

RemembermeのDB登録での事前準備

参考 Spring Security 使い方メモ Remember-Me #Java - Qiita DataSourceはapplication propertiesで設定済みのため、そのまま使用しました。 テーブルの作成をしないとテーブルが無い旨叱られました。 直接テーブル作成で対処。 mysql> CREATE TABLE persis…

SSL証明書の更新

はじめに 備忘録に近いブログですので、近況は最後に書きます。 いずれ理解したい知識 ちゃんと理解するSSL/TLS 前編 #Security - Qiita acme.shによる手動での更新 GitHub - acmesh-official/acme.sh: A pure Unix shell script implementing ACME client p…

Reactの環境構築 in Ubuntu

内容 Reactの環境を構築していきます。 Windows での React のインストール | Microsoft Learn Ubuntuのパスワードを忘れたらこちら wsl でパスワードを忘れてしまった際の対処 #WSL - Qiita WSL 2 上で Node.jis を設定する | Microsoft Learn Remote Devel…

IP2Locationでハマった経過①

【内容】 製作しているアプリが国内からのみのアクセスを想定しているため、先週から海外IPを弾く実装をする挑戦をしていました。 https://blog.ip2location.com/knowledge-base/how-to-use-ip2location-geolocation-with-nginx/ 動的モジュールとしてNginx…

URLの「+」パラメーターが機能しなかった話

原因は、URLにおいて「+」はスペースとして扱われるためでした。 urlencode - When should space be encoded to plus (+) or %20? - Stack Overflow

リレーションを含めたレコード検索を行う with JPQL in Spring Boot

目的 RDBMSを使用し、一対多の関係にある子テーブルから特定のレコードを取り出す。 取り出す条件には、子レコードの値に加え、リレーションのある親レコードの値も対象とする。 内容 Spring Data JPA - リファレンスドキュメント 【Spring Data JPA】自動実…

Let’sEncryptでNginxとHTTPS通信を行った in Amazon Linux 2

Let’sEncryptを使用してCertBotの使用を試みましたが、snapdのインストールが出来ず断念しました。 代わりに、acme.shによるSSL証明書の発行をして、Nginxへの設定を行いました。 今回は、単純に悔しかったので自戒を込めて記録に残します。 初めて読むと情…

Spring Bootアプリケーションのデプロイ with AWS その2

JDKのインストール Amazon Corretto 17 Installation Instructions for Amazon Linux 2 and Amazon Linux 2022 - Amazon Corretto 17 SpringBootアプリケーションのデプロイ Spring Boot アプリケーションのデプロイ - リファレンス ElasticBeanStalkを使用…

Spring Bootアプリケーションのデプロイ with AWS

はじめに この度、公開するアプリケーションはWebSocketを使用します。 ついては、使用した事のないRoute53、AWS Shield、 ELBは今回の記事では扱いません。 今回の目標は、デプロイをし、ローカル環境と同様、正常に動作する事の確認のみ行います。 構成 予…

備忘録:Bucket4Jによるレートリミット

目的 ログイン、登録画面にレートリミットを導入します。 ログイン試行や登録処理の大量送信を避けるためです。 (他には、アカウント毎の試行回数制限(クライアントへ上限突破で通知等)、Webアプリケーション全体で適用するAWS ShieldとAWS WAFは検討中で…

備忘録 + 日記

はじめに 外部APIからデータを取得し登録を行う処理の実装、リファクタリングと仕様変更を終えました。作業が膨大なため、なかなか記事を書けず。 後は、bucket4jによるリクエスト制限と最後の機能実装+αが控えているため、スケジュールはかなり詰め詰めです…

画像表示+雑記

はじめに 前半にコーディング問題(AtCoder等)・後半に開発をしました。 まずは、前半のコーディング問題の記事を記載します。 普段あまり使用しないクラスや実装の考え方を備忘録としてピックアップしてまとめます。 画像表示はチャット機能の実装に無駄が…

所感 2023/07/08~10

はじめに 今回は、近況と今後に分けて記載します。 近況 6月30日に会社を退職しました。 きっかけとなった案件については伏せます。 端的に書きますと、面接の頃からお伝えしていた「Javaの開発(テスト工程も含む)に行きたい。」という私の主張が、「開発…

所感 2023/05/27

2023年3月より、ずっと既存機器入れ替えの運用でした。 毎日、帰宅後は今まで開発していたWebアプリの製作と単体テスト等、社内勉強会で皆さまが参加している競技プログラミングの勉強を二時間ほどしていました。 先月の今頃に開発案件を探していただけるこ…

バリデーション in STOMP over WebSocket、画像保存 in Spring Boot 2日目(もっとかかってる)

ヘッダーの値によって変換処理を行い、DBに格納する java - Reading HTTP headers in a Spring REST controller - Stack Overflow RequestHeader (Spring Framework API) - Javadoc @RequestHeader(name="Content-Type") String contentType で、ヘッダーに…

単体テストの見直し日記

はじめに GWも後半となったが、認証と認可をいじって、AOPでログ出力を試している程度だ。 一日目は部屋と寝具含めた全体の掃除と社内勉強会、三日目は今後のお仕事についてヒアリングを受け、四日目は四月の疲れが思い出したようにどっときて、ほとんど眠っ…

二要素認証のログイン画面遷移 in Spring Security 後半

はじめに 後半です。 4./OTPLoginはROLEがOTP_USERのみアクセスできるようにする。 5.ROLEにUSERのないユーザーの認可調整 内容 4./OTPLoginはROLEがOTP_USERのみアクセスできるようにする。と5.ROLEにUSERのないユーザーの認可調整 5.ROLEにUSERのないユー…

二要素認証のログイン画面遷移 in Spring Security

はじめに STOMP over WebSocketもInterceptorを挟む処理の実装途中だが、今回は書きかけの左記問題から少し距離を置いて、既存の実装の見直しを行う。 今回のテーマは、「ログイン画面を二段階構成にして、ユーザ名とパスワードを入力後にワンタイムパスワー…

画像の圧縮とBase64の変換処理 in JavaScript

はじめに 前回と同様に日記形式で進めます。 仕事の空いている時間に学習した内容も併せて記載。 作成中の日記が長すぎるため、分割。 内容 前記事の公式ドキュメント参照 "clientInboundChannel" for messages from WebSocket clients. "clientOutboundChan…

SQLインジェクションを学習した日記

はじめに 花粉で目が開かない日々。 社内の方からセキュリティを教えてもらったので、さっそくJDBCでMySQLを繋げたときのプロジェクトを使って実験。 ちなみに、今したい事一覧。 Reactで交差オブザーバーとチャット部分更新したい。 ログ管理したい。 Inter…

WebSocketの学習日記 in Spring Boot

はじめに 単体テスト前に技術について整理→コード修正・追加→単体テストの三段構えで行きます。 いつもそのつもりで書いておりますが、完全に日記です。右往左往した苦しい時間もみっちり記録しております。 理解に乏しい部分が多々あります。 ブログ訪問者…

JDBCの学習日記

動作環境 Java SE15 MySQL 8.0.25 MySQL-Connecor-J-8.0.32 内容 データソースおよびURL MySQL :: MySQL Connector/J 8.0 Developer Guide 基本的にMySQLのドキュメントをメインで進める。 ORACLEのJDBCドキュメントでJDBC XX標準サポートとあったが、 MySQL…

Webjarsを使ってReactに触れる in Spring Boot

触れたというのか。 仕事後にReactチュートリアルしようとして、こんなつらい目に遭うと思わなかった日記。 既存のウェブサイトに React を追加する – React Spring Secutiryを実装しているプロジェクトで使用したいので、Webjarsで探すと... GitHub - webja…

バリデーションとDate、そしてバインディングできないのによくハマるお話 in Spring Boot

入力値チェックを丸々忘れていたURLがあったので、実装と有耶無耶にしないための再学習を行います。 まずは、チュートリアル。 入門 | フォーム入力の検証 フォームに記入された属性を収集するために @Valid でマークされた personForm オブジェクト。 bindi…

サニタイズとエスケープ in Spring Boot

Thymeleafでエスケープ処理はされるのかという問いです。 用語整理 サニタイズ・・・意図しない動作を生んでしまう文字を無効化する エスケープ・・・意図しない動作を生んでしまう文字を別の文字列に置き換える。 初めに、下記簡単なformを作り値の表示を行…

ただひたすら修正する日記 4,5日目 in Spring Boot

日記 3月3日にようやく回線が繋がり、良い出だしは切れたのではないかと思います。 さて、現状ですが、事情が幾つか重なり、メインに個人でのWebアプリ開発、サブにJavaとアルゴリズム(AtCoder)を割り当てる事にしました。 具体的には、 勤務日:フレームワ…

プロJavaのテストケース・JavaGold取得を目指した日記 2日目

はじめに 何となくの理解で進めていたヒープ領域やstatic領域の話を、アウタークラスやインナークラス、ローカルクラスを通して学習する度に、身になってる心地がしていいです。 ただ、数学にしてもプログラミングにしても理解や実装するための手段であって…

プロJavaのテストケース・JavaGold取得を目指した日記

はじめに JavaGold取得を目指して、まず月末は、昨年取得したJavaSilverの復習から入ります。 そして、MOSが取得できたので、全力で対策します。 各日記毎に分けていますが、一つずつ進めます。 JavaGoldはWindowsのPCでSTS(Eclipse) プロになるJavaはUbuntu…

プロになるJavaの学習日記 2日目

はじめに プロJava 2回目の日記です。 転職に当たり、業界の基礎知識について勉強を始めました。 開発の分類からイメージできるものとできないものがあるので、概要を抑える程度に読みたいと思います。 どのようにしたら良いテスター、プログラマー、システ…