1

Grails Application Info Pluginを使用して、アクティブなセッションを次のように取得します。

ScopesInfoService scopesInfoService

List<Map<String, Object>> activeSessionsMap = scopesInfoService.getSessionsInfo()
activeSessionsMap.each { sessionMap ->
            def tmpSession = sessionMap.session
}

セッション中のユーザーがリクエストされたページとリクエスト中のページを確認するにはどうすればよいですか?

4

2 に答える 2

4

フィルタを作成し、現在のcontrollerandactionまたはrequest.forwardURIfor 各リクエストを currentLocation などと呼ばれる変数に保存します。セッションにアクセスするときは、それを読んでください。あなたはそれで創造的であり、あらゆるデータを保存することができます. とにかくこれが適切なアプローチであるかどうかはわかりません。

storeLocation(controller: '*', action: '*') {
            before = {
                session.currentLocation = "$controllerName/$actionName"
            }
        }
于 2013-08-16T15:01:33.973 に答える
1

このプラグインはそれを提供しません。自分で何かを開発する必要があります。要求されているセッション、ユーザー、および URI (ページ) に関する情報をデータベースに保存する (このための新しいテーブルを作成する) grails フィルターを作成できます。

サンプルフィルター:

class UserInfoFilters {
    def filters = {
            all(controller:'*', action:'*') {
                before = {
                    SessionUserInfoDomainClass s = new SessionUserInfoDomainClass()
                    // populate your domain class above with the info you need. Examples:
                    s.user = session.user
                    s.controller = controllerName
                    s.save()
                }
            }
    }
}

次に、この SessionUserInfoDomainClass のいくつかの UI ( scaffolgを使用しても) を簡単に使用して、必要な情報を読み取ることができます。

于 2013-08-16T15:07:13.670 に答える