Changeset 2080


Ignore:
Timestamp:
Nov 4, 2011, 1:34:30 PM (11 years ago)
Author:
work@…
Message:

shibboleth changes - in development...

Location:
trunk/grails-app
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/authentication/LoginController.groovy

    r2020 r2080  
    1414import org.codehaus.groovy.grails.commons.ConfigurationHolder
    1515
     16import dbnp.authentication.*
     17
    1618class LoginController {
    1719        /**
     
    4749        def auth = {
    4850                def config = SpringSecurityUtils.securityConfig
     51
    4952                if (springSecurityService.isLoggedIn()) {
    5053                        if (params.returnURI) {
     
    5558                        }
    5659                        return
     60                } else if (request.getHeaderNames().find{ it.toLowerCase() == 'useShibboleth' }) {
     61                        // authenticated through shibboleth?
     62                        if (request.getHeaderNames().find{ it.toLowerCase() == 'persistent-id'.toLowerCase() }) {
     63                                // get shibboleth data
     64                                def shibPersistentId    = request.getHeader("persistent-id")
     65                                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
     70                                // does a user exist with this username?
     71                                def user                                = SecUser.findByUsername(shibPersistentId)
     72                                if (!user) {
     73                                        // no, create a new user
     74                                        user = new SecUser()
     75                                        user.username           = shibPersistentId
     76                                        user.enabled            = true
     77                                        user.userConfirmed      = true
     78                                        user.adminConfirmed     = true
     79                                        user.accountExpired     = false
     80                                        user.accountLocked      = false
     81                                        user.save()
     82
     83                                        // refresh user
     84                                        user.refresh()
     85                                }
     86
     87                                // login user
     88                                //user.
     89
     90                        }
    5791                }
    5892
  • trunk/grails-app/controllers/generic/InfoController.groovy

    r1764 r2080  
    1818import dbnp.authentication.SecUser
    1919
    20 @Secured(['ROLE_ADMIN'])
     20//@Secured(['ROLE_ADMIN'])
    2121class InfoController {
    2222        /**
  • trunk/grails-app/views/common/_login_panel.gsp

    r2079 r2080  
    7474                                <sec:ifLoggedIn><g:link controller="logout" action="index">sign out</g:link></sec:ifLoggedIn>
    7575                                <sec:ifNotLoggedIn>
    76                                         <g:if test="${request.getHeaderNames().find{ it == 'UseShibboleth' }}">
    77                                                 <g:if test="${request.getHeaderNames().find{ it == 'Shib-AuthnContext-Class' }}">
    78                                                 Welome ${request.getHeader("displayName")}
    79                                                 </g:if><g:else>
     76                                        <g:if test="${request.getHeaderNames().find{ it.toLowerCase() == 'UseShibboleth'.toLowerCase() }}">
    8077                                                <g:link class="open" controller="login">Log in</g:link>
    81                                                 </g:else>
    8278                                        </g:if>
    8379                                        <g:else>
  • trunk/grails-app/views/login/auth.gsp

    r2077 r2080  
    7676        </div>
    7777</div>
    78 <g:if test="${!request.getHeaderNames().find{ it == 'UseShibboleth' }}">
     78<g:if test="${!request.getHeaderNames().find{ it.toLowerCase() == 'UseShibboleth'.toLowerCase() }}">
    7979<script type='text/javascript'>
    8080        <!--
Note: See TracChangeset for help on using the changeset viewer.