Webプロジェクトのすべてのページに現在の認証済みユーザーを表示します。 私はユーザのアクセスを制限するために@Security.Authenticated
注釈を使用します。 私はuser_id
セッション値を使用して現在のユーザーデータフォームDBを取得する認証ロジック(メソッド)を持っています。Play Frameworkプロジェクトのすべてのアクションとビューの共通コード
ので、解決するためにいくつかの問題があります。私はすべてのコントローラのすべてのアクションの前にそれを実行するためにgetCurrentUser()
方法を置くべき
- ?
currentUser
の値をすべてのビューで使用できるようにするにはどうすればよいですか?- 特定の操作の認証をスキップする方法はありますか。
私が今行っているのは、1つのアクションのためだけです。私は他のアクションのためにこのコードを繰り返したくないのですか?私はそれがプロジェクト全体のために働く必要があります。
- が
currentUser
値を取得するために、すべてのアクションの前にgetCurrentUser()
を実行します。 - ビュー
コントローラにcurrentUser
値を使用可能にする:私はには、このビューのコードを配置するつもりです
@(currentUser: User)
<p>Hello, @currentUser.name</p>
:
@Security.Authenticated(Secured.class)
public class UsersController extends Controller {
public Result index() {
return ok(index.render(getCurrentUser()));
}
private User getCurrentUser() {
return User.find.byId(Long.parseLong(request().username()));
}
}
ビュー(index.scala.html) main.scala.html
すべてのビューで共有されるファイル。
ミドルウェアとしてフィルタがありますが、これらを使用することができます。 – Reactormonk