仅适用于移动设备的REST API



可以仅允许移动设备在我的服务器端访问REST API (Based on spring framework)

我刚找到解决方案,不要说这是最好的方法,但无论如何它都可以。为此,我正在使用Spring-Mobile库

创建一个新的拦截器,检查设备类型并知道允许他访问API是否访问API,代码:

public class MobileDeviceInterceptor extends HandlerInterceptorAdapter {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        Device d = new LiteDeviceResolver().resolveDevice(request);
        if(!d.isNormal()) {
            return true;
        }
        response.sendError(HttpServletResponse.SC_FORBIDDEN);
        return false;
    }
}

在配置类中添加它:

public class AppConfig extends WebMvcConfigurerAdapter {
    ...
    @Bean
    public MobileDeviceInterceptor deviceTypeInterceptor(){
        return new MobileDeviceInterceptor();
    }
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(deviceTypeInterceptor());
    }
}

立即测试它,并且可以工作。

NOTE 您必须知道User-Agent标头是否在非移动平台上更改为移动值:

  • Android
  • iPad
  • 丝绸
  • ...

此拦截器将允许访问。

最新更新