EasyBuggy / EasyBuggy Bootとは
メモリリーク、デッドロック、JVMクラッシュ、SQLインジェクションなど、バグや脆弱性の動作を理解するためにつくられたバグだらけのWebアプリケーションです。Apache 2.0ライセンスで公開されています。
EasyBuggyは基本的な技術のみが使われていますが、EasyBuggy BootはSpring Bootなどの新しい技術が使われています。
やりたいこと
EasyBuggyとEasyBuggy Bootを同時に実行・デバッグしたい。
具体的には下記のようなことを実現したい。
- 伝統的なJavaのコードとSpring Frameworkに則ったコードを比較したい
- それぞれのコードにおける脆弱性の修正を試みたい
- それぞれの環境の切り替えのコストを下げたい
インストール
前提条件
Eclipseがインストールされていること。
また、GitとMavenがインストールされ、パスが通っていること。
下記のコマンドを実行することで確認が可能。
$ git --version
$ mvn -version
Eclipseプロジェクトの作成
$ git clone https://github.com/k-tamura/easybuggy.git
$ git clone https://github.com/k-tamura/easybuggy4sb.git
Eclipseへのインポート
-
File > Importを選択する -
Maven > Existing Maven Projectsを選択し、Import Maven Projectsダイアログを表示する -
Select root directoryに先ほどcloneしたフォルダ2つを選択する -
Finishボタンを押す
EasyBuggyの独自設定
Serverを追加
- Serversビューを開き、右クリック。
New > Serverを選択する - Tomcat v8.5 Server(他のバージョンでも良いと思う)を選択し、
Nextボタンを押す - Available から
easybuggyを選択する。Addボタンを押して Configured に移動させる -
Finishボタンを押す
ポートを変更
そのままでは、EasyBuggy Bootと利用しているポートが衝突するため、ポートを変更する。
- 追加されたサーバーをダブルクリックし、Overviewビューを表示する
- Portsタブ以下のPort Name:
HTTP/1.1のPort Numberを任意の値に書き換える(例: 9080)
EasyBuggy Boot側のポートを変更するよりも、EasyBuggy側のポートを変更するほうが手軽だと思われる。
EasyBuggy Boot側のポートを変更する場合は、src/main/resources以下のapplication.propertiesを書き換える。
パスを変更
EasyBuggy内の一部のページは、パスを / (サーバールートパス)に設定しないと正常に動作しない。
- 追加されたサーバーをダブルクリックし、Overviewビューを表示する
- 下部の
Modulesを選択する - Document Baseが
easybuggyの行を選択する -
Edit...ボタンを押す -
Edit Web Moduleダイアログにて、Pathを/に変更する
起動
EasyBuggy
Serversビュー内から追加されたサーバーを選択し、同ビュー内のStart the server in debug modeボタンを押す。
その後、下記にアクセスする。
EasyBuggy Boot
Package ExplorerからEasybuggy4sbApplication.javaを選択し、EclipseのツールバーのDebug Easybuggy4sbApplicationボタンを押す。
その後、下記にアクセスする。
まとめ
おつかれさまでした。
トラブルシューティング
EasyBuggy / EasyBuggy Bootの起動に失敗する場合
一度 mvn verify コマンドを実行することで、直ることがあります。
コマンドを実行した結果、下記のようなエラーで失敗することもあります。
しかし、これを無視して起動すると、成功することもあります。
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
関連記事



