Разрешить доступ к 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
  • шелк
  • ...

Этот перехватчик разрешит доступ.

Другие вопросы по тегам