2016-04-12 3 views
0

Ich benutze Spring Security Plugin für die Anmeldung in der Anwendung. Die Spring Security hat standardmäßig auth.gsp Seite für die Anmeldung. Ich habe meine eigene auth.gsp Seite erstelltGrails -% 252F in der URL

auth.gsp

<g:form action='${postUrl.encodeAsURL()}' method='POST' id='loginForm' autocomplete='off' class="login-form"> 
      <g:textField class="field" name="username" value="${params.userName}"/> 
      <g:passwordField class="field" name="password"/> 
      <button>login</button> 
      <p class="message"><a href="elb/index">Forgot Password?</a></p> 
      <p class="message"><a id="next" name="next" href="#">Have Invitation Code?</a></p> 
     </g:form> 

Das Problem weitere Sache hinzuzufügen ist, dass ${postUrl} enthält %252F in der URL. Hier ist die komplette URL: http://localhost:8080/login/%252Flogin%252Fauthenticate/loginForm. Ich habe versucht, jede mögliche Antwort auf Stackoverflow gegeben, aber nichts hat funktioniert.

Antwort

2

Versuchen Sie es mit

<g:form url='${postUrl}' method='POST' id='loginForm' autocomplete='off' class="login-form"> 
     <g:textField class="field" name="username" value="${params.userName}"/> 
     <g:passwordField class="field" name="password"/> 
     <button>login</button> 
     <p class="message"><a href="elb/index">Forgot Password?</a></p> 
     <p class="message"><a id="next" name="next" href="#">Have Invitation Code?</a></p> 
    </g:form> 

Wenn Sie fertig sind Urls Einstellung, verwenden Sie 'url' Attribut. Wenn Sie "Aktion" verwenden, müssen Sie einen Aktionsnamen festlegen.

Verwenden Sie auch nicht encodeAsURL(). encodeAsURL bedeutet, dass Sie Sonderzeichen wie '/', '?' die durch '% ..'Entitäten ersetzt werden.

+0

Die 'encodeAsUrl()' sollte in diesem Fall nicht verwendet werden. Es sollte stattdessen '$ {postUrl}' sein. –

+1

Ja @JoshuaMoore Sie haben Recht. Ich habe gerade geschnitten, aber du bist schnell. –

Verwandte Themen