4
SpringBootとSpringSecurityでRESTAPIを保護する方法は?
REST APIの保護が広くコメントされているトピックであることは知っていますが、自分の基準を満たす小さなプロトタイプを作成できません(そして、これらの基準が現実的であることを確認する必要があります)。リソースを保護する方法やSpringセキュリティをどのように使用するかについては、非常に多くのオプションがあります。自分のニーズが現実的かどうかを明確にする必要があります。 私の要件 トークンベースのオーセンティケーター-ユーザーはその資格情報を提供し、一意で時間制限のあるアクセストークンを取得します。トークンの作成、有効性の確認、有効期限を自分の実装で管理したいと思います。 一部のRESTリソースは公開されます-認証する必要はまったくありません、 一部のリソースには、管理者権限を持つユーザーのみがアクセスできます。 他のリソースは、すべてのユーザーの承認後にアクセスできるようになります。 基本認証を使いたくない Javaコード構成(XMLではない) 現在の状態 私のRESTAPIは非常にうまく機能しますが、今度はそれを保護する必要があります。解決策を探していたときに、javax.servlet.Filterフィルターを作成しました。 @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; String accessToken = request.getHeader(AUTHORIZATION_TOKEN); Account account = accountDao.find(accessToken); if (account == null) { throw new UnauthorizedException(); } chain.doFilter(req, res); } しかし、Springjavax.servlet.filtersを介した例外処理に問題があるため、このソリューションは必要に応じて機能しません。@ControllerAdviceservlet …