Sayem
Sayem

Reputation: 713

Spring Security URL Mapping Grails

I've set up the Spring Security core plugin. I want to use it for user module. After setting up that, all URLs are not working and all my pages are being redirected to the /login/auth page. Where as my default page is home/index. Also how can I use the custom design for the login page?

Here is Config.groovy

grails.plugin.springsecurity.userLookup.userDomainClassName = 'nfp.NfpUser'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'nfp.NfpUserNfpRole'
grails.plugin.springsecurity.authority.className = 'nfp.NfpRole'
//grails.plugin.springsecurity.interceptUrlMap=[ '/': ['IS_AUTHENTICATED_ANONYMOUSLY'], '/**': ['IS_AUTHENTICATED_FULLY'] ]
//grails.plugin.springsecurity.rejectIfNoRule = true

grails.plugin.springsecurity.controllerAnnotations.staticRules = [
    '/':                ['permitAll'],
    '/index':           ['permitAll'],
    '/index.gsp':       ['permitAll'],
    '/assets/**':       ['permitAll'],
    '/**/js/**':        ['permitAll'],
    '/**/css/**':       ['permitAll'],
    '/**/images/**':    ['permitAll'],
    '/**/favicon.ico':  ['permitAll']
]

Upvotes: 1

Views: 992

Answers (1)

Shashank Agrawal
Shashank Agrawal

Reputation: 25797

Instead of using /, use /** and only restrict a few module you want:

grails.plugin.springsecurity.controllerAnnotations.staticRules = [
    '/user/list':       ['ROLE_USER_MODULE'] 
    '/**':              ['permitAll'],
    '/index':           ['permitAll'],
    '/index.gsp':       ['permitAll'],
    '/assets/**':       ['permitAll'],
    '/**/js/**':        ['permitAll'],
    '/**/css/**':       ['permitAll'],
    '/**/images/**':    ['permitAll'],
    '/**/favicon.ico':  ['permitAll']
]

Now, if you have used the grails s2-quickstart nfp NfpUser NfpRole command for setting up the plugin, your Grails app directory must have grails-app/views/login/auth.gsp GSP. You can customize that GSP accordingly to your look and feel.

If you don't find that GSP, copy that GSP from the plugins/spring-security-core-<version>/grails-app/views/login/auth.gsp and customize it.

Upvotes: 1

Related Questions