1
有可能只允许移动设备访问我的服务器端的REST API (Based on spring framework)
?只允许访问REST API移动设备
有可能只允许移动设备访问我的服务器端的REST API (Based on spring framework)
?只允许访问REST API移动设备
我刚刚找到了解决方案,不要说这是最好的方法,但无论如何它的工作原理。对于我使用spring-mobile library
创建一个新的拦截,检查设备类型和了解,让他访问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
头是在非移动平台变成了移动的值,例如:
这个拦截器将允许访问。
不,这是不可能的。请访问此链接:http://softwareengineering.stackexchange.com/questions/219028/how-to-safeguard-a-rest-api-for-only-trusted-mobile-applications。 – Bhavin
@Bhavin是3年前,也许有些事情发生了变化(: – GVArt