私の仕事は、送信リクエストを使用してから XML を取得することです。
例: リクエスト: /api/ext/data.xml レスポンス: XML
アプリケーションは Spring MVC を使用しているため、コントローラー メソッドを記述しただけで、すべて正常に動作しますが、承認も実装する必要があります。このアプリは Spring セキュリティを使用していません。
私は何をすべきか?セッションを使用してユーザー認証データを保存する必要がありますか?
私の仕事は、送信リクエストを使用してから XML を取得することです。
例: リクエスト: /api/ext/data.xml レスポンス: XML
アプリケーションは Spring MVC を使用しているため、コントローラー メソッドを記述しただけで、すべて正常に動作しますが、承認も実装する必要があります。このアプリは Spring セキュリティを使用していません。
私は何をすべきか?セッションを使用してユーザー認証データを保存する必要がありますか?
引き続き Apache Shiro や Spring Security を検討する必要があります。ただし、Spring セキュリティ (およびコンテナ セキュリティ) は、REST API セキュリティに対してあまり友好的ではありません。AuthenticationEntryPoint
Spring の場合、 でのリダイレクトを回避するためにカスタムを実装する必要があります403
。Shiro は REST API の方が少し楽かもしれません。
依存関係や複雑さなしで自分でやりたい場合は、サーブレットフィルターの作成を検討するか、コンテナーセキュリティを活用する必要があります。妥協点は、このSecurityFilter プロジェクトである可能性があります。ただし、ロール、ACL などが必要な場合は、Shiro または Spring Security を真剣に再検討する必要があります。
また、Amazon Web Services のように独自の HmacSha1 モデル (署名付きリクエスト) を実装するのはどうでしょうか?
基本: クライアントはシークレット アクセス キー (SAK) でリクエストに署名し、データを期限切れにして、hmac コードを取得します。次に、クライアントは POST を介して、リクエストに加えて、hmac コードや期限切れデータなどのヘッダーと必要なものを送信します。次に、サーバーはコントローラー (またはインターセプター) で要求を取得し、SAK と有効期限で署名し、取得した hmac を比較してユーザーを検証します。