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?
関連記事