1

サーバー側でモバイル デバイスのみが REST API にアクセスできるようにすることはできます(Based on spring framework)か?

4

1 に答える 1

0

解決策を見つけたばかりです。それが最善の方法だとは言いませんが、とにかく機能します。そのために私は春のモバイルライブラリを使用しています

新しいインターセプターを作成して、デバイスの種類を確認し、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
  • シルク
  • ...

このインターセプターはアクセスを許可します。

于 2016-12-22T14:26:35.670 に答える