私たちはgrailsでプロジェクトを開発しています。また、ユーザーがどこからウェブサイトにアクセスしているかに応じて、ユーザーにデータを表示したいと考えています。国の場所を保存するフィールドがあります。geoip grails プラグインを使用する。
私の質問は、サイトが超過している国名でセッションを初期化してから、コントローラー/アクションにヒットする前に、たとえば、構成ファイルまたは他の場所でセッションを初期化できるかということです。
Filterでそれを行うことができるはずです。次のように配置されたこのようなgrails-app/conf
ものGeoFilters.groovy
:
class GeoFilters {
def geoIpService
def filters = {
countryCheck(controller:'*', action:'*') {
before = {
if( !session.geolocation ) {
session.geolocation = geoIpService.getLocation( request.remoteAddr )
}
}
}
}
}
(私は試していませんが)geolocation
セッションに存在するかどうかを確認し、存在しない場合はgeoIpService
.