我正在尝试使用创建的服务帐户从LDAP验证用户身份.我在ctx = new InitialDirContext(env)上得到以下错误;
[LDAP:错误代码49 - 8009030C:LdapErr:DSID-0C0903A8,注释:AcceptSecurityContext错误,数据2030,v1db1
有人可以帮我理解我哪里出错了吗?
这是我的java文件
/**
*
*/
package com.dei;
import java.util.Hashtable;
import javax.naming.AuthenticationException;
import javax.naming.Context;
import javax.naming.NameNotFoundException;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.SizeLimitExceededException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
public class LdapConnector {
private static final String LDAP_SERVER_PORT = "389";
private static final String LDAP_SERVER = "server";
private static final String LDAP_BASE_DN = "OU=role,OU=roles,OU=de,OU=apps,DC=meta,DC=company,DC=com";
private static final String LDAP_BIND_DN = "cn=service_account";//service account userid provided by LDAP …Run Code Online (Sandbox Code Playgroud) 当我运行sqoop export命令时,我得到以下错误.
这是我要通过sqoop命令导出的内容
00001|Content|1|Content-article|\N|2015-02-1815:16:04|2015-02-1815:16:04|1 |\N|\N|\N|\N|\N|\N|\N|\N|\N 00002|Content|1|Content-article|\N|2015-02-1815:16:04|2015-02-1815:16:04|1 |\N|\N|\N|\N|\N|\N|\N|\N|\N
sqoop命令
sqoop export --connect jdbc:postgresql://10.11.12.13:1234/db --table table1 --username user1 --password pass1--export-dir /hivetables/table/ --fields-terminated-by '|' --lines-terminated-by '\n' -- --schema schema
Run Code Online (Sandbox Code Playgroud)
15/06/09 08:05:16 INFO mapreduce.Job:任务ID:attempt_1431442954745_1210_m_000001_0,状态:FAILED错误:java.io.IOException:无法导出数据,请检查org.apache.sqoop中失败的地图任务日志. map.ucext.TextExportMapper.map(TextExportMapper.java:112)org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:39)org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64)org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)org.apache.hadoop.mapred.MapTask.run (MapTask.java:340)org.apache.hadoop.mapred.YarnChild $ 2.run(YarnChild.java:168)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs( Subject.java:415)org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1594)at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)引起:java.lang .RuntimeException:无法解析输入数据:'\ N" 在duser .__ loadFromFields(duser.java:690)在duser.parse(duser.java:558)在org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:83)... 10更致:java.lang.IllegalArgumentException:时间戳格式必须是yyyy-mm-dd hh:mm:ss [.fffffffff] at java.sql.Timestamp.valueOf(Timestamp.java:202)at duser .__ loadFromFields(duser.java:627) )
你能帮我解决一下吗?
我的UserRepository:
public interface UserRepository extends CrudRepository<User, Integer> {
List<User> findAll(List<Integer> ids);
}
Run Code Online (Sandbox Code Playgroud)
错误:
引起:org.springframework.data.mapping.PropertyReferenceException:找不到类型User的属性findAll
有人可以告诉我如何获取User基于Id 列表的对象列表.
这很有效
@Query(" select new User(id,x,y,z) from User b where b.id in ?1 ")
List<User> findById(List<Integer> id);
Run Code Online (Sandbox Code Playgroud) 我在下面.equals用于String比较,但x不匹配"OU":
String memberOfValue="CN=cn,?OU=ou,?OU=roles,?OU=de,?OU=apps,?DC=meta,?DC=cc,?DC=com";
String[] pairs = memberOfValue.split(",");
for (int i=0;i<pairs.length;i++) {
String pair = pairs[i];
String[] keyValue = pair.split("=");
System.out.println(keyValue[0]);
String x = keyValue[0];
String y = "OU";
System.out.println(x);
System.out.println(x.equals(y));
}
Run Code Online (Sandbox Code Playgroud)
我哪里错了?