Monotalk

Wicket バッチ処理で、PackageTextTemplate を使ってメールテンプレートを作成する

バッチ処理(Dropwizard の Command) でメール送信処理を書く必要があり、
テンプレートエンジンを何かしら使おうとして、
Wicket の PackageTextTemplate を使用した結果を記載します。
正直かなり無理矢理感はありますが、TemplateEngine として使うことはできました。

もっと読む

EclipseLink Entity must be managed to call remove

EclipseLink で、EntityManager#remove() を実行したところ、 以下のエラーが発生しました。

もっと読む

EclipseLink JPQL 内に Boolean 条件を直接記述する

JPQL内に Boolean 条件を記述したくて、
調べた結果を記載します。

もっと読む

Wicket×Dropwizard で構築された自作アプリケーションに対して脆弱性を検証してみる

Django製の Mezzanine で構築されたブログに対して、脆弱性を検証してみる | Monotalk
で、OWASP ZAP を使用して実施した検証を、作成中のアプリケーションに対して実施し、
警告に対して対処していこうと思います。

もっと読む

Dropwizard Jetty の DoSFilterで java.io.NotSerializableException: org.eclipse.jetty.servlets.DoSFilter が発生する

Jetty で Session Clustering を 使用したところ、その前に設定した DoSFilter で 以下のエラーが発生しました。

もっと読む

Dropwizard で MongoDB session clustering を使う

最近、アプリケーション基盤の調整をしていますが、そのまた一環で、
Dropwizard で session clustering を行うようにしたいと思います。

もっと読む

Wicket AjaxButton onSubmit()でエラーが発生した際の振る舞いを制御する

AjaxButton#onSubmit()にて、Exception 発生時に、
AjaxButton#onError(AjaxRequestTarget target, Form<?> form) 処理の制御が移らず、
うまくハンドリングができておりません。
ハンドリングできていない理由を調べてみました。

もっと読む

Wicket Ajax Request の複数送信をBlockする

Wicket の AjaxButton で mail 送信要求を送る 問い合わせフォームを実装していたのですが、
ボタン連打で連続リクエスト送信ができてしまったので、
その回避方法を考えます。

もっと読む

EclipseLink ボタン連打で The attribute [id] of class [EntityClassName] is mapped to a primary key column in the database. Updates are not allowed. が発生

EclipseLink を使って、メール送信フォームを実装していたところ、
ボタン連打で、以下のエラーが発生しました。
対処したので、対処方法を記載します。

もっと読む

Dropwizard Jetty の Dos FIlter を使う

DOS 攻撃対策の Filter といえば、HTTP サーバか、Java だと、Servlet FIlter で、
実装を行っているのが、多い気がします。

もっと読む

Wicket 外部サイトへのリダイレクト方法について調べてみました。

Wicket では、RedirectToUrlExceptionResponsePage で指定した URL に、
リダイレクトが可能です。1 [1] 同じ WAR 内ならば、setResponsePage で飛んでいけばいいです。

もっと読む

SonarQube squid:S116 フィールド名は命名規則に準拠する必要があります。

いくつかの命名規則を共有することは、チームが効率的にコラボレーションすることを可能にする重要なポイントです。 このルールでは、フィールド名が指定された正規表現と一致するかどうかを検証します。

もっと読む

SonarQube squid:S115 定数名は命名規則に従うべきです

共有コーディング規則により、チームは効率的にコラボレーションすることができます。 このルールは、すべての定数名が指定された正規表現と一致するかどうかを検証します。

もっと読む

SonarQube squid:S114 インタフェース名は命名規則に準拠する必要があります

いくつかの命名規則を共有することは、チームが効率的にコラボレーションすることを可能にする重要なポイントです。 このルールは、 インタフェース名は、指定された正規表現と一致する検証します。

もっと読む

SonarQube squid:S113 ファイルの最後に空白の改行を入れるべきです

Gitなどのツールは、ファイルが空行で終了するとうまく機能します。

もっと読む

SonarQube squid:S112 スローする例外が一般的すぎます

ErrorRuntimeExceptionThrowableException等の一般的な例外を使用すると、 本当のシステムエラーと、アプリケーションエラーを区別してハンドリングすることを妨げてしまいます。

もっと読む

Wicket wicket-devutils を使って Session や Datastore の 状況を確認する

Wicket の ページ Cache の具合等を確認できる術がないのか
調べていたところ、wicket/wicket-devutils at master · apache/wicketで、
確認ができそうだったので、試しに使ってみました。
使ってみた結果をメモします。

もっと読む

QueryDsl で実装したいくつかのクエリ

現在、前に JPQL 直で書いていたクエリを、
QueryDsl に書き換えるという不毛な作業をしています。
それなりの数を変換しましたので、
書き換えた JPQL を幾つか記載します。

もっと読む

Django製の Mezzanine で構築されたブログに対して、脆弱性を検証してみる

最近 OWASP ZAP を使用する機会がありましたので、
自ブログにも、OWASP ZAP を使い脆弱性を検証してみたいと思います。

もっと読む

Mezzanine のdashboardにOpenSCAPのHTMLレポートへのリンクを追加する

Linux の セキュリティチェックツールを探していて、
OpenSCAP というツール?があることを知りました。
OpenSCAPにはレポートHTMLファイルの生成機能があり、
Mezzanine の dashboardからこのレポートファイルへのリンクが貼れるか試してみましたので、
その結果を記載します。 1 [1] 正直個人ブログでしか使わない。or 個人ブログですら使わない。かもしれませんが。。

もっと読む

SonarQube squid:S110 クラスの継承ツリーが深すぎます。

継承は、確かにオブジェクト指向プログラミングの最も重要な概念の1つです。以前に作成したクラスを継承することで、基底クラスの属性と動作を、コンパートメント化して再利用する方法です。 しかし、この概念を乱用し、深い継承ツリーを作成すると、非常に複雑で維持できないソースコードにつながる可能性があります。ほとんどの場合、深い継承ツリー読みづらく、変更しづらいです。オブジェクト指向設計では、「コンポジション」がよりもうまくいく場合に「継承」を体系的に使用するべきです。

もっと読む

SonarQube squid:S109 マジックナンバーは使用すべきではありません。

マジックナンバーとは、他のどこにも出現せず、ステートメントで直接使用される数字のことです。マジックナンバーは、例えば、 ループの反復回数、プロパティの値をテストする際などにしばしば使用されます。

もっと読む

SonarQube squid:S108 ネストされたコードブロックは空のブロックにすべきではありません。

ほとんどの場合、 コードの一部に欠落がある場合、コードブロックが空になります。このような空のコードブロックは、処理を実装するか、削除しなければなりません。

もっと読む

SonarQube squid:S107 メソッドのパラメータが多すぎます。

長いパラメータリストは、多数のパラメータをラップするために新しいデータクラスを作成する必要があること、または関数が多くのことを行っていることを示しています。

もっと読む

SonarQube squid:S106 標準出力はログ出力に使用すべきではありません

メッセージをログに記録する際、満たされなければならないいくつかの重要な要件があります。

もっと読む