- Timestamp:
- Nov 4, 2011, 2:57:26 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/dbnp/authentication/LoginController.groovy
r2080 r2081 58 58 } 59 59 return 60 } else if (request.getHeaderNames().find{ it.toLowerCase() == 'useShibboleth' }) {60 } else if (request.getHeaderNames().find{ it.toLowerCase() == 'useShibboleth'.toLowerCase() }) { 61 61 // authenticated through shibboleth? 62 62 if (request.getHeaderNames().find{ it.toLowerCase() == 'persistent-id'.toLowerCase() }) { 63 63 // get shibboleth data 64 def shibPersistentId = request.getHeader("persistent-id") 64 // note: sometimes apache makes the request headers lowercase, sometimes 65 // it doesn't. To make sure it always works we use a case insensitive 66 // finder to find the request header name 67 def shibPersistentId = request.getHeader(request.getHeaderNames().find{ it.toLowerCase() == 'persistent-id'.toLowerCase() }) 65 68 def shibUid = request.getHeader("uid") 66 def shibEmail = request.getHeader( "Shib-InetOrgPerson-mail")67 def shibOrganization = request.getHeader( "schacHomeOrganization")68 def shibDisplayName = request.getHeader( "displayName")69 def shibEmail = request.getHeader(request.getHeaderNames().find{ it.toLowerCase() == 'Shib-InetOrgPerson-mail'.toLowerCase() }) 70 def shibOrganization = request.getHeader(request.getHeaderNames().find{ it.toLowerCase() == 'schacHomeOrganization'.toLowerCase() }) 71 def shibDisplayName = request.getHeader(request.getHeaderNames().find{ it.toLowerCase() == 'displayName'.toLowerCase() }) 69 72 70 73 // does a user exist with this username? … … 74 77 user = new SecUser() 75 78 user.username = shibPersistentId 79 user.password = springSecurityService.encodePassword("myDummyPassword", shibPersistentId) 80 user.email = shibEmail 81 user.displayName = shibDisplayName 82 user.organization = shibOrganization 83 user.uid = shibUid 84 user.shibbolethUser = true 76 85 user.enabled = true 77 86 user.userConfirmed = true … … 79 88 user.accountExpired = false 80 89 user.accountLocked = false 81 user.save() 82 83 // refresh user 84 user.refresh() 90 user.save(failOnError:true) 85 91 } 86 92 87 93 // login user 88 //user. 89 90 } 94 springSecurityService.reauthenticate(user.username, user.password) 95 96 // redirect user 97 if (params.returnURI) { 98 // see basefilters 99 redirect uri: params.returnURI 100 } else { 101 redirect uri: config.successHandler.defaultTargetUrl 102 } 103 } 104 } else { 105 println "nope..." 91 106 } 92 107
Note: See TracChangeset
for help on using the changeset viewer.