Package com.ds.tools.hudson.crowd

Source Code of com.ds.tools.hudson.crowd.CrowdMailAddressResolver

package com.ds.tools.hudson.crowd;

import hudson.model.Hudson;
import hudson.model.User;
import hudson.tasks.MailAddressResolver;

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;

/**
* MailAddressResolver that will look up a mail address via Crowd.
*
* @author justinedelson
*
*/
public class CrowdMailAddressResolver extends MailAddressResolver {

    @Override
    public String findMailAddressFor(User u) {
        // LDAP not active
        Hudson hudson = Hudson.getInstance();
        if (!(hudson.getSecurityRealm() instanceof CrowdSecurityRealm))
            return null;
        try {
            CrowdUserDetails details = (CrowdUserDetails) hudson.getSecurityRealm()
                    .getSecurityComponents().userDetails.loadUserByUsername(u.getId());
            String mail = details.getEmail();
            if (mail == null)
                return null; // not found
            return mail;
        } catch (UsernameNotFoundException e) {
            LOGGER.log(Level.FINE, "Failed to look up LDAP for e-mail address", e);
            return null;
        } catch (DataAccessException e) {
            LOGGER.log(Level.FINE, "Failed to look up LDAP for e-mail address", e);
            return null;
        }
    }

    private static final Logger LOGGER = Logger.getLogger(CrowdMailAddressResolver.class.getName());

}
TOP

Related Classes of com.ds.tools.hudson.crowd.CrowdMailAddressResolver

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.