//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);
        }
Exemple #2
0
//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);
        }
Exemple #5
0
//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;
            }
        }
Exemple #6
0
//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();
                }
            }
        }
Exemple #7
0
//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);
        }