親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

JSPはもう古い?Faceletsとは

8年くらい長い間JavaEEに触れてこなかったのですが、 最近触れてみるとかなり技術が変化していて驚きました。特に昔はJSPでビュー側を書いていたのに、最近ではFaceletsというものが出てきて いわゆるxhtml形式で書くのが主流になってきているんですね。 自…

NginxのサブディレクトリでphpMyAdminを起動

NginxのサブディレクトリでphpMyAdminにつなげたい Nginxで、「ドメイン名/phpMyAdmin」でphpMyAdminにつなげるようにした時の設定です。 ドメインを入力すれば普通にアプリケーションに接続され、サブディクトリを指定すればphpMyAdminに接続できるようにす…

NginxでPHPを動かす

Nginxとは何じゃらほいというところからですが、ここは他のサイトを見た方が細かくわかりやすく説明されていると思うので説明は割愛させていただきますが、NginxとPHPの説明について軽く触れたいと思います。最初にPHPについてですが、モジュール版とCGI版が…

Vagrantにssh 192.168.33.10でパスワードなしログイン

vagrantログインでパスワードを求められる vagrantの起動をした後、 vagrant sshではパスワードなしでログインできるのに、 ssh 192.168.33.10だとパスワード入力を求められます。 これが上手くいかないと、chefとかansibleといったサーバ構成管理ツールを実…

VagrantでAnsibleを使う(provision版)

vagrant provisionでPlaybookを実行 AnsibleはサーバにSSH接続をして記述されたPlaybookの通りに実行されますが、Vagrantで実行する場合は必ずしもSSH接続は必要ありません。 「vagrant provision」コマンドでもPlaybookを実行できるのです。※ちなみに今回は…

HomebrewでMacにAnsibleをインストール

構成管理ツールといえば、ChefやAnsibleなど色々ありますが、今回はAnsibleを使ってみた時のメモです。 Homebrewでインストール Macはyumではなく、Homebrewでインストールを行います。 まずは以下コマンドで、インストールするAnsibleのバージョンを確認し…

Spring Securityで複数のログイン機能を作る時、鍵を握るのは@Order

ti-tomo-knowledge.hatenablog.comまでで基本的なログイン機能のご紹介まで行いましたが、 実際Webアプリを作り出すと、「ユーザ用のログイン画面」、「管理者用のログイン画面」といったように、 ログイン画面を複数用意しなければいけない場面があるのでは…

@Builderのクラスに引数なしのコンストラクタを設置したい

@Builderでコンストラクタを作成 @BuilderはLombokにより使えるライブラリで、 エンティティ呼び出し時にbuilderの生成を簡単にしてくれます。仕組みとして、例えば @Builder public class Test() { private int id; private String name; } とすれば、実際…

Spring Securityを使ったログイン機能 (3)ログイン処理の実装

ti-tomo-knowledge.hatenablog.comにて、アカウント情報の登録まで行いましたが、 次は実際にログイン機能を実装してみます。 ※認証失敗時など、細かい処理まで書くと長くなってしまうので、今回は認証が必ず成功するパターンで書きます。WebSecurityConfigu…

Spring Securityを使ったログイン機能 (2)ユーザ情報登録フォームの実装

ti-tomo-knowledge.hatenablog.comにて、ログイン認証されていない時にログイン画面に遷移される処理の説明をしましたので、 次にログイン画面の実装...に行きたいのですがその前に、 そもそも認証先のデータを用意する必要がありますよね。 そこで今回はユ…

Spring Boot + ThymeleafのCSRFトークン設定は超簡単

Spring Boot + ThymeleafにおけるCSRF対策 近頃のWebアプリケーションフレームワークにおけるCSRF対策は自動で簡単にできるものが多いですが、Spring BootにおけるCSRF対策でのformタグへのトークン付与もとても簡単です。 「spring-boot-starter-security」…

Spring BootでFlywayを使ったマイグレーション

Spring Bootのマイグレーション 開発をするにあたってDBのバージョン管理をしっかりするためにもマイグレーションは必要です。 Spring Bootでは、Flywayを使えばとても楽にマイグレーションを行うことができます。※この手順では、application.ymlなどに以下…

Spring BootでJPAを使用したデータベース設定

Spring BootでJPAの設定 Spring Bootでデータベースを利用するために、JPAの設定をしようと思います。 そもそもJPAとは「Java Persistence API(Javaの永続化のAPI)」の略であり、Javaの純正技術として浸透しているORMの仕様です。 なので、実際にはORMの技術…

Spring Securityを使ったログイン機能 (1)未ログイン時の画面遷移

Spring BootのSpring security Spring BootにはSpring securityという認証と認可を司るコンポーネントがありますが、これを使いながら数回に分けてログイン機能を実装したいと思います。 未ログイン時にログインフォームに遷移する動きから、最終的にはデー…

Spring BootにおけるBeanクラスとは

JavaにおけるBean まずはJavaにおけるBeanをご存知でしょうか。 BeanとはJavaBeansの略であり、インスタンス化して使用するクラスです。変数のアクセス修飾子はprivateとし、その変数の値を変更したり、取得する際にはpublicなメソッドを使用します。 また、…