Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在GrailsSpring安全自定义UserDetailsServices类中获取url参数?_Grails_Login_Spring Security_Url Mapping - Fatal编程技术网

如何在GrailsSpring安全自定义UserDetailsServices类中获取url参数?

如何在GrailsSpring安全自定义UserDetailsServices类中获取url参数?,grails,login,spring-security,url-mapping,Grails,Login,Spring Security,Url Mapping,我有两个登录页面,一个用于用户,另一个用于管理员。为了知道谁在尝试登录,我考虑使用一个url模式,如/app/admin/login和/app/user/login。我不能按子域更改。这是一个使用spring安全性的grails应用程序。因此,默认情况下,所有登录请求都发送到/j\u spring\u security\u checkurl。要将登录提交url从/j_spring\u security\u check更改为/app/$context/login,其中$context可以是用户或管

我有两个登录页面,一个用于用户,另一个用于管理员。为了知道谁在尝试登录,我考虑使用一个url模式,如
/app/admin/login
/app/user/login
。我不能按子域更改。这是一个使用spring安全性的grails应用程序。因此,默认情况下,所有登录请求都发送到
/j\u spring\u security\u check
url。要将登录提交url从
/j_spring\u security\u check
更改为
/app/$context/login
,其中$context可以是用户或管理员,我应该怎么做

我面临的另一个问题是,如何获取自定义UserDetailsServices类的请求参数?
params
在该类中不可用,因此我无法像在Filters类中那样编写
params.context

对这一点的任何洞察都会非常有帮助。
谢谢

  • 这篇文章可能有助于解决j_spring_的安全问题。 解决方案不是直接针对Grails的,但我已经看到Grails允许您以任何方式自定义Spring

  • 有关参数的服务层问题: params是控制器的隐式HttpRequest.parameters对象。永远不要期望服务层中有任何Http感知


  • 因此,我们不能在服务层中引用它,这是一件好事。我的建议是将其作为参数传递给服务类方法。

    它对我有用。它基本上是这样讲的: