2013-06-30 11 views
8

Grailsを初めて使用しています。そして私はセッションで作業しなければなりません。私はセッションの文書を見ました。しかし、私のコントローラにコードをどこに置くべきかはわかりません。私は生徒の作成名createStudentのページを持っています。今、私は、このページはユーザーがセッション中にアクセスできるようにしたい。さあ、どうすればいい?ログイン時にユーザーを変数に設定する必要があります。誰でもこのことを教えてくれますか?あなたは、コントローラ内部のsession.getAttribute(key)session.setAttribute(key, value)メソッドを使用することができますgrailsでのセッションの使い方

def index() { 
    def user = session["user"] 
    if (user){ 
     redirect(controller: 'admistratorAction', action: 'createUser') 
    }else{ 
     redirect(controller: 'login', action: 'index') 
    } 

} 

答えて

12

。あるいは、すでにこれをうまく処理しているSpring Security Core Pluginのようなプラグインがあります。

Spring SecurityプラグインhereのPeter Ledbrook氏のチュートリアルがあり、他のチュートリアルのリンクが1つあります。

**編集**

ユーザーが早い時点でのセッションで設定する必要が直接セッションを使用するためには、示唆したように。たとえば、

def setCurrentStudent() { 
    def aStudent = [name: "Student1"] 
    session["user"] = aStudent 
    render "Added $aStudent to the session." 
} 

ログイン時に自動的にこれを行います。その後、現在のユーザーは、いつでもspringSecurityServiceを使用してアクセスできます。

class SomeController { 
    def springSecurityService 
    def someAction = { 
     def user = springSecurityService.currentUser 
     … 
    } 
} 
+0

ご返信ありがとうございます。私はすでに春のセキュリティコアプラグインを使用しています。しかし、私はそれからセッションを使用する方法を知らない。エディタでサンプルのソースコードを提供しています。条件がfalseの場合、ログインページにリダイレクトされます。 trueの場合、createUserページをリダイレクトしません。あなたは今助けてもらえますか? –

+0

私は問題を完全に理解しているかどうかはわかりません。なぜセッションを直接使用する必要がありますか?私はいくつかのコードスニペットで私の答えを更新しました。それが役に立てば幸い。 – osborp

+0

ありがとうございます。私は後でセッションの詳細について作業します。しかし、今はこれが基本の答えです –

関連する問題