1

ログインしていないユーザーが、次のような remoteFunction を含むリンクをクリックした場合:

    <a href="#" onclick="${remoteFunction(
           controller: 'book',
           action: 'count',
        id: book.id,
        onSuccess: 'updateBookCount(data,textStatus);'
        )}">
        add count to book
        </a>

アクションの場合:

@Secured("ROLE_USER")
def count() { ... }

ログインしていない場合、ユーザーをログインページにリダイレクトするにはどうすればよいですか?

4

1 に答える 1

0

たぶん、私が現在持っているものよりも優れた解決策があるかもしれませんが、過去に、セッションが期限切れになったときにSpring Securityが行う通常のリダイレクトをajax呼び出しが呼び出さないという問題に遭遇しました。main.gsp の javascript 変数に contextPath を割り当てます。これにより、セッションが期限切れになる 5 秒前にユーザーがログアウトされます。

ヘッダーの main.gsp には次のものがあります。

<script type="text/javascript">
    var contextPath = "${contextPath}";
    var maxTimeout = ${session.getMaxInactiveInterval()};
</script>

私のmain.jsには次のものがあります:

if ( contextPath + "/" != window.location.pathname )
{
    setInterval('checkTimeOut()', 1000 );
}

function checkTimeOut()
{
    maxTimeout -= 1;
    if (maxTimeout <= 5)
        window.location = contextPath+"/logout"

}
于 2012-11-13T14:04:20.463 に答える