/** * Extracts username from user DN. * <br> * <b>Examples:</b> * <pre> * LdapUtils.extractUserName("UserName") = "UserName" * LdapUtils.extractUserName("UserName@mycorp.com") = "UserName" * LdapUtils.extractUserName("cn=UserName,dc=mycompany,dc=com") = "UserName" * </pre> * @param userDn * @return */ public static String extractUserName(String userDn) { if (!isDn(userDn) && !hasDomain(userDn)) { return userDn; } int domainIdx = ServiceUtils.indexOfDomainMatch(userDn); if (domainIdx > 0) { return userDn.substring(0, domainIdx); } if (userDn.contains("=")) { return userDn.substring(userDn.indexOf("=") + 1, userDn.indexOf(",")); } return userDn; }
/** * Creates a list of principals to be used for user authentication. * @param conf Hive configuration * @param user username * @return a list of user's principals */ public static List<String> createCandidatePrincipals(HiveConf conf, String user) { if (hasDomain(user) || isDn(user)) { return Collections.singletonList(user); } String ldapDomain = conf.getVar(HiveConf.ConfVars.HIVE_SERVER2_PLAIN_LDAP_DOMAIN); if (StringUtils.isNotBlank(ldapDomain)) { return Collections.singletonList(user + "@" + ldapDomain); } List<String> userPatterns = parseDnPatterns(conf, HiveConf.ConfVars.HIVE_SERVER2_PLAIN_LDAP_USERDNPATTERN); if (userPatterns.isEmpty()) { return Collections.singletonList(user); } List<String> candidatePrincipals = new ArrayList<>(); for (String userPattern : userPatterns) { candidatePrincipals.add(userPattern.replaceAll("%s", user)); } return candidatePrincipals; }
private void applyFilter(DirSearch client, String user) throws AuthenticationException { if (filter != null) { if (LdapUtils.hasDomain(user)) { filter.apply(client, LdapUtils.extractUserName(user)); } else { filter.apply(client, user); } } } }
/** * Extracts username from user DN. * <br> * <b>Examples:</b> * <pre> * LdapUtils.extractUserName("UserName") = "UserName" * LdapUtils.extractUserName("UserName@mycorp.com") = "UserName" * LdapUtils.extractUserName("cn=UserName,dc=mycompany,dc=com") = "UserName" * </pre> * @param userDn * @return */ public static String extractUserName(String userDn) { if (!isDn(userDn) && !hasDomain(userDn)) { return userDn; } int domainIdx = ServiceUtils.indexOfDomainMatch(userDn); if (domainIdx > 0) { return userDn.substring(0, domainIdx); } if (userDn.contains("=")) { return userDn.substring(userDn.indexOf("=") + 1, userDn.indexOf(",")); } return userDn; }
/** * Creates a list of principals to be used for user authentication. * @param conf Hive configuration * @param user username * @return a list of user's principals */ public static List<String> createCandidatePrincipals(HiveConf conf, String user) { if (hasDomain(user) || isDn(user)) { return Collections.singletonList(user); } String ldapDomain = conf.getVar(HiveConf.ConfVars.HIVE_SERVER2_PLAIN_LDAP_DOMAIN); if (StringUtils.isNotBlank(ldapDomain)) { return Collections.singletonList(user + "@" + ldapDomain); } List<String> userPatterns = parseDnPatterns(conf, HiveConf.ConfVars.HIVE_SERVER2_PLAIN_LDAP_USERDNPATTERN); if (userPatterns.isEmpty()) { return Collections.singletonList(user); } List<String> candidatePrincipals = new ArrayList<>(); for (String userPattern : userPatterns) { candidatePrincipals.add(userPattern.replaceAll("%s", user)); } return candidatePrincipals; }
private void applyFilter(DirSearch client, String user) throws AuthenticationException { if (filter != null) { if (LdapUtils.hasDomain(user)) { filter.apply(client, LdapUtils.extractUserName(user)); } else { filter.apply(client, user); } } } }