15.12. Identity コンポーネントの拡張
アプリケーションに特殊なセキュリティ要件がある場合には Identity コンポーネントを拡張する必要があるかもしれません。 次の例では追加の
companyCode フィールドで拡張した Identity コンポーネントによって資格証明が処理される例を示します (通常は Credentials コンポーネントで処理されます)。 APPLICATION の install precedence により、組み込みの Identity に代わりこの拡張された Identity が必ずインストールされるようにします。
@Name("org.jboss.seam.security.identity")
@Scope(SESSION)
@Install(precedence = APPLICATION)
@BypassInterceptors
@Startup
public class CustomIdentity extends Identity {
private static final LogProvider log =
Logging.getLogProvider(CustomIdentity.class);
private String companyCode;
public String getCompanyCode() {
return companyCode;
}
public void setCompanyCode(String companyCode) {
this.companyCode = companyCode;
}
@Override
public String login() {
log.info("###### CUSTOM LOGIN CALLED ######");
return super.login();
}
}
警告
Identity コンポーネントは @Startup の印を付けてください。 これにより SESSION コンテキストが開始された直後に使用できるようになります。これをしないと、特定の Seam 機能が使用するアプリケーションで動作しないことがあります。