2012-04-18 39 views
3

我有两个登录页面,一个用于用户,另一个用于管理员。为了知道谁试图登录,我想有一个url模式,如/app/admin/login/app/user/login。我无法通过子域更改。这是一个使用弹簧安全的grails应用程序。所以默认情况下所有的登录请求都会被发送到/j_spring_security_check的网址。我应该怎么做才能将登录提交网址从/j_spring_security_check更改为/app/$context/login,其中$ context可以是用户或管理员?如何获取grails中的url参数spring security custom UserDetailsS​​ervices class?

我面对的另一个问题是,如何获得请求params我的自定义UserDetailsS​​ervices类? params在该类中不可用,所以我不能像在Filters类中那样编写params.context

任何洞察这将是非常有益的。
谢谢。

回答

1
  1. This后可能会帮助解决j_spring_security问题。 该解决方案不是直接用于Grails,但我看到Grails允许您以任何喜欢的方式自定义Spring。

  2. 对于关于params的服务层问题: params是Controller的隐式HttpRequest.parameters对象。一个人不应该期望在服务层有任何Http感知。

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

+0

链接已关闭。 – boring 2012-04-19 04:04:57

+1

它为我工作。它基本上谈论这个:http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilter.html – rk2010 2012-04-19 14:35:34

相关问题