2016-10-04 4 views
1

Ich habe eine einfache Grails-Site (verwendet SSL) auf localhost eingerichtet, Spring-Sicherheit konfiguriert und Benutzer mit s2-quickstart eingerichtet. Dann habe ich es konfiguriert, CAS-Server-Authentifizierung zu verwenden. Es scheint sich zu authentifizieren, wie in den CAS-Protokollen, aber nach der Authentifizierung wird immer wieder die Seite index.gsp der grails-App aufgerufen, anstatt die angeforderte URL. Hier ist die Konfiguration in application.groovy.Grails + SpringSecurity + CAS wird nach Authentifizierung nicht an targetUrl weitergeleitet

// Added by the Spring Security Core plugin: 
grails.plugin.springsecurity.userLookup.userDomainClassName = 'com.helloworld.SecUser' 
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'com.helloworld.SecUserSecRole' 
grails.plugin.springsecurity.authority.className = 'com.helloworld.SecRole' 

grails.plugin.springsecurity.providerNames = ['casAuthenticationProvider'] 

grails.plugin.springsecurity.cas.active = true 
grails.plugin.springsecurity.cas.sendRenew = false 
grails.plugin.springsecurity.cas.loginUri = '/login' 
grails.plugin.springsecurity.cas.serviceUrl = 'https://localhost:8080/' 
grails.plugin.springsecurity.cas.serverUrlPrefix = 'https://localhost:8443/cas' 
grails.plugin.springsecurity.cas.serverUrlEncoding = 'UTF-8' 
grails.plugin.springsecurity.cas.key = 'grails-spring-security-cas' 
grails.plugin.springsecurity.cas.artifactParameter = 'ticket' 
grails.plugin.springsecurity.cas.serviceParameter = 'service' 
grails.plugin.springsecurity.cas.filterProcessesUrl = '/j_spring_cas_security_check' 
grails.plugin.springsecurity.cas.proxyCallbackUrl = 'https://localhost:8080/secure/receptor' 
grails.plugin.springsecurity.cas.proxyReceptorUrl = '/secure/receptor' 
grails.plugin.springsecurity.cas.useSingleSignout = true 


grails.plugin.springsecurity.cas.logout.afterLogoutUrl = 'https://localhost:8443/cas/logout?url=https://localhost:8080/logout' 

grails.plugin.springsecurity.logout.postOnly = false 

    grails.plugin.springsecurity.successHandler.alwaysUseDefaultTargetUrl = false 

grails.plugin.springsecurity.interceptUrlMap = [ 
    '/js/**': ['IS_AUTHENTICATED_ANONYMOUSLY'], 
    '/css/**': ['IS_AUTHENTICATED_ANONYMOUSLY'], 
    '/images/**': ['IS_AUTHENTICATED_ANONYMOUSLY'], 
    '/login/**': ['IS_AUTHENTICATED_ANONYMOUSLY'], 
    '/logout/**': ['IS_AUTHENTICATED_ANONYMOUSLY'], 
    '/secure/receptor': ['IS_AUTHENTICATED_ANONYMOUSLY'], // <- allows CAS to contact the receptor 
    '/**': ['IS_AUTHENTICATED_FULLY'] 
] 

Können Sie vorschlagen, was falsch ist?

Antwort

0

Hmm, der Wert von grails.plugin.springsecurity.cas.serviceUrl sollte mit/j_spring_cas_security_check enden.

Wir verwenden:

grails.plugin.springsecurity.cas.active = true 
grails.plugin.springsecurity.cas.loginUri = "/login" 
grails.plugin.springsecurity.cas.serverUrlPrefix = "<cas server url>" 
grails.plugin.springsecurity.cas.serviceUrl = "<grails server url>/j_spring_cas_security_check" 
grails.plugin.springsecurity.cas.proxyCallbackUrl = null 
grails.plugin.springsecurity.cas.proxyReceptorUrl = null 

Ich habe festgestellt, es auch hilfreich bei minimaler Konfiguration gehen zunächst die Dinge arbeiten nur zu bekommen. Ich habe meinen Grals-Server gesperrt, indem ich verschiedene Plugins überkonfiguriert habe, mit dem, was ich von Anfang an für gute Werte hielt.

+0

hallo, thks für die antwort ... ich entfernte alles aus der application.groovy bis auf die oben genannten und die ersten drei linien aus dem frühjahr sicherheit. – fpos

+0

aber jetzt landet es in einer Redirect-Schleife .. – fpos

+0

hält Schleife zwischen https: // localhost: 8443/cas/login? Service = https% 3A% 2F% 2Flocalhost% 3A8080% 2Fj_spring_cas_security_check und https: // localhost: 8080/j_spring_cas_security_check ? ticket = ST-242-4sL7gAeowKHL9CAl6uyO-cas01.example.org – fpos

Verwandte Themen