回答
您可以使用CompoundName JNDI
Name dn = parser.parse("CN=x,OU=y,O=z,ST=v,C=COM");
dn.get(dn.size());
的舉一個例子來看看這個link
編輯:增加了一個工作示例
public static void main(String args[]){
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389");
Context ctx = new InitialContext(env);
NameParser parser = ctx.getNameParser("");
Name dn = parser.parse("CN=x,OU=y,O=z,ST=v,C=COM");
System.out.println(dn.size() + dn.get(dn.size() -1 ));
}catch(NamingException e) {
e.printStackTrace();
}
}
要創建上下文你但是必須連接到ldap服務器。它很容易做一個字符串解析並獲得第一個rdn。但不要去那裏! DN有不同的格式。在DCE格式化DN將被分離爲CN = X/OU = Y/O = Z/ST = V/C = COM
編輯:添加另一示例,而不連接到LDAP服務器
import javax.naming.ldap.LdapName;
....
public static void main(String args[]){
try {
LdapName dn = new LdapName("CN=x,OU=y,O=z,ST=v,C=COM");
System.out.println(dn.get(dn.size() - 1));
}catch (InvalidNameException e) {
System.out.println(e.getMessage());
}
}
嘗試{NameParser parser = ctx.getNameParser(「」);名稱dn = parser.parse(「cn = John,ou = People,o = JNDITutorial」); dn.remove(1); // ou =人物dn.add(0,「c = us」); // cn = John,o = JNDITutorial,c = us dn.add(「cn = fs」); // cn = fs,cn = John,o = JNDITutorial,c = us} catch(NamingException e){}什麼是ctx? – Mattan 2011-04-27 08:03:11
@Mattan它是一些描述的javax.naming.Context。 – EJP 2011-04-27 08:31:33
我無法理解如何解析它。我有字符串,沒有別的。我怎樣才能從整個字符串中獲取cn? – Mattan 2011-04-27 09:08:06
這裏可以使用簡單的正則表達式嗎?
沒有嘗試過了,從我的腦海:
Pattern pattern = Pattern.compile("CN=([^\\,])\\,")
Matcher matcher = pattern.matcher(text);
if (matcher.find())
{
for (int index=1; index<matcher.groupCount();index++)
{
String cnValue = matcher.group(index);
}
}
工作Omnaest的回答版本:
Pattern pattern = Pattern.compile("CN=([^\\,]*)");
Matcher matcher = pattern.matcher(text);
String cnValue = matcher.find() ? matcher.group(1) : null;
- 1. 安全證書
- 2. 理解服務器安全證書
- 3. 解析數據,安全證書X509v3擴展
- 4. 解析X509證書
- 5. 解析X509證書
- 6. 關於WCF安全 - 證書
- 7. SOAP安全標題 - 證書?
- 8. 存儲API證書安全
- 9. 'res'證書 - 是否安全?
- 10. Google安全證書錯誤
- 11. 安全證書問題
- 12. 幫助 - MVC證書安全
- 13. WCF安全性 - 證書
- 14. IceCast SSL證書不安全
- 15. Java生成安全證書
- 16. WCF,安全和證書
- 17. filepicker.makeDropPane的安全證書
- 18. 數字證書安全
- 19. 證書WCF消息安全
- 20. 用bouncycastle解析證書
- 21. 證書解析器在android
- 22. 發送郵件在vb.net與安全/安全證書
- 23. 在解析安全
- 24. 證書安裝安全警告解決方法?
- 25. 如何安全解析SAML元數據?
- 26. 如何安全地解析字符串?
- 27. Java X509證書解析和驗證
- 28. 如何在EasyPHP中安裝安全證書?
- 29. 如何使用類型安全配置解析JSON數組?
- 30. 如何解析X509 SSL證書自定義擴展「證書策略」?
BTW:Java 5.0中已壽命結束了一年多了,你有沒有考慮使用Java 6? – 2011-04-27 08:18:53
我看到在JDK5中有這個問題的解決方案,但我無法升級我的jdk。 – Mattan 2011-04-27 09:10:40
我甚至不會建議你升級到Java 5.0。 ;)但如果你不能升級... – 2011-04-27 09:12:14