少なくとも、変数に設定されていない場合Controller
にリダイレクトするすべてのフィルターを定義しようとするまで、正常に動作する Grails 2.1.1 アプリケーションがあります...index.gsp
user
session
何を試しても、サーバーの起動時に「/ index」にリダイレクトしたり、「/ index」をレンダリングしたりできません-フィルターを削除してAuthenticationController
、falseパラメーターから「/ index」にリダイレクトすると、すべて次のように機能します魅力...
だから、ここに私がこれまで持っているものがあります:
class AuthenticationFilters {
all(controller:'*', action'*') {
before = {
def user = (User) session.getValue("user")
if(user == null || !user.loginState) {
redirect(controller: 'authentication', action: 'index')
return false
}
}
}
}
class AuthenticationController {
def authenticationService
def index = {
render(view: '/index')
}
def login(LoginCommand cmd) {
if(cmd.hasErrors()) {
redirect(action: index)
return
}
}
....
}
ここで、Filters 定義をコメントアウトするとall
、すべてがうまく機能します。起動時に表示されるページ (index.gsp) を取得しました。エラーがある場合は、問題なくページにLoginCommand
リダイレクトされます。フィルター定義でindex.gsp
コメントすると、 .all
404
Grails : どのコントローラーにもない index.gsp にリダイレクトする Grails 2.0 にアップグレード: /index.gsp が見つからない
でも運が無かった…
Intellij IDEA 11.1.4 Premium (評価版) で開発しています
編集:ブロックで囲まれたクラスのプロパティUser
からオブジェクトを取得しようとしましたが、明らかにプロパティが利用できないという問題に直面していますか? なぜ?session
AuthenticationFilters
try/catch
session
try {
def user = (User) session.getValue("user")
if((user == null || !user.loginState)) {
...
}
} catch(Exception e) {
println("... couldn't get user from session! ${e.getMessage()}")
}
コンソール出力:
... couldn't get user from session! No such property: session for class: grailstest001.AuthenticationFilters
これに関する提案はありますか?