拦截客户端的安全URL

时间:2011-09-15 11:12:37

标签: jquery ajax playframework security

我为主页面实现了一个不错的弹出模式登录对话框。当我点击我正在使用的链接时:

$(document).ready(function() {
        $('#loginButton').click(function(e) {
            $.ajax({
                url: "@{Secure.login()}",
                success: function(data) {
                    $("#myModal").html(data + '<a class="close-reveal-modal">&#215;</a>');
                    $('#myModal').reveal();
                }
            });
        });
    });

我的应用程序设计为某些控制器需要用户进行身份验证,并在登录视图之前重定向。

我想要做的是,如果用户正在访问安全控制器,他需要查看登录弹出屏幕,而不是重定向到视图,以便我有相同的用户体验。

我已经收到谷歌小组的建议:

  

a)拦截已经存在的所有安全链接是最好的   客户端使用一些JavaScript并显示您的模态对话框。这是   独立于安全模块提供的内容。

但是不知道如何实现这一点,或者是否已经有了解决方案。

1 个答案:

答案 0 :(得分:0)

您的问题实际上来自jQuery类别,而不是ajax或playframework或web-security。如果您的所有安全链接都以https://

开头
    $('a[href^="https://"]').click(// function here);

如果您的链接标有.secure class:

    $('a.secure').click(// function here);

该函数将显示弹出模式登录对话框,返回false并在成功回调结束时将用户重定向到原始链接url。