月別アーカイブ: 2012年5月

京都アジャイル勉強会#3

5/11に京都アジャイル勉強会を開催しました。

京都アジャイル勉強会#3

 

今回は、完全に反省。

正直開催前から一抹の不安はあったのですが、それを解消できないまま開催してしまいました。

反省点。

 

  1. 京都アジャイル勉強会の運営者側の仕事を参加者にもしてもらっている感が否めない
  2. ぱらぱらと集まるため、時間通りに参加される初参加の方が時間を持て余す
  3. アジャイル知っている前提で進むことに疑問を抱いていない

 


主催者MTGで@Posauneともう少し当日の絵の擦り合わせが出来ていれば良かったのですが、それができないままだったことに深く反省。

勉強会の前提として、アジャイルサムライに書かれてあるプラクティス(主にインセプションデッキ)をもう一度やり直そうというのが大きくあり、アジャイルサムライ読書会のときにはインセプションデッキの内容を続きで行えなかったので今回はインセプションデッキ〜実際に物をつくるところまでを通しでやってみようという続き物に途中から変わっていきました。

 

それはそれで問題ないのだけれど、そうなった段階で読書会から参加して頂いているほぼ運営メンバーと呼べる人たちだけを参加者として行えば良かった。

 

一般参加を募っているいじょう今回の進め方は完全に身内話に巻き込んでしまった感が否めませんでした。

 

インセプションデッキしているのに、バスに乗っていない人が多数いるみたいな。

 

既に第4回の募集を行っているので、今回の反省を生かしつつ全員バスに乗って出発できる勉強会にしていきたいと思います。

 

MockitoでAbstractクラスの実メソッドを呼び出す方法

UnitテストでMockitoを使用していて、Abstractメソッドの実メソッドを呼び出す方法が分からなかったのでその方法をメモ。

すっごく簡単で、mockオブジェクトを生成する際の引数にMockito.CALLS_REAL_METHODSをつけるだけで生成されたAbstractのmockオブジェクトの実メソッドが呼ばれるようになる。


@Test
public void test_OK_リクエストのリモートユーザにログインユーザIDがセットされていること() {
try {
AbstractXXXXAction action = mock(AbstractXXXXAction.class, Mockito.CALLS_REAL_METHODS);
...
// 認証OKになること
Assert.assertEquals(true, action.verifyUserIdIfOkSetSession(req)); ←ここで実メソッドを呼び出してテストしている
...
} catch(Exception e) {
e.printStackTrace();
Assert.fail("予期しないExceptionがスローされました");
}
}

JBOSSでのBasic認証の方法について

 

開発環境でBasic認証を使用するために、久しぶりに設定したら場所が全然思い出せなかったのでメモ。

使用したバージョンは
JBoss :5.1.0(ここで取得:http://www.jboss.org/jbossas/downloads/)

web.xmlの設定

<security-constraint>
<web-resource-collection>
<web-resource-name>プロジェクトリソース名</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>プロジェクトロール名</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method> ←BASIC認証用
</login-config>
<security-role>
<role-name>プロジェクトロール名</role-name>
</security-role>

定義する順番があるので、それを守らないとEclipse上でエラーが出る。
定義の順番まで覚えていないので、よくエラーが出て怒られてしまう。

jboss-web.xmlの設定

<jboss-web>

<security-domain>java:/jaas/プロジェクトレルム名</security-domain>
….
</jboss-web>

プロジェクトレルム名は、login-config.xmlを記載する際にも使用する

{JBOSS_HOME}/server/default/conf/login-config.xmlの設定

下記の記載をプロジェクト用に追加する。

<application-policy name=”プロジェクトレルム名”>
<authentication>
<login-module code=”org.jboss.security.auth.spi.UsersRolesLoginModule” flag=”required”>
<module-option name=”usersProperties”>props/hoge-users.properties</module-option>
<module-option name=”rolesProperties”>props/hoge-roles.properties</module-option>
</login-module>
</authentication>
</application-policy>

上記で記載したプロパティファイルを下記のディレクトリに作成し、中身をプロジェクト内で使用するBasic認証用に記載する。

{JBOSS_HOME}/server/default/conf/props/hoge-roles.propertiesの設定

ユーザ名=プロジェクトロール名

プロジェクトロール名は、web.xmlで記載したロール名を記載する

{JBOSS_HOME}/server/default/conf/props/hoge-users.propertiesの設定

ユーザ名=パスワード

後は、HttpServletRequestのgetRemoteUser()から認証に成功したユーザ名が取得できる