圣杯:呼吁公共行动重定向到登录页面

Grails : call to public action redirects to login page

本文关键字:重定向 登录 圣杯      更新时间:2023-09-26

我正在从php到grails应用程序进行跨域ajax调用。

我的 php 脚本:

$uid=$_GET['uid'];
function getData($uid)
{
    $dataUrl='http://localhost:8080/profile/user/teacher?id='.$uid;
    $json=file_get_contents($dataUrl);
    print_r($json);
}
getData($uid);

调用此 php 脚本的 Javascript 是

$.getJSON('userdata.php?uid'+1,function(data){
  console.log(data);
});

在这里,当我进行getJSON调用时,它会转到我的应用程序的登录页面,即使我没有检查该特定方法的登录情况。 即它是一种无需登录即可访问的公共方法。

我正在使用SpringSecurity插件进行身份验证管理。

这可能是因为 spring 安全性(可能是您的操作或控制器具有安全注释,或者可能是通过配置中的 url 映射操作是安全的)。

你可以绕过

如果使用批注

@Secured('IS_AUTHENTICATED_ANONYMOUSLY')
def teacher() {
    ....
}

如果在配置中使用 URL 映射

grails.plugins.springsecurity.interceptUrlMap = [
...
'/user/teacher/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
...
]