public static void main(String[] args)
{
String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory";
String MY_HOST = "ldap://Localhost:1389";
String MGR_DN = "cn=John,ou=Users,o=IT,dc=QuizPortal";
String MGR_PW = "password";
//Identify service provider to use
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX);
env.put(Context.PROVIDER_URL, MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, MGR_DN);
env.put(Context.SECURITY_CREDENTIALS, MGR_PW);
try
{
// Create the initial directory context
InitialDirContext initialContext = new InitialDirContext(env);
System.out.println("Context Sucessfully Initialized");
}
catch(Exception e)
{
System.err.println(e);
}
}
Run Code Online (Sandbox Code Playgroud)
我想问我什么时候MGR_DN = "cn=John,ou=Users,o=IT,dc=QuizPortal"
开始MGR_DN = "uid=103,ou=Users,o=IT,dc=QuizPortal"
.基本上从cn变为uid,我会遇到错误
javax.naming.AuthenticationException: [LDAP: error code 49 - …
Run Code Online (Sandbox Code Playgroud) 我试图通过JNDI更改用户的密码,但我收到以下错误.
javax.naming.directory.SchemaViolationException:[LDAP:错误代码65 - 条目uid = yiwei,ou = Administrator,o = SID,dc = QuizPortal不能修改,因为生成的条目违反了服务器模式:条目uid = yiwei ,ou = Administrator,o = SID,dc = QuizPortal违反Directory Server架构配置,因为它包含属性用户密码,该条目中定义的任何对象类都不允许这样做;
以下是我的代码.
public class ModifyAtt
{
public static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory";
public static String MY_HOST = "ldap://KhooGP-Comp1:1389/dc=QuizPortal";
public static String MGR_DN = "cn=Directory Manager";
public static String MGR_PW = "password";
public static void main(String[] args)
{
//Identify service provider to use
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX);
env.put(Context.PROVIDER_URL, MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, MGR_DN);
env.put(Context.SECURITY_CREDENTIALS, MGR_PW);
try
{ …
Run Code Online (Sandbox Code Playgroud) 我是移动应用程序的新手.基本上我想在室内获取用户的GPS坐标.我在户外检测移动设备没有问题,只有在室内时才会给我带来问题.我试过设定准确度,但无济于事.
有解决方案吗?
这是我的代码:
new Thread()
{
public void run()
{
try
{
Criteria cr= new Criteria();
cr.setHorizontalAccuracy(1000);
LocationProvider lp= LocationProvider.getInstance(cr);
Location l = lp.getLocation(60);
Coordinates c = l.getQualifiedCoordinates();
if(c != null )
{
lat = c.getLatitude();
lon = c.getLongitude();
}
}
catch(Exception e)
{
System.out.println("Error");
}
}
}.start();
Run Code Online (Sandbox Code Playgroud) 我能够通过JNDI读取存储在LDAP中的密码.但结果是一些胡言乱语的人物.那么我该怎么解密呢?
以下是我的代码:
public static void main(String[] args)
{
String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory";
String MY_HOST = "ldap://KhooGP-Comp1:1389";
String MGR_DN = "cn=Directory Manager";
String MGR_PW = "password";
String MY_SEARCHBASE = "dc=QuizPortal";
String MY_FILTER = "uid=yiwei";
String MY_ATTRS[] = {"cn", "uid", "sn", "userpassword"};
//Identify service provider to use
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX);
env.put(Context.PROVIDER_URL, MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, MGR_DN);
env.put(Context.SECURITY_CREDENTIALS, MGR_PW);
try
{
// Create the initial directory context
InitialDirContext initialContext = new InitialDirContext(env);
DirContext ctx = (DirContext)initialContext;
System.out.println("Context Sucessfully Initialized"); …
Run Code Online (Sandbox Code Playgroud) 我遇到过像ARCserve HA这样的程序,它使用Windows会话凭据作为登录,而无需我手动输入用户ID和密码.这是如何运作的??该程序实际上能够获取我的窗口的用户ID和密码?
由于我当前用Java编写的项目要求我做类似的事情,使用Windows会话凭证作为登录.
任何人都可以向我提供有关如何进行此操作的任何说明吗?任何方向将不胜感激.
编辑
也许我还应该包括ARCserve HA启动IE,从那里我选中" windows session credentials " 选项作为登录.希望这些额外的信息可能有所帮助.
凯文