注これは6.4 EAPでテストされ、変更は、バルブの使用に特にV7のために必要とされ得ます。
カスタムxx.Authenticationメカニズムを記述する必要があります。これを行うには、org.apache.cataline.authenticator.FormAuthenticatorを拡張し、authenticateメソッドをオーバーライドします。
authenticateメソッドは、レルムは、あなたのセキュリティサブシステムの下で、スタンドアロン-XMLに設定することができます
Principal principal = request.getUserPrincipal();
if (principal != null) {
logger.trace("User already authenticated");
return true;
}
Realm realm = context.getRealm();
principal = realm.authenticate("user", (String) null);
register(request, response, principal, "Bearer", "user", null);
return true;
を実行します。
<security-domain name="JWT">
<authentication>
<login-module code="xx.xx.xx.JWTLoginModule" flag="required">
</login-module>
</authentication>
</security-domain>
JWTLoginModuleはhttps://github.com/jwtk/jjwtライブラリを使用するカスタムのLoginModuleです。ログインモジュールに関する情報はhttps://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.3/html/Security_Guide/chap-Login_Modules.htmlにあります。自分自身を作成するには、org.jboss.security.auth.spi.AbstractServerLoginModuleを継承します。
これで、拡張モジュールをorg.picketboxモジュールと同じモジュールの依存関係を持つeapサーバーのmodulesディレクトリに追加する必要があります。
これで、サーバーのセットアップは完了です。作成あなたのWEB-INFディレクトリに
:今、あなたは、この設定を使用するようにアプリケーションを指示する必要があり のjboss-web.xmlのを
<jboss-web>
<security-domain>JWT</security-domain>
<valve>
<class-name>xx.Authentication</class-name>
</valve>
</jboss-web>
とカスタムモジュールにロードするJBossの展開構造として
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="xx.custom"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
最後に、web.xmlファイルのauth-methodを "JWT"に変更します。
これのオープンソースバージョンを作成することに力を入れていますが、それまではこれが必要です。
同じ問題があります。これをカバーしたドキュメントはありません! –
@MatthewCachia私はこれを行うために私自身のモジュールを書きました。私はこれを行う方法の詳細を共有することができます。それをオープンソースにしようとしているが、まだしていない。 – IanWatson
@MatthewCachia下記の回答をご覧ください。 – IanWatson