FIDO デバイスを使用して Web サイトに登録およびログインするためのバックエンド コード用の単純な API を作成しているときに、小さな問題に遭遇しました。
私は基本的に yubico u2f ライブラリをラップして、さらに使いやすくしています。私が実行した問題は例外です。API からバックエンド サーバーにcom.yubico.u2f.exceptions.NoEligableDevicesException
例外をスローしたいのですが、ユーザー (バックエンド開発者) が yubico ライブラリを表示またはインポートする必要はありません。
したがって、私の解決策は、その例外を次のようにラップすることでした。
package com.github.dkanellis.fikey.exceptions;
import com.yubico.u2f.data.DeviceRegistration;
public class NoEligableDevicesException extends com.yubico.u2f.exceptions.NoEligableDevicesException {
public NoEligableDevicesException(Iterable<? extends DeviceRegistration> devices, String message, Throwable cause) {
super(devices, message, cause);
}
public NoEligableDevicesException(Iterable<? extends DeviceRegistration> devices, String message) {
super(devices, message);
}
}
そしてthrow
、yubico 例外をラップする例外をユーザーに送信します。問題は、これによりコードが複雑になり、com.yubico.u2f.exceptions.NoEligableDevicesException
例外が発生するたびにそれをキャッチしてcom.github.dkanellis.fikey.exceptions.NoEligableDevicesException
.
これを行うより良い方法はありますか?