Tagbangers Blog

小川 岳史

Spring MVC でリダイレクトさせないときでも RedirectAttributes を使いたい

ちょっと意味不明なタイトルになってしまいましたが、RedirectAttributes を使うとリダイレクト先のページのまで有効ないわゆる Flash スコープが使えます。 とても便利な機能ですが、これをリダイレクトではなく単なるページ遷移の時にも使う場合は以下のように自身で FlashMapManager#saveOutputFlashMap をコールすることで実現できます。 FlashMap flashMap = RequestContextUtils.getOutputFlashMap(request); flashMap.put("message", "Hello!"); Requ...

AWS Certificate Managerの無料SSLでセキュアな独自ドメインのウェブ公開(CloudFront+S3ウェブホスティング)

もう SSL 証明書も無料なんですね。 ということで、AWS の無料SSLを使ってウェブ公開する手順をメモ。 以下は AWS Console での作業。 Certificate Manager で SSL 証明書の発行。SSL証明書を発行するドメイン名を入力して Request するだけ。 管理者のメールアドレスに以下のようなメールが届くので、承認する。 もう証明書が発行されました。(はやいしらくちん) S3 のウェブホスティングを準備。 CloudFront を準備。 先ほど作成した SSL 証明書が選択できる!! Route53 を設定。 https://ssl-test-ogawa.ta...

Spring Security でマルチテナントしたときの Remember-me 認証対応

下記のログイン画面のように、ID と それ以外のパラメータを用いて認証した場合の Spring Security の Remember-Me 認証方法をご紹介。 ソースコードは GitHub (https://github.com/tagbangers/spring-best-practice...) で公開しています。 Spring Security は Remember-Me 認証の実装の1つとして、PersistentTokenBasedRememberMeServices クラスを提供している。PersistentTokenBasedRememberMeServices はログイン情報...

Spring の小粋なクラス Part1 - AbstractPersistable

今回の小粋なクラスは、 org.springframework.data.jpa.domain.AbstractPersistable (spring-data-jpa-1.9.2.RELEASE) JPA を使う時に Entity の親クラスとしてとりあえず継承しておくといい。 AbstractPersistable は JPA における主キーをあらわすメソッドと、主キーベースの #equals(Object) と #hashCode() メソッドが提供される。 下記のリファレンスにもあるとおり、Hibernate ではオブジェクトの等価性を使って同一のデータベースのレコードかどうかを判断す...

Ceph を Ubuntu (on AWS) にインストールしたメモ

環境 workstation クライアントサーバ Ubuntu 14.04 node1 クラスターサーバ Ubuntu 14.04 node2 クラスターサーバ Ubuntu 14.04 手順 すべてのサーバで作業 ★ すべてのサーバに ceph-deploy ユーザーを作成し、workstation サーバからノンパスフレーズで ssh ログインできるようにしておく (別のユーザー名でもよいが "ceph" は予約されているため使えない) ★ hostname でホスト名が解決できるようにしておく必要がある ★ すべて ceph-deploy ユーザーで作業 $ echo "ceph-dep...

GlusterFS を Ubuntu (on AWS) にインストールしたメモ

環境 workstation クライアントサーバ Ubuntu 14.04 node1 クラスターサーバ Ubuntu 14.04 node2 クラスターサーバ Ubuntu 14.04 手順 node1,2 で作業 # apt-get update # apt-get install software-properties-common # add-apt-repository ppa:gluster/glusterfs-3.5 # apt-get update # apt-get install glusterfs-server node1 だけで作業 # gluste...

Introducing RxJava into a Spring Boot REST API - SpringOne 2GX '15

SpringOne 2GX 2015 のセッション紹介。 今回は、「Introducing RxJava into a Spring Boot REST API」 こちらがスライド。 実際のセッションではデモコードを交えて説明していた。以下がそのソースコード。 https://github.com/simonbasle/practicalRx なぜ? 「ブロッキングは悪だ」 「Reactive で、並列可能で、組みやすく、読みやすい、非同期コードが必要だ」 どうやって? Java には2つの方法があるがどちらも欠点がある Callback を用いたやり方 → ネストが深くなって Callbac...

Amazon CloudFront に独自 SSL 証明書を設定する (Windows PowerShell)

CloudFront は「SNI 独自 SSL」か 「専用 IP 独自 SSL」のどちらかの方法で HTTPS 通信の設定が可能。 SNI 独自 SSL 無料だけど、古いブラウザは対応してない(IE6 以下など) 専用 IP 独自 SSL 月 600 USD 必要 ということで今回は無料の「SNI 独自 SSL」にて。 ...そして、最初につまづく。 CloudFront の設定画面では Custom SSL Certificate が非アクティブで選択できない。 SSL 証明書はどこから設定するのか?? 以下のように書いてある。 To choose this option, you firs...

Hibernate5 で SchemaExport

Hibernate5 から SchemaExport のコンストラクタの引数が変更され、MetadataImplementor を使うようになった。 以下は、Hibernate5 で Annotation ベースの設定を SQL (DDL) に出力するサンプルです。 public class Hbm2ddl { public static void main(String[] args) throws Exception { final String locationPattern = "classpath:/sample/entity/*"; fi...

Spring Boot で Hibernate Search のマルチテナンシーをやってみる

Hibernate Search がマルチテナンシーに対応したので、Spring Boot と組み合わせて試してみた。 試した環境は下記の通り。 Spring Boot 1.2.5.RELEASE Hibernate Search 5.3.0.Final サンプルコードはここにも置いてあります。 https://github.com/tagbangers/spring-best-practices/tree/master/spring-best-practice-hibernate-search-multi-tenancy マルチテナンシー (multi-tenancy) ってなに? ひとつの...