在gsp上,我有一个转到控制器动作的提交。在该操作中,我想进行一些处理,然后将post参数从gsp传递到另一个POST方法。我怎么能这样做?
基本上,在重定向调用中是否专门处理了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会导致登录失败。我怀疑这是由于重定向。
答案 0 :(得分:2)
您可以使用重定向:
redirect(action:'xyz', controller:'Abc', params:params)
或者你可以连锁行动:
chain(action:'abc', controller:'Xyz',model:["myObject":new MyDomain(params)])
答案 1 :(得分:1)
在RequestHolderAuthenticationFilter类中 添加这个“super.setPostOnly(false);”
公共类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);