m-namikiの日記

おもしろき こともなき世を おもしろく

spring

SpringMVC3.2.1を利用してのWebアプリケーション #05

前回の続きです。前回はTiles3の適用を行いました。今回はJSONによるデータのやり取りを行います。 やりたいこと ブラウザのフォームに入力した情報をJSONデータとしてサーバ側へ送信し、サーバ側では受け取ったJSONを基に情報を付加したJSONデータを作成・…

SpringMVC3.2.1を利用してのWebアプリケーション #04

前回の続きです。前回はフォームを使って画面の入力情報の受け取りを行いました。今回はTiles3の適用を行います。 Tile3の適用 QuickstartではTiles3に対応していましたが、id:m-namiki:20130311で設定ファイルから削除してしまったので、今回改めて適用しま…

SpringMVC3.2.1を利用してのWebアプリケーション #03

前回の続きです。前回はHelloWorldを表示させましたので、今回はフォームを使って画面の入力情報の受け取りを行います。 入力用JSPの作成 まずは入力画面の作成を行います。メールアドレスとパスワードの入力欄及びサブミットボタンからなる単純な画面です。…

SpringMVC3.2.1を利用してのWebアプリケーション #02

前回の続きです。前回はQuickstartで作成したプロジェクトをそのまま動作させましたが、今回はライブラリのバージョン等を変更していきます。 pom.xmlの編集 pom.xmlを記載すると冗長になるので主な変更点だけ。 springframework-version を 3.2.1.RELEASEに…

SpringMVC3.2.1を利用してのWebアプリケーション #01

以前のプロジェクトでSpringMVC3.0.Xを利用していましたが、1年以上経つとかなり忘れてしまっているので、思い出すためにSpring3.2.1を利用した場合のメモです。SpringFrameworkも3.2になったことで結構変化があったようなので、それもあわせてフォローでき…

データソースの動的切り替え

ユーザさんから、Webアプリ起動中にデータソースを動的に切り替えたい、との要望があったのでSpring環境でどうやるかを調べてみました。 データソースの定義 <bean id="dataSource" class="net.sasuke.datasource.DynamicRoutingDataSourceResolver"> <property name="targetDataSources"> <map key-type="net.sasuke.datasource.type.SchemaType"> </map></property></bean>

Beanのコピー時に自動で型変換する

例えば画面で入力されたフォームの内容を検索条件に変換するといった場合、プロパティ名・型が同じならば以下のように書くことができます。 private MyCondition createCondition(MyCommand command) { MyCondition condition = new MyCondition(); org.spri…

Spring Securityでセキュリティを強化する #2

前回の記事ではアカウントのロックアウトについて考えてみました。今回はパスワードのSalt対応について考えてみます。パスワードのSaltについてですが、今回は分かりやすくするためにユーザIDをパスワードに追加したものをハッシュ化する、という方法を採り…

Spring Securityでセキュリティを強化する #1

自社の社内SNSでIPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第2章 アクセス制限対策:ユーザー認証対策が話題になっていたので、Spring Securityを利用している場合に更にアプリケーション側でセキュリティを強化する場合にどうやるのが…

Spring Security

Spring SecurityはSpring Sourceがリリースするユーザ認証とアクセス制御を行うためのプロダクトです。 ここ1年くらい携わってたいくつかのプロジェクトで利用してみましたが、ユーザ認証やURL直打ち対策なんかの、非機能要件だけど実装するのが案外面倒な事…

MappingJacksonJsonViewのバグ

spring-webmvcの3.0.5に含まれるMappingJacksonJsonViewには、レスポンスヘッダにContent-Lengthを設定しないというバグが存在します。(#SPR-7866) レスポンスヘッダにContent-Lengthが含まれない場合、Transfer-Encoding:Chunkedが自動で設定され、メッセ…

assembly:assembly

以前、こちらの記事で実行可能なjarファイルの作り方を書きましたが、今回Springを利用した場合にちょっとハマったので回避方法をメモしておきます。上記の記事を参考に、実行可能ではないjarを作成して、以下のコマンドを実行しました。 java -cp hoge.jar …

SpringMVC + JSON

SpringMVCでJSONのやり取りを行おうとした場合、以下のような例外が発生することがあります。 org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supportedこれはspring-webに含まれるorg.sp…