Grails アプリでは、次のようにユーザーが選択した言語 (URL に追加された "...?lang=xx_XX") を正常に取得しています。
def locale = RequestContextUtils.getLocale(request)
springsecurity を使用して、正常に動作する特別なログアウト ハンドラーをセットアップしました
grails.plugins.springsecurity.logout.handlerNames = ['securityContextLogoutHandler', 'myLogoutHandler']
myLogoutHandler でユーザーが選択したロケールを取得する必要がありますが、以下は機能しません (ユーザーが選択したロケールではなく、ブラウザーのデフォルトのロケールのみが表示されます)
class MyLogoutHandler implements LogoutHandler {
void logout(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) {
def locale2 = RequestContextUtils.getLocale(httpServletRequest);
}
}
また、次の方法でセッション ロケールを取得しようとしました。
RequestContextHolder.currentRequestAttributes().getProperties()
しかし、それは同じ結果をもたらします。MyLogoutHandler からロケールを取得する方法を知っている人はいますか?