2011-01-12 8 views
2

gspでコントローラアクションに進むサブミットがあります。そのアクションでは、いくつかの処理を行い、その後、POSTパラメータをgspから別のPOSTメソッドに渡します。これどうやってするの?Grailsセキュリティプラグイン:投稿のリダイレクトとそのデータの受け渡し

基本的に、リダイレクトの呼び出しでPOSTパラメータが特別に扱われますか?私は次のことをしようとしているからです。私はユーザーアカウントを作成するために使用したいいくつかのカスタムgspを持っています。

<form action='save' method='POST' id='createForm' class='cssform' autocomplete='off'> 
<input type='text' class='text' name='j_username'/> 
<input type='password' class='text' name='j_password'/> 
<input type='submit' value='Create' /> 
</form> 

私は自分のコントローラーに、dbでユーザーを作成してログインする保存アクションがあります。

def save = { 
// creating user on DB 
def config = SpringSecurityUtils.securityConfig 
String postUrl = "${request.contextPath}${config.apf.filterProcesse sUrl}" 
redirect(uri: postUrl, params: params) 
} 

j_security_checkにリダイレクトするとログインに失敗します。私はそれがリダイレクトのためだと思っています。

答えて

2

あなたは、リダイレクトを使用することができます。

redirect(action:'xyz', controller:'Abc', params:params) 

かチェーンアクションすることができます

クラスRequestHolderAuthenticationFilter で
chain(action:'abc', controller:'Xyz',model:["myObject":new MyDomain(params)]) 

Grails - Controllers - Redirects

+0

を拡張そこでPOSTパラメータは特別に処理されていませんか? – soybie

1

は、この追加 "super.setPostOnly(偽の);"

パブリッククラスRequestHolderAuthenticationFilterがUsernamePasswordAuthenticationFilter {

@Override 
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException { 
    SecurityRequestHolder.set((HttpServletRequest)request, (HttpServletResponse)response); 
    try { 
     super.setPostOnly(false); 
     super.doFilter(request, response, chain); 
関連する問題