Разрешить доступ к REST API только для мобильных устройств
Можно разрешить только мобильным устройствам доступ к REST API на моей стороне сервера (Based on spring framework)
?
1 ответ
Я только что нашел решение, не говорите, что это лучший способ, но в любом случае это работает. Для этого я использую библиотеку Spring-Mobile
Создайте новый Interceptor, чтобы проверить тип устройства и узнать, разрешать ли ему доступ к 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
заголовки на немобильной платформе были изменены на мобильные значения, например:
- андроид
- Ipad
- шелк
- ...
Этот перехватчик разрешит доступ.