ejbTimeoutメソッドはローカルで利用するメソッドであり、クライアントからリモートで呼び出されるわけではないのでクライアント識別子を持っていません。このため、ejbTimeoutメソッドでgetCallerPrincipalメソッドを実行すると、コンテナは認証情報のない認証オブジェクトを返却します。