可以只允许移动设备访问我的服务器端的 REST API(Based on spring framework)
吗?
问问题
454 次
1 回答
0
我刚刚找到了一个解决方案,不要说这是最好的方法,但无论如何它都有效。为此,我正在使用spring-mobile 库
创建一个新的拦截器,检查设备类型并知道是否允许他访问 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());
}
}
立即测试它,它可以工作。
注意您必须知道User-Agent
标头是否在非移动平台上更改为移动值,例如:
- 安卓
- 平板电脑
- 丝绸
- ...
该拦截器将允许访问。
于 2016-12-22T14:26:35.670 回答