使う前提で実装されています。このデフォルトのコンポーネントは勝手に生成されないので、なにか明示的に作る必要があります。その互換実装が必要なのですが、このインターフェース、メソッド数がけっこう多い。メソッドを呼んでいるだけで、他に外から使わているメソッドはひとつもないのです。[]);他のメソッドの大多数は、ユーザーがロール階層構築に利用するために定義されていて、こっちから呼び出さなければ使われることはありません。いくらか呼び出されているメソッドも、内部的にロール階層構築に使う以外の目的では使われていません。なくその小さなインターフェースに依存するという設計が、インターフェース分離原則的に適切だったんじゃないかと思います。}}ロール2つで済むならこんな感じで完了です。必要以上に呼ばれることはありません。エラー確定、という制限はこう書けます。フィルタビヘイビアでまとめるとこうなります。ダックタイプな実装にすり替えても動くのがミソです。あたりのコードを継承しておいてもいいんじゃないでしょうか。upLoginユーザーは見つかりませんでした。