我在使用 FIDO 设备为注册和登录网站的后端代码制作一个简单的 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
.
有一个更好的方法吗?