//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public java.util.Collection findUserAndRoleDataByQuery(String paramString) throws javax.ejb.EJBException public virtual System.Collections.ICollection findUserAndRoleDataByQuery(string paramString) { LdapLoginUtil ldapLoginUtil = new LdapLoginUtil(Configuration.Options); List <object> arrayList = new List <object>(); try { InitialLdapContext initialLdapContext = ldapLoginUtil.makeLdapInitContext(); SearchControls searchControls = new SearchControls(); searchControls.SearchScope = 2; searchControls.ReturningAttributes = this.attrIDs; searchControls.TimeLimit = 10000; string str1 = Configuration.Options.get("rolesCtxDN").ToString(); string str2 = str1; if (Configuration.Options.get("rolesPlaceCtxDN") != null) { str2 = Configuration.Options.get("rolesPlaceCtxDN").ToString(); } string str3 = "(&(objectclass=person)(|(sAMAccountName=*" + paramString + "*)(name=*" + paramString + "*))(|(memberOf=CN=" + "CESAdmin" + "," + str2 + ")(memberOf=CN=" + "CESDatabaseUser" + "," + str2 + ")))"; NamingEnumeration namingEnumeration = initialLdapContext.search(str1, str3, searchControls); while (namingEnumeration.hasMoreElements()) { arrayList.Add(resultToUserRolesData((SearchResult)namingEnumeration.nextElement(), initialLdapContext, ldapLoginUtil, false)); } initialLdapContext.close(); } catch (Exception exception) { throw new EJBException(exception.Message); } return(arrayList); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: protected String bindDNAuthentication(javax.naming.ldap.InitialLdapContext paramInitialLdapContext, String paramString1, String paramString2, String paramString3, String paramString4) throws javax.naming.NamingException protected internal virtual string bindDNAuthentication(InitialLdapContext paramInitialLdapContext, string paramString1, string paramString2, string paramString3, string paramString4) { SearchControls searchControls = new SearchControls(); searchControls.SearchScope = 2; searchControls.ReturningAttributes = new string[0]; searchControls.TimeLimit = 5000; NamingEnumeration namingEnumeration = null; object[] arrayOfObject = new object[] { paramString1 }; namingEnumeration = paramInitialLdapContext.search(paramString3, paramString4, arrayOfObject, searchControls); if (!namingEnumeration.hasMore()) { namingEnumeration.close(); throw new NamingException("Search of baseDN(" + paramString3 + ") found no matches"); } SearchResult searchResult = (SearchResult)namingEnumeration.next(); string str1 = searchResult.Name; string str2 = null; if (searchResult.Relative == true) { str2 = str1 + "," + paramString3; } else { throw new NamingException("Can't follow referal for authentication: " + str1); } namingEnumeration.close(); namingEnumeration = null; InitialLdapContext initialLdapContext = constructInitialLdapContext(str2, paramString2); initialLdapContext.close(); return(str2); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public UserAndRolesData getUserAndRoleData(String paramString) throws javax.ejb.EJBException public virtual UserAndRolesData getUserAndRoleData(string paramString) { LdapLoginUtil ldapLoginUtil = new LdapLoginUtil(Configuration.Options); UserAndRolesData userAndRolesData = null; try { InitialLdapContext initialLdapContext = ldapLoginUtil.makeLdapInitContext(); SearchControls searchControls = new SearchControls(); searchControls.SearchScope = 2; searchControls.ReturningAttributes = this.attrIDs; searchControls.TimeLimit = 10000; string str1 = Configuration.Options.get("rolesCtxDN").ToString(); string str2 = "(&(objectclass=person)(sAMAccountName=" + paramString + "))"; NamingEnumeration namingEnumeration = initialLdapContext.search(str1, str2, searchControls); if (namingEnumeration.hasMoreElements()) { userAndRolesData = resultToUserRolesData((SearchResult)namingEnumeration.nextElement(), initialLdapContext, ldapLoginUtil, true); } else { throw new RemoteException(paramString + " was not found, it may have been deleted."); } initialLdapContext.close(); } catch (Exception exception) { Console.WriteLine(exception.ToString()); Console.Write(exception.StackTrace); throw new EJBException(exception.Message); } return(userAndRolesData); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public boolean checkUserExists(String paramString) throws javax.ejb.EJBException public virtual bool checkUserExists(string paramString) { bool @bool = false; LdapLoginUtil ldapLoginUtil = new LdapLoginUtil(Configuration.Options); try { InitialLdapContext initialLdapContext = ldapLoginUtil.makeLdapInitContext(); SearchControls searchControls = new SearchControls(); searchControls.SearchScope = 2; searchControls.ReturningAttributes = new string[0]; searchControls.TimeLimit = 10000; string str1 = Configuration.Options.get("rolesCtxDN").ToString(); string str2 = "(&(objectclass=person)(sAMAccountName=" + paramString + "))"; NamingEnumeration namingEnumeration = initialLdapContext.search(str1, str2, searchControls); if (namingEnumeration.hasMoreElements()) { @bool = true; } namingEnumeration.close(); initialLdapContext.close(); } catch (Exception exception) { throw new EJBException(exception.Message); } return(@bool); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private javax.naming.ldap.LdapContext getLdapContextUsingStartTls(org.apache.shiro.realm.ldap.LdapContextFactory ldapContextFactory, Object principal, Object credentials) throws javax.naming.NamingException private LdapContext GetLdapContextUsingStartTls(LdapContextFactory ldapContextFactory, object principal, object credentials) { JndiLdapContextFactory jndiLdapContextFactory = ( JndiLdapContextFactory )ldapContextFactory; Dictionary <string, object> env = new Dictionary <string, object>(); env[Context.INITIAL_CONTEXT_FACTORY] = jndiLdapContextFactory.ContextFactoryClassName; env[Context.PROVIDER_URL] = jndiLdapContextFactory.Url; LdapContext ctx = null; try { ctx = new InitialLdapContext(env, null); StartTlsRequest startTlsRequest = new StartTlsRequest(); StartTlsResponse tls = ( StartTlsResponse )ctx.extendedOperation(startTlsRequest); tls.negotiate(); ctx.addToEnvironment(Context.SECURITY_AUTHENTICATION, jndiLdapContextFactory.AuthenticationMechanism); ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, principal); ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, credentials); // do a lookup of the user to trigger authentication ctx.lookup(principal.ToString()); return(ctx); } catch (IOException e) { LdapUtils.closeContext(ctx); _securityLog.error(WithRealm("Failed to negotiate TLS connection with '%s': ", Server(jndiLdapContextFactory), e)); throw new CommunicationException(e.Message); } catch (Exception t) { LdapUtils.closeContext(ctx); _securityLog.error(WithRealm("Unexpected failure to negotiate TLS connection with '%s': ", Server(jndiLdapContextFactory), t)); throw t; } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: protected void rolesSearch(javax.naming.ldap.InitialLdapContext paramInitialLdapContext, javax.naming.directory.SearchControls paramSearchControls, String paramString1, String paramString2, int paramInt1, int paramInt2) throws javax.naming.NamingException protected internal virtual void rolesSearch(InitialLdapContext paramInitialLdapContext, SearchControls paramSearchControls, string paramString1, string paramString2, int paramInt1, int paramInt2) { object[] arrayOfObject = new object[] { paramString1, paramString2 }; namingEnumeration = paramInitialLdapContext.search(this.rolesCtxDN, this.roleFilter, arrayOfObject, paramSearchControls); try { while (namingEnumeration.hasMore()) { SearchResult searchResult = (SearchResult)namingEnumeration.next(); string str = canonicalize(searchResult.Name); if (paramInt2 == 0 && this.roleAttributeIsDN && !string.ReferenceEquals(this.roleNameAttributeID, null)) { if (this.parseRoleNameFromDN) { parseRole(str); } else { string[] arrayOfString1 = new string[] { this.roleNameAttributeID }; Attributes attributes1 = paramInitialLdapContext.getAttributes(str, arrayOfString1); Attribute attribute = attributes1.get(this.roleNameAttributeID); if (attribute != null) { for (sbyte b = 0; b < attribute.size(); b++) { string str1 = (string)attribute.get(b); addRole(str1); } } } } string[] arrayOfString = new string[] { this.roleAttributeID }; Attributes attributes = paramInitialLdapContext.getAttributes(str, arrayOfString); if (attributes != null && attributes.size() > 0) { Attribute attribute = attributes.get(this.roleAttributeID); for (sbyte b = 0; b < attribute.size(); b++) { string str1 = (string)attribute.get(b); if (this.roleAttributeIsDN && this.parseRoleNameFromDN) { parseRole(str1); } else if (this.roleAttributeIsDN) { string str2 = str1; string[] arrayOfString1 = new string[] { this.roleNameAttributeID }; try { Attributes attributes1 = paramInitialLdapContext.getAttributes(str2, arrayOfString1); Attribute attribute1 = attributes1.get(this.roleNameAttributeID); if (attribute1 != null) { for (sbyte b1 = 0; b1 < attribute1.size(); b1++) { str1 = (string)attribute1.get(b1); addRole(str1); } } } catch (NamingException) { } } else { addRole(str1); } } } if (paramInt2 < paramInt1) { rolesSearch(paramInitialLdapContext, paramSearchControls, paramString1, str, paramInt1, paramInt2 + 1); } } } finally { if (namingEnumeration != null) { namingEnumeration.close(); } } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public java.util.List<String> findRolesOfUser(javax.naming.ldap.InitialLdapContext paramInitialLdapContext, javax.naming.directory.SearchControls paramSearchControls, String paramString1, String paramString2, int paramInt1, int paramInt2) throws javax.naming.NamingException public virtual IList <string> findRolesOfUser(InitialLdapContext paramInitialLdapContext, SearchControls paramSearchControls, string paramString1, string paramString2, int paramInt1, int paramInt2) { this.userRoles = new List <object>(); rolesSearch(paramInitialLdapContext, paramSearchControls, paramString1, paramString2, paramInt1, paramInt2); return(this.userRoles); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private UserAndRolesData resultToUserRolesData(javax.naming.directory.SearchResult paramSearchResult, javax.naming.ldap.InitialLdapContext paramInitialLdapContext, LdapLoginUtil paramLdapLoginUtil, boolean paramBoolean) throws Exception private UserAndRolesData resultToUserRolesData(SearchResult paramSearchResult, InitialLdapContext paramInitialLdapContext, LdapLoginUtil paramLdapLoginUtil, bool paramBoolean) { UserAndRolesData userAndRolesData = new UserAndRolesData(); PrincipalsData principalsData = new PrincipalsData(); Attributes attributes = paramSearchResult.Attributes; string str1 = StringUtils.getValueFromAttribute(attributes.get("displayName")); string str2 = StringUtils.getValueFromAttribute(attributes.get("description")); string str3 = StringUtils.getValueFromAttribute(attributes.get("sAMAccountName")); string str4 = StringUtils.getValueFromAttribute(attributes.get("userPrincipalName")); if (string.ReferenceEquals(str3, null)) { throw new Exception("sAMAccountName not found for: " + paramSearchResult.Name); } if (string.ReferenceEquals(str1, null)) { str1 = str3; } if (string.ReferenceEquals(str4, null)) { str4 = ""; } principalsData.Name = str1; principalsData.EMail = str4; principalsData.PrincipalId = str3; principalsData.Password = "******"; userAndRolesData.PrincipalsData = principalsData; if (!paramBoolean) { userAndRolesData.RolesData = new RolesData[0]; } else { SearchControls searchControls = new SearchControls(); searchControls.SearchScope = 2; searchControls.ReturningAttributes = this.attrIDs; searchControls.TimeLimit = 10000; string str5 = str3 + "," + Configuration.Options.get("baseCtxDN"); string str6 = (string)Configuration.Options.get("roleRecursion"); int i = 0; try { i = int.Parse(str6); } catch (Exception) { i = 0; } System.Collections.IList list = paramLdapLoginUtil.findRolesOfUser(paramInitialLdapContext, searchControls, str3, str5, i, 0); List <object> arrayList = new List <object>(list.Count); foreach (string str in list) { arrayList.Add(new RolesData(str, str3, str, "Roles")); } userAndRolesData.RolesData = (RolesData[])arrayList.ToArray(typeof(RolesData)); } return(userAndRolesData); }