简体   繁体   中英

grails spring secruity plugin redirect after login

In grails I am trying to direct user after login to my person controller. I tried to add redirection in config.groovy but it is not working. It still redirects me back to login page.

My config.grooovy Spring security section is below

// Added by the Spring Security Core plugin:
grails.plugins.springsecurity.userLookup.userDomainClassName = 'grail4.User'
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'grail4.UserRole'
grails.plugins.springsecurity.authority.className = 'grail4.Role'

//grails.plugins.springsecurity.successHandler.defaultTargetUrl = 'https://www.yahoo.com'
grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap
grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/index'

grails.plugins.springsecurity.interceptUrlMap = [



 '/people/*':   ['IS_AUTHENTICATED_REMEMBERED'],   

   ]

***grails.plugins.springsecurity.successHandler.defaultTargetUrl ="/people"***

After putting right username password I can access the person class page if I copy & paste the URL. But the login page is not redirecting it to that page.

Following should work -

 grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/people' 

Looks like user is NOT successfully authenticated. You should try registering spring security listener

  1. in Config.groovy

     grails.plugins.springsecurity.useSecurityEventListener = true 
  2. implement a security listener-

     class MySecurityEventListener implements ApplicationListener<ApplicationEvent> { static Log logger = LogFactory.getLog(CGWSecurityEventListener.class); public void onApplicationEvent(final ApplicationEvent e) { if (e instanceof AbstractAuthenticationEvent) { if (e instanceof AbstractAuthenticationFailureEvent) { logger.warn(String.format("Authentication failure", ((AbstractAuthenticationFailureEvent) e).getAuthentication().principal), ((AbstractAuthenticationFailureEvent) e).getException()); } else if (e instanceof AuthenticationSuccessEvent) { logger.debug(String.format("user %s has been authenticated sucessfully", ((AuthenticationSuccessEvent) e).getAuthentication().principal)) } } } 

    }

http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/7%20Events.html#7.2%20Registering%20an%20Event%20Listener

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM