/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.ds.tools.hudson.crowd; import hudson.Extension; import hudson.model.Hudson; import hudson.model.User; import java.util.logging.Level; import java.util.logging.Logger; import org.acegisecurity.userdetails.UsernameNotFoundException; import org.springframework.dao.DataAccessException; import com.atlassian.crowd.integration.acegi.user.CrowdUserDetails; import hudson.tasks.UserNameResolver; /** * * @author qxa4177 */ @Extension public class CrowdFullNameResolver extends UserNameResolver { @Override public String findNameFor(User u) { Hudson hudson = Hudson.getInstance(); if (!(hudson.getSecurityRealm() instanceof CrowdSecurityRealm)) return null; try { CrowdUserDetails details = (CrowdUserDetails) hudson.getSecurityRealm() .getSecurityComponents().userDetails.loadUserByUsername(u.getId()); String fullName = details.getFullName(); if (fullName == null) return null; // not found return fullName; } catch (UsernameNotFoundException e) { LOGGER.log(Level.FINE, "Failed to look up Crowd for e-mail address", e); return null; } catch (DataAccessException e) { LOGGER.log(Level.FINE, "Failed to look up Crowd for e-mail address", e); return null; } } private static final Logger LOGGER = Logger.getLogger(CrowdFullNameResolver.class.getName()); }