問題タブ [deadbolt-2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Deadbolt2 -> SecureSocial/Silhouette 統合
誰でも Deadbolt2 を Silhouette/SecureSocial と統合できたのでしょうか?
Silhouette Authorization は少し基本的で、Deadbolt2 はすべての要件を満たしていると思います。
ありがとう
java - デッドボルト onAuthFailure で応答ステータスを操作する方法
他のフロントエンド アプリケーションの API を保持する playframewrok サーバー アプリで、認証にデッドボルト ライブラリを使用しています。ユーザーが認証されていないときの onAuthFailure メソッドの MyDeadboltHandler クラスで、次のコードでステータス 403 を返したい:
ただし、フロントエンド アプリケーション (Angular 1.5) のエラー ハンドラーで、エラー ステータス コード -1 の一般的なエラーである応答を取得しています。このメソッドを変更して、応答で通常の 403 エラー ステータスを取得するにはどうすればよいですか?
scala - Play 2.5 タイプの不一致 セッション タイプ
deadbolt2を使用すると、次のコントローラー関数の実装があります。
しかし、次のコンパイラ エラーが発生します。
基本的に、電流request
は私に を与えていますplay.api.mvc.Session
が、私が依存しているライブラリ ( play-authenticate ) は を期待していplay.mvc.Http.Session
ます。2つを変換する方法はありますか?または、必要な Http を取得する別の方法はありますか?
scala - Scala Play 2.5 フォーム bindFromRequest: ここで HTTP リクエストが見つかりませんか?
次のように実装されたコントローラーアクションが1つあります。
上記の実装では、コンパイル エラーが発生します。
ただし、2行目を次のように変更すると:
に
次にコンパイルします...しかし、なぜですか?
scala - Play 2.5 Deadbolt-2 の @subjectPresentOr を Java -> Scala から移行
既存の Java Play 2.5 アプリケーションを Scala に移行していますが、ビューmain.scala.html
で次のデッドボルト 2クラスの使用が見つかりましたsubjectPresentOr
。
すべてのコントローラーとアクションを Scala に移行した後 (およびデッドボルト 2 の依存関係を Java から Scala に変更した後) subjectPresentOr
、 type の暗黙の要求が必要なため、次のコンパイラ エラーが発生しAuthenticatedRequest[Any]
ます。
そして、私にはいくつかの直感があります...たとえば、ユーザーがまだログインしていない場合、deadbolt-2タイプのリクエストはありませんAuthenticatedRequest[_]
が、スーパークラスタイプplay.api.mvc.RequestHeader
であり、そのサブクラスと暗黙的に一致させることはできませんAuthenticatedRequest[_]
。
問題は、そもそもなぜこれが Java バージョンで機能するのかということです。の Java バージョンで@subjectPresentOr
は、暗黙のリクエストは必要ありません :)
Scala バージョンでこれを修正するには、@subjectPresentOr
ブロックをパターン マッチングでラップして、暗黙的なリクエストの動的タイプを検出し、その動的タイプが動的タイプである場合にのみ、ブロックを表示し、そのタイプの絞り込まれたリクエストAuthenticatedRequest[_]
を明示的に渡します。@subjectPresentOr
これは非常にエレガントではありませんが、他の方法はわかりません...
scala - Play-Slick: このデザイン (パターン) を改善することはできますか? また、それを呼び出す方法はありますか?
Play-Slick バージョン 2.5.x と 3.1.x をそれぞれ使用しています。Slick のコード ジェネレーターを使用して、既存のデータベースから Slick モデルを生成します。実際、私は DB 設計主導であり、クラス設計主導ではないことを認めるのは恥ずかしがり屋です。
これは初期設定です:
- 下に生成された Slick モデル
generated.Tables._
- ジェネリック Slick dao 実装
- Generic Slick dao の上に構築されるサービス層
これらは、サービス層の機能をモデルにプラグインできるようにするため、一時的に「プラグ可能なサービス」と呼んだパターンの背後にある力です。
- Play のコントローラーとビューは、(Dao ではなく) Service レイヤーのみを参照する必要があります。
UserService
- 生成されたモデルなど
UserRow
は、Deadbolt-2 のサブジェクトなどのビジネス層インターフェイスに準拠することが期待されますが、直接実装することはできません。UserRow
それを実装できるようにするには、モデル タイプ、UserDao
ビジネス コンテキストなど、 「多すぎる」ものが必要です。 - 一部のメソッドは、モデルインスタンス
UserService
に自然に適用されます。UserRow
loggedUser.roles
loggedUser.changePassword
したがって、私は持っています:
generated.Tables.scala
洗練されたモデル クラス:
dao.UserDao.scala
User モデルに固有の Dao 拡張機能とカスタマイズ:
services.UserService.scala
すべてのユーザー操作を Play アプリケーションの残りの部分にファサードするサービス:
services.PluggableUserService.scala
最後に、サービス実装をモデル タイプに動的にアタッチする実際の「プラガブル」パターン:
最後に、コントローラーで次のことができます。
Pluggable Service オブジェクトに定型コードを書かなくても済むようにする Scala の方法はありますか? Pluggable Service の名前は理にかなっていますか?
java - Deadbolt 2.5 - SBT プロジェクトのインポート中にエラーが発生しました
私の悪い英語のために前もって申し訳ありません..
今日、私は自分のプロジェクトに Deadbolt を実装したいと考えていました。このウェブサイトのドキュメントを読みましたが、最初は問題がありました。
最初の指示で、これらの行を built.sbt ファイルに追加する必要があると書かれています。
IntellijIDEA を使用していますが、プロジェクトを更新すると、このエラーが発生します。
SBT 'Simulateur' プロジェクトの更新に失敗しました エラー: エラー: SBT プロジェクトのインポート中にエラーが発生しました:
[情報] com.typesafe.play#play-doc_2.11;1.2.2 を解決しています ...
[情報] org.pegdown#pegdown;1.4 を解決しています.0 ...
[info] org.parboiled#parboiled-java;1.1.5 を解決しています ...
[info] org.parboiled#parboiled-core;1.1.5 を解決しています ...
[info] org.ow2.asmを解決しています#asm;4.1 ...
[info] org.ow2.asm#asm-tree;4.1 を解決中 ...
[info] org.ow2.asm#asm-analysis;4.1 を解決中 ...
[info] org.ow2 を解決中.asm#asm-util;4.1 ...
[情報] jline#jline;2.12.1 を解決しています ...
[警告] ::::::::::::::::::::: ::::::::::::::::::::::::
[警告] :: 未解決の依存関係 ::
[警告] ::::::::::::::::::::::::::::::::::::::::::::
[警告] :: be.objectify#deadbolt-scala_2.11;2.5.1-SNAPSHOT: 見つかりません
[警告] ::::::::::::::::::::::: :::::::::::::::::::::
[trace] スタック トレースが抑制されました: 完全な出力を得るには、'last *:update' を実行してください。
[トレース] スタック トレースが抑制されました:完全な出力については、「last :ssExtractDependencies」を実行してください。
[エラー] ( :更新) sbt.ResolveException: 未解決の依存関係:be.objectify#deadbolt-scala_2.11;2.5.1-SNAPSHOT: 見つかりません
[エラー] (*:ssExtractDependencies) sbt.ResolveException: 未解決の依存関係: be.objectify #deadbolt-scala_2.11;2.5.1-SNAPSHOT: 見つかりません
[エラー] 合計時間: 18 秒、12 月 20 日に完了しました。2016 22:00:15
Java HotSpot(TM) 64 ビット サーバー VM 警告: オプション MaxPermSize=384M を無視します。サポートは 8.0 で削除されまし
た C:\Users\PCDamien.IntelliJIdea2016.2\system\log\sbt.last.log の完全なログを参照してください
ここで、build.sbt ファイルを表示します。
よろしくお願いいたします。:)