1

https://github.com/spray/spray/blob/76ab89c25ce6d4ff2c4b286efcc92ee02ced6eff/spray-routing/src/main/scala/spray/routing/directives/SecurityDirectives . scala#L55

私は次のようなことをすることを指しています:

val route = { 
  ...
  authorize(userIsAdmin) {
    path("generic" / "admin" / "stuff") { ... } ~
    path("users" / Segment) { u =>
      authorize(canModifyUser) {
        ...
      }
    } ~
    path("quotas") {
      authorize(canModifyQuotas) {
        ...
      }
    }
  }
}

もちろん、これをリファクタリングして、userIsAdmin を canModifyUser および canModifyQuota チェックに含めることもできますが、直交するアクセス権を使用すると、すぐに手に負えなくなる可能性があります。

その行の理由は何ですか?これ以上の承認の失敗を取り消す理由は、私には論理的ではないように思えます。

完全な開示: ネストされたチェックの 1 つが失敗した場合、ルートは実際に拒否されますが、予想される AuthorizationFailedRejection ではなく 404 エラー (EmptyRejection) が返されます。

4

0 に答える 0