【问题标题】:Redirect to URI sends back the POSTed params added in browser's URL bar重定向到 URI 发回浏览器 URL 栏中添加的 POSTed 参数
【发布时间】:2018-04-10 13:57:05
【问题描述】:

Grails 版本:3.3.4, Groovy 版本:2.4.14, JVM版本:1.8.0_161, 库本图 14.04

我写了一个简单的认证表单(最后会通过https POST):

<form action='auth' method='POST' id='loginForm' class='cssform' autocomplete='off'>
<p>
    <label for='j_username'>Login ID</label>
    <input type='text' class='text_' name='j_username' id='j_username' />
</p>
<p>
    <label for='j_password'>Password</label>
    <input type='password' class='text_' name='j_password' id='j_password' />
</p>
<p>
    <input type='submit' value='Login' />
</p>

控制器是:

class LoginController {

def index()  {
    if (session.user?.name == 'test') {
        render view: '/login/youarealreadyin'
    }
    else {
        render view: '/login/auth'
    }
}

def auth() {
    def loginName = params.j_username?.trim()
    def pass = params.j_password?.trim()

    if (loginName == 'test' && pass == 'TEST' ) {
        session.user = [name: loginName]
        redirect uri: '/'
    }
    else {
        render view: '/login/denied'
    }
}

}

正确登录并重定向到 uri: '/' - 我在浏览器的 URL 字段中看到名称和密码:

http://localhost:8080/?j_username=test&j_password=TEST

我可以发誓这在 grails 3 的第一个版本中没有发生...我不记得什么时候...

最好不要在 URL 中将 POST 密码作为 GET 参数发回。

如果我渲染一个特定的视图而不是重定向它就不会发生。

【问题讨论】:

  • 这是一个已知错误,已在 3.3.5 中修复 - 要么降级到 3.3.2,要么等待 3.3.5(应该是本周)github.com/grails/grails-core/pull/10974
  • 埃里希,我不知道。谢谢。这不是紧急情况。等待 3.3.5 听起来不错。如果我要完成,将有 5.5.5。所以我会时不时地问一些奇怪的事情;-)

标签: grails


【解决方案1】:

如果您将此报告为不受欢迎的行为,我们的 GitHub 问题跟踪器https://github.com/grails/grails-core/issues 是一个更好的地方。尽管https://github.com/grails/grails-core/issues/10965 已经报告了此问题,并且看起来修复已在 3.3.5.BUILD-SNAPSHOT 中得到验证并且看起来不错。

如果您只是询问这是否是预期行为,则不是。

【讨论】:

  • 感谢杰夫的洞察力。我不是专业人士,也没有经验直接向问题跟踪器报告我的问题。我第一次在这里问是因为我无法发现自己​​,这已经是已知的并已修复,这确实是一个问题。谢谢你和所有的团队
  • "...对于没有经验的人直接向问题跟踪器报告我的问题" - 我理解如果您不是 100% 确定但不要害怕提交问题,为什么您可能会犹豫。成为新人并不妨碍您识别错误或有改进的想法。欢迎所有意见!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 2010-12-18
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 2012-06-01
相关资源
最近更新 更多