ServerAuthModule
カスタムログインシステムを使用するために、独自の を作成しようとしています。
すべてが正しいことを理解していれば、コンテナーはすべての着信要求に対して validateRequest メソッドを呼び出し、SAM は資格情報をチェックして、ユーザー名とユーザー グループ (資格情報が正しい場合) を介してコンテナーに通知します。 CallbackHandler。
public class MySAM implements ServerAuthModule {
@Override
public AuthStatus validateRequest(MessageInfo messageInfo, Subject clientSubject, Subject serviceSubject) throws AuthException {
// check user credentials
...
// set username and groups
CallerPrincipalCallback cpCallback = new CallerPrincipalCallback(clientSubject, username);
GroupPrincipalCallback gpCallback = new GroupPrincipalCallback(clientSubject, groups);
callbackHandler.handle(new Callback[]{cpCallback, gpCallback}
return AuthStatus.SUCCESS;
}
...
}
私の問題は、ユーザーがログインしたときに、ユーザーがどのグループに属しているかがわからないことです。ユーザーが特定のグループに属しているかどうかのみを確認できます。メソッド内のグループを含む配列をコンテナに与える代わりに、ユーザーが特定のグループに属しているかどうかを確認できるメソッドをコンテナに与えることは何とか可能validateRequest
ですか?
boolean isInGroup(String username, String group) {
// ask backend system
}