Index: lams_central/src/java/org/lamsfoundation/lams/web/ShibLoginServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/Attic/ShibLoginServlet.java,v diff -u -r1.1.2.12 -r1.1.2.13 --- lams_central/src/java/org/lamsfoundation/lams/web/ShibLoginServlet.java 23 Jul 2007 05:40:33 -0000 1.1.2.12 +++ lams_central/src/java/org/lamsfoundation/lams/web/ShibLoginServlet.java 25 Jul 2007 06:40:11 -0000 1.1.2.13 @@ -84,6 +84,7 @@ String username = request.getHeader(Configuration.get(ConfigurationKeys.SHIB_ATTR_LOGIN)); String firstname = request.getHeader(Configuration.get(ConfigurationKeys.SHIB_ATTR_FNAME)); String lastname = request.getHeader(Configuration.get(ConfigurationKeys.SHIB_ATTR_LNAME)); + String email = request.getHeader(Configuration.get(ConfigurationKeys.SHIB_ATTR_EMAIL)); String roles = request.getHeader(Configuration.get(ConfigurationKeys.SHIB_ATTR_ROLES)); String originServerURL = request.getHeader(Configuration.get(ConfigurationKeys.SHIB_ATTR_SERVER_URL)); @@ -116,7 +117,7 @@ } else { try { log.info("Creating new user: "+localUsername); - user = saveNewUser(localUsername, firstname, lastname); + user = saveNewUser(localUsername, firstname, lastname, email); } catch (Exception e) { log.error("Couldn't save new user with username: "+localUsername, e); flagError(request, response); @@ -161,7 +162,7 @@ } // create new User for shibboleth user; should be given a local username for this server - private User saveNewUser(String username, String fname, String lname) { + private User saveNewUser(String username, String fname, String lname, String email) { User user = new User(); user.setLogin(username); user.setPassword(MAGIC_PASSWD); @@ -175,8 +176,11 @@ } else { user.setLastName(username); } - // TODO use other shib attributes - user.setEmail(username); + if (email != null && email.trim().length()>0) { + user.setEmail(email); + } else { + user.setEmail(username); + } user.setAuthenticationMethod((AuthenticationMethod) service.findById(AuthenticationMethod.class, AuthenticationMethod.DB)); user.setChangePassword(false); @@ -198,7 +202,6 @@ org = new Organisation(); org.setName(SHIB_ORG_NAME); org.setDescription(SHIB_ORG_DESC); - org.setParentOrganisation(service.getRootOrganisation()); org.setOrganisationType((OrganisationType) service.findById(OrganisationType.class, OrganisationType.ROOT_TYPE)); org.setOrganisationState((OrganisationState)