2

私はGroovy Grailsテクノロジーに少し慣れていませんが、これに問題があります

私はこれを見て、プロキシを初期化できませんでした-セッションはありませんが、アプリケーションは古くなりすぎません

config サブフォルダーにある SecurityFilter のセッション オブジェクトにアクセスしようとしています。ユーザーがそのようなアクションを実行する権利を持っているかどうかを確認するために、コントローラーですべてのリクエストをチェックしたかっただけです。

class SecurityFilters {
    def filters = {

    userFilterList(controller:"user", action:"list") {
        before = {
            if (!session.user.accountType.equals("Admin")) {
                redirect(uri: "/")
            }
        }
    }
    userFilterShow(controller:"user", action:"show") {
        before = {
            if (!session.user.accountType.equals("Admin")) {
                redirect(uri: "/")
            }
        }
    }
    userFilterEdit(controller:"user", action:"edit") {
        before = {
            if (!session.user.accountType.equals("Admin")) {
                redirect(uri: "/")
            }
        }
    }

    }
}

しかし、私はこのエラーが発生します

Message: could not initialize proxy - no Session
Line | Method
->>    6 | doCall    in SecurityFilters$_closure1_closure2_closure5
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    186 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|   1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    603 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    636 | run       in java.lang.Thread

この時点に到達する前に、ログイン手順を実行した直後にセッションオブジェクトにユーザーオブジェクトを配置しましたが、セッションオブジェクトが使用できなくなった原因がわかりません

4

1 に答える 1

2

ユーザー オブジェクトの一部のプロパティは取得されませんでした。そのため、ユーザー オブジェクトをセッションに配置したときのログインで、後で使用するために再度取得できるように、必要なプロパティを手動で転送する必要がありました。

session.user = user //not enough
session.user.accountType = user.accountType

これで、セッション オブジェクトからユーザー オブジェクトを取得し、取得したいプロパティを取得できました。

于 2012-07-24T16:59:14.283 に答える