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