适合云计算存储的认证
来源:互联网 发布:python爬虫怎么挣钱 编辑:程序博客网 时间:2024/05/13 22:36
听说云计算这个词,是在2007年末。刚开始,感觉挺牛的。
这里,根据这一年的工作,把我常用树型存储的SunOne、OpenLDAP、AD和Domino的认证过程,以java语言方式,分别总结如下:
OpenLDAP
public static void main(String[] args) throws Exception {
Hashtable m_env = new Hashtable(5, 0.75f);
m_env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
m_env.put("java.naming.ldap.version", "3");
m_env.put(Context.PROVIDER_URL, "ldap://192.168.0.60:389");
m_env.put(Context.SECURITY_AUTHENTICATION, "simple");
m_env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=chinautrust,dc=com");
m_env.put(Context.SECURITY_CREDENTIALS, "secure");
LdapContext ctx = null;
try {
// Open an LDAP association
ctx = new InitialLdapContext(m_env, null);
if (ctx == null) {
try {
throw new ConnectException(
"Cann't connetect to ldap server");
} catch (ConnectException e) {
e.printStackTrace();
}
}
} catch (LinkException e1) {
e1.printStackTrace();
}
String rootDn = "ou=person,ou=utrust,dc=chinautrust,dc=com";
String filter = "objectclass=utrustbaseperson";
ArrayList<Object> listDn = new ArrayList<Object>();
try {
SearchControls constraints = new SearchControls();
// Set up search mode
constraints.setCountLimit(50);
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
// Search
NamingEnumeration enumSearch = ctx.search(rootDn, filter, constraints);
constraints = null;
if (enumSearch == null) {
System.out.println("Have no NamingEnumeration.");
}
if (!enumSearch.hasMoreElements()) {
System.out.println("Have no element.");
}
while (enumSearch != null && enumSearch.hasMoreElements()) {
Object obj = enumSearch.nextElement();
if (obj instanceof SearchResult) {
SearchResult si = (SearchResult) obj;
if (!si.getName().equals("")) {
if ("".equals(rootDn) || rootDn == null) {
listDn.add(si.getName());
} else {
listDn.add(si.getName() + "," + rootDn);
}
}
si = null;
}
obj = null;
}
enumSearch = null;
} catch (Exception e) {
try {
throw e;
} catch (Exception e1) {
e1.printStackTrace();
}
}
System.out.println(listDn);
}
SunOne
public static void main(String[] args) throws Exception {
Hashtable m_env = new Hashtable(5, 0.75f);
m_env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
m_env.put("java.naming.ldap.version", "3");
m_env.put(Context.PROVIDER_URL, "ldap://192.168.0.60:389");
m_env.put(Context.SECURITY_AUTHENTICATION, "simple");
m_env.put(Context.SECURITY_PRINCIPAL, "cn=Directory Manager");
m_env.put(Context.SECURITY_CREDENTIALS, "secure");
LdapContext ctx = null;
try {
// Open an LDAP association
ctx = new InitialLdapContext(m_env, null);
if (ctx == null) {
try {
throw new ConnectException(
"Cann't connetect to ldap server");
} catch (ConnectException e) {
e.printStackTrace();
}
}
} catch (LinkException e1) {
e1.printStackTrace();
}
String rootDn = "ou=person,ou=utrust,dc=chinautrust,dc=com";
String filter = "objectclass=utrustbaseperson";
ArrayList<Object> listDn = new ArrayList<Object>();
try {
SearchControls constraints = new SearchControls();
// Set up search mode
constraints.setCountLimit(50);
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
// Search
NamingEnumeration enumSearch = ctx.search(rootDn, filter, constraints);
constraints = null;
if (enumSearch == null) {
System.out.println("Have no NamingEnumeration.");
}
if (!enumSearch.hasMoreElements()) {
System.out.println("Have no element.");
}
while (enumSearch != null && enumSearch.hasMoreElements()) {
Object obj = enumSearch.nextElement();
if (obj instanceof SearchResult) {
SearchResult si = (SearchResult) obj;
if (!si.getName().equals("")) {
if ("".equals(rootDn) || rootDn == null) {
listDn.add(si.getName());
} else {
listDn.add(si.getName() + "," + rootDn);
}
}
si = null;
}
obj = null;
}
enumSearch = null;
} catch (Exception e) {
try {
throw e;
} catch (Exception e1) {
e1.printStackTrace();
}
}
System.out.println(listDn);
}
AD
public static void main(String[] args) throws Exception {
Hashtable m_env = new Hashtable(5, 0.75f);
m_env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
m_env.put("java.naming.ldap.version", "3");
m_env.put(Context.PROVIDER_URL, "ldap://192.168.0.60:389");
m_env.put(Context.SECURITY_AUTHENTICATION, "simple");
m_env.put(Context.SECURITY_PRINCIPAL, "admin");
m_env.put(Context.SECURITY_CREDENTIALS, "simple");
LdapContext ctx = null;
try {
// Open an LDAP association
ctx = new InitialLdapContext(m_env, null);
if (ctx == null) {
try {
throw new ConnectException(
"Cann't connetect to ldap server");
} catch (ConnectException e) {
e.printStackTrace();
}
}
} catch (LinkException e1) {
e1.printStackTrace();
}
String rootDn = "CN=Users,DC=chinautrust,DC=com"
String filter = "(|(objectclass=user)(objectclass=person))";
ArrayList<Object> listDn = new ArrayList<Object>();
try {
SearchControls constraints = new SearchControls();
// Set up search mode
constraints.setCountLimit(50);
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
// Search
NamingEnumeration enumSearch = ctx.search(rootDn, filter, constraints);
constraints = null;
if (enumSearch == null) {
System.out.println("Have no NamingEnumeration.");
}
if (!enumSearch.hasMoreElements()) {
System.out.println("Have no element.");
}
while (enumSearch != null && enumSearch.hasMoreElements()) {
Object obj = enumSearch.nextElement();
if (obj instanceof SearchResult) {
SearchResult si = (SearchResult) obj;
if (!si.getName().equals("")) {
if ("".equals(rootDn) || rootDn == null) {
listDn.add(si.getName());
} else {
listDn.add(si.getName() + "," + rootDn);
}
}
si = null;
}
obj = null;
}
enumSearch = null;
} catch (Exception e) {
try {
throw e;
} catch (Exception e1) {
e1.printStackTrace();
}
}
System.out.println(listDn);
}
Domino
public static void main(String[] args) throws Exception {
Hashtable m_env = new Hashtable(5, 0.75f);
m_env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
m_env.put("java.naming.ldap.version", "3");
m_env.put(Context.PROVIDER_URL, "ldap://192.168.0.60:389");
m_env.put(Context.SECURITY_AUTHENTICATION, "simple");
m_env.put(Context.SECURITY_PRINCIPAL, "admin");
m_env.put(Context.SECURITY_CREDENTIALS, "secure");
LdapContext ctx = null;
try {
// Open an LDAP association
ctx = new InitialLdapContext(m_env, null);
if (ctx == null) {
try {
throw new ConnectException(
"Cann't connetect to ldap server");
} catch (ConnectException e) {
e.printStackTrace();
}
}
} catch (LinkException e1) {
e1.printStackTrace();
}
String rootDn = "";
String filter = "(objectClass=person)";
ArrayList<Object> listDn = new ArrayList<Object>();
try {
SearchControls constraints = new SearchControls();
// Set up search mode
constraints.setCountLimit(50);
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
// Search
NamingEnumeration enumSearch = ctx.search(rootDn, filter, constraints);
constraints = null;
if (enumSearch == null) {
System.out.println("Have no NamingEnumeration.");
}
if (!enumSearch.hasMoreElements()) {
System.out.println("Have no element.");
}
while (enumSearch != null && enumSearch.hasMoreElements()) {
Object obj = enumSearch.nextElement();
if (obj instanceof SearchResult) {
SearchResult si = (SearchResult) obj;
if (!si.getName().equals("")) {
if ("".equals(rootDn) || rootDn == null) {
listDn.add(si.getName());
} else {
listDn.add(si.getName() + "," + rootDn);
}
}
si = null;
}
obj = null;
}
enumSearch = null;
} catch (Exception e) {
try {
throw e;
} catch (Exception e1) {
e1.printStackTrace();
}
}
System.out.println(listDn);
}
说明: 以上OpenLDAP、AD、SunOne和Domino认证的区别,主要是账号密码、过滤条件和根DN三处的区别。
- 适合云计算存储的认证
- 云计算:真的适合你
- 适合运用云计算的应用服务
- 你值得拥有的Apsara Clouder云计算专项技能认证:云存储-对象存储管理与安全
- 考一个适合自己的认证
- 选择的适合自己存储
- 试问什么样的网络存储系统最适合弹性云计算
- 适合创业型团队的云计算方案
- 计算适合打印的图纸大小
- 适合的接地气的存储方案
- 什么样的人适合考取MCSE和MCDBA认证
- 选择适合的Node.js授权认证策略
- 选择适合的Node.js授权认证策略
- UCloud成首个通过乌云认证的云计算平台
- HCNA-Cloud云计算认证
- HCNP-Cloud云计算认证
- 云计算和云存储的关系
- 云计算和云存储的关系
- IT公司的技术面试题('网络技术')
- 程序员的n层楼
- 路在脚下
- sql访问远程的数据库
- 如何能够快速提升工作经验
- 适合云计算存储的认证
- 《富爸爸财务自由之路》读后摘录之(一)
- 打包NET框架的N种方式大比较[收藏]
- 协议__NetBEUI
- SQL Server的链接服务器技术小结
- Python里的多线程
- Struts2中optiontransferselect 使用
- 分拆字符串求和
- Hacking Vim 中文翻译 -- 前言