Grails Spring Security:登录成功/失败后重定向

Dón*_*nal 15 grails spring-security grails-plugin

我在Grails应用程序中使用Spring Security插件的1.2版本.我希望以下列方式处理登录尝试:

成功

  • 如果尝试访问受保护页面触发了登录,请将其发送到该页面
  • 如果用户"直接"登录,则将其重定向回主页

失败

  • 将它们发送到"再试一次"登录页面,并使用输入的无效登录详细信息填写表单(密码字段除外).此"再试一次"登录页面与他们第一次登录时使用的页面不同

我已经看过插件手册的" 事件"部分,它似乎涵盖了这一点.但是,似乎没有任何方法可以在这些事件处理程序中重定向用户.

Bur*_*ith 20

除了重新显示登录详细信息之外,您基本上描述了它当前的工作方式,这很简单.

当您单击安全链接但未登录时,SavedRequest会在会话中存储a 以跟踪您尝试前往的位置.成功登录后,将检查此对象并从中构建重定向.如果直接进入登录页面,则没有保存的信息,因此会重定向到默认位置.默认情况下,它是app('/')的根,但它是可配置的,例如

grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/home'
Run Code Online (Sandbox Code Playgroud)

要重新显示先前输入的登录名,请使用以下SPRING_SECURITY_LAST_USERNAME会话密钥auth.gsp:

<input type='text' class='text_' name='j_username' id='username'
       value="${session['SPRING_SECURITY_LAST_USERNAME']}" />
Run Code Online (Sandbox Code Playgroud)