authenticationプラグインをちょっと触る

サインアップ用のformの作り方がオフィシャルなドキュメントに書いてあったので試したのだが、どうもうまくいかない。

<g:if test="${flash.authenticationFailure}">
	Login failed: ${message(code:"authentication.failure."+flash.authenticationFailure.result).encodeAsHTML()}
</g:if>
<auth:form authAction="signup" success="[controller:'portal', action:'newUser']" error="[controller:'portal', action:'signup']">
    User: <g:textField name="login"/><br/>
    Password: <input type="password" name="password"/><br/>
    Confirm Password: <input type="password" name="confirmPassword"/><br/>
    <input type="submit" value="Create account"/>
</auth:form>

上記の記述だとサインアップの成功時にはPortalControllerのnewUserアクションが、失敗時にはsignupアクションが呼ばれるはず。
そのへんをいろいろいじってやってみたがどうやってもerrorのアクションが呼ばれる。

で、ソースを読んだら、用意されているサインアップ用のFormModel、SignUpFormの定義が

package authentication                                                                                                                                          
                                                                                                                                                                
class SignupForm {                                                                                                                                              
        String login                                                                                                                                            
        String email                                                                                                                                            
        String password                                                                                                                                         
        String passwordConfirm                                                                                                                                  
                                                                                                                                                                
        boolean rememberMe                                                                                                                                      
                                                                                                                                                                
        static constraints = {                                                                                                                                  
                login(size:6..40, blank:false, nullable: false)                                                                                                 
                email(email:true, size:6..40, blank:false, nullable: false)                                                                                     
                password(size:6..40, password:true, blank:false, nullable: false)                                                                               
                passwordConfirm(password:true, validator: { val, obj -> obj.password == val })                                                                  
        }                                                                                                                                                       
}                                                                                                                                                               
     

こうなってる。

確認用のパスワードのフィールド名がドキュメントとソースで違ってます。
これでは必ずvaidatorで失敗する。


grailsプラグインはいろいろあるけど、ドキュメントがあまりそろってないし(英語だし)、使用例とかもあまり見つからないのが多いからこういうどうでもいいところでつまづいてしまう。
早くサクサクやれるようになりたいものです。