Try:

curl -iv -k -u knox:#123Password -X GET "
https://gateway:8443/gateway/default/webhdfs/v1/?op=LISTSTATUS";

The above assumes that there is a knox user in your AD.

On Wed, Dec 9, 2015 at 8:50 AM, Darpan Patel <[email protected]> wrote:

> HI Larry,
>
> Thanks for quick response. the value of contextFactory I missed somehow..
> Now I don't see the contextFactory undefined error but .... When I try to
> curl the default gateway for webhdfs still I am seeing the same console.
>
> I tried issuing the following curl command with valid TGT in the cache and
> after kdestroy and removing the TGT for both I am seeing the same output.
>
> curl -iv -k -u [email protected]:#123Password -X GET "
> https://gateway:8443/gateway/default/webhdfs/v1/?op=LISTSTATUS";
> also tried
> curl -iv -k  -X GET "
> https://gateway:8443/gateway/default/webhdfs/v1/?op=LISTSTATUS";
>
>
> I am attaching the default gateway topology file with the email to avoid
> lot of texts.
>
>
> In the *gateway.log *I don't see any entry while hitting the curl
>
> In the *gateway-audit *I see following :
>
> 15/12/09 13:44:47
> ||d96572dd-a988-4392-b7c8-fcf7e1d154f7|audit|WEBHDFS||||access|uri|/gateway/default/webhdfs/v1/?op=LISTSTATUS|unavailable|
> 15/12/09 13:44:48
> ||d96572dd-a988-4392-b7c8-fcf7e1d154f7|audit|WEBHDFS||||access|uri|/gateway/default/webhdfs/v1/?op=LISTSTATUS|success|Response
> status: 401
>
> I am not sure what I am missing!!!
>
> *Thank you very much for the help.*
>
> Regards,
> DP
>
>
> *Console Output:*
>
> [root@gateway knox-server]# curl -iv -k -u [email protected]:KnoxPassword@123
> -X GET "https://gateway:8443/gateway/default/webhdfs/v1/?op=LISTSTATUS";
> * About to connect() to gateway port 8443 (#0)
> *   Trying 192.168.197.8...
> * Connected to gateway (192.168.197.8) port 8443 (#0)
> * Initializing NSS with certpath: sql:/etc/pki/nssdb
> * skipping SSL peer certificate verification
> * SSL connection using TLS_DHE_RSA_WITH_AES_128_CBC_SHA
> * Server certificate:
> *       subject:
> CN=FQDN_OF_My_gateway_HOST,OU=Test,O=Hadoop,L=Test,ST=Test,C=US
> *       start date: Nov 27 20:36:22 2015 GMT
> *       expire date: Nov 26 20:36:22 2016 GMT
> *       common name: FQDN_OF_My_gateway_HOST
> *       issuer:
> CN=FQDN_OF_My_gateway_HOST,OU=Test,O=Hadoop,L=Test,ST=Test,C=US
> * Server auth using Basic with user '[email protected]'
> > GET /gateway/default/webhdfs/v1/?op=LISTSTATUS HTTP/1.1
> > Authorization: Basic a25veEB0ZXN0LmNvbTojMTIzUGFzc3dvcmQ=
> > User-Agent: curl/7.29.0
> > Host: gateway:8443
> > Accept: */*
> >
> < HTTP/1.1 401 Unauthorized
> HTTP/1.1 401 Unauthorized
> * Authentication problem. Ignoring this.
> < WWW-Authenticate: BASIC realm="application"
> WWW-Authenticate: BASIC realm="application"
> < Content-Length: 0
> Content-Length: 0
> < Server: Jetty(8.1.14.v20131031)
> Server: Jetty(8.1.14.v20131031)
>
> <
> * Connection #0 to host gateway left intact
>
>
>
>
>
> On 9 December 2015 at 13:24, larry mccay <[email protected]> wrote:
>
>> I meant the version of the topology that I sent you.
>> Note the order of the following to config items:
>>
>>              <param>
>>                  <name>main.ldapContextFactory</name>
>>
>>  <value>org.apache.hadoop.gateway.shirorealm.KnoxLdapContextFactory</value>
>>              </param>
>>
>>         <param>
>>             <name>main.ldapRealm.contextFactory</name>
>>             <value>$ldapContextFactory</value>
>>         </param>
>>
>> Do you have them in that order in the topology that you are using?
>>
>> On Wed, Dec 9, 2015 at 8:06 AM, Darpan Patel <[email protected]> wrote:
>>
>>> When we keep :
>>>
>>>                     <param>
>>>                         <name>main.ldapRealm.contextFactory</name>
>>>                         <value>$ldapContextFactory</value>
>>>                     </param>
>>>
>>> in the log I see that the context Factory object is not defined
>>> previously and hence could not be referred. Any idea for AD 2008/2012
>>> Windows Server what should be the value?
>>>
>>> I am knox : 0.6.0.2 version.
>>>
>>> 2015-12-09 12:39:45,185 ERROR env.EnvironmentLoader
>>> (EnvironmentLoader.java:initEnvironment(146)) - Shiro environment
>>> initialization failed
>>> org.apache.shiro.config.UnresolveableReferenceException: The object with
>>> id [ldapContextFactory] has not yet been defined and therefore cannot
>>> be referenced.  Please ensure objects are defined in the order in which
>>> they should be created and made available for future reference.
>>>
>>> Many thanks,
>>> DP
>>>
>>>
>>>
>>> On 9 December 2015 at 07:58, Darpan Patel <[email protected]> wrote:
>>>
>>>> Hi Larry,
>>>>
>>>> I am using the version : 0.6.0.2.3.0.0-2557 of Knox .
>>>>
>>>>
>>>> Checked through  curl -u admin:admin-password -i -k
>>>> https://localhost:8443/gateway/admin/api/v1/version
>>>>
>>>>
>>>>
>>>>
>>>> On 8 December 2015 at 23:42, larry mccay <[email protected]> wrote:
>>>>
>>>>> In the version that I sent you the main.ldapContextFactory is set
>>>>> before this entry.
>>>>> Is that true in the version that you are using?
>>>>>
>>>>> On Tue, Dec 8, 2015 at 5:16 PM, Darpan Patel <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Well when I am keeping the param to the following value we get an
>>>>>> error.
>>>>>>
>>>>>>      <param>
>>>>>>>             <name>main.ldapRealm.contextFactory</name>
>>>>>>>             <value>$ldapContextFactory</value>
>>>>>>>         </param>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> Copying from the gateway.log. (It made me think we need to define the
>>>>>> value for ldapContextFactory)
>>>>>>
>>>>>> 2015-12-08 22:13:58,003 ERROR env.EnvironmentLoader
>>>>>> (EnvironmentLoader.java:initEnvironment(146)) - Shiro environment
>>>>>> initialization failed
>>>>>> org.apache.shiro.config.UnresolveableReferenceException: *The object
>>>>>> with id [ldapContextFactory] has not yet been defined and therefore 
>>>>>> cannot
>>>>>> be referenced. * Please ensure objects are defined in the order in
>>>>>> which they should be created and made available for future reference.
>>>>>>         at
>>>>>> org.apache.shiro.config.ReflectionBuilder.getReferencedObject(ReflectionBuilder.java:224)
>>>>>>         at
>>>>>> org.apache.shiro.config.ReflectionBuilder.resolveReference(ReflectionBuilder.java:239)
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> DP
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> On Tue, Dec 8, 2015 at 4:59 PM, Darpan Patel <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Thanks for the merged template. I made modifications to it and
>>>>>>>>
>>>>>>>> I am not sure what value should I fill
>>>>>>>> for main.ldapRealm.contextFactory ?
>>>>>>>> We are running on windows 2008/2012 Active directory.
>>>>>>>>
>>>>>>>>      <param>
>>>>>>>>            <name>main.ldapRealm.contextFactory</name>
>>>>>>>>            <value>$ldapContextFactory</value>
>>>>>>>>        </param>
>>>>>>>>
>>>>>>>>
>>>>>>> I think that you leave it exactly like that.
>>>>>>> It is some sort of shiro injection thing - it references the value
>>>>>>> defined above it that way.
>>>>>>>
>>>>>>>
>>>>>>>> I removed this parameter and I see the in the logs:
>>>>>>>>
>>>>>>>> 2015-12-08 21:56:51,806 ERROR hadoop.gateway
>>>>>>>> (KnoxLdapRealm.java:getUserDn(574)) - Failed to get system ldap 
>>>>>>>> connection:
>>>>>>>> javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308:
>>>>>>>> LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e,
>>>>>>>> v1db1]
>>>>>>>>
>>>>>>>>
>>>>>>>> ( I am happy to see new error after 3 days phew!!!)
>>>>>>>>
>>>>>>>>
>>>>>>> Glad that you are happy but let's getting working and see how you
>>>>>>> feel. :)
>>>>>>> We'll also roll it into some better documentation for the AD
>>>>>>> specific usecase.
>>>>>>>
>>>>>>>
>>>>>>>> Regards,
>>>>>>>> DP
>>>>>>>>
>>>>>>>> On 8 December 2015 at 14:52, Darpan Patel <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Thanks Larray.
>>>>>>>>> I will check this and update you.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> DP
>>>>>>>>>
>>>>>>>>> On 8 December 2015 at 12:18, larry mccay <[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Darpan -
>>>>>>>>>>
>>>>>>>>>> The following topology is probably a better starting point for
>>>>>>>>>> you AD configuration - I've tried to merge yours with it as best I 
>>>>>>>>>> can:
>>>>>>>>>>
>>>>>>>>>> <gateway>
>>>>>>>>>>          <provider>
>>>>>>>>>>              <role>authentication</role>
>>>>>>>>>>              <name>ShiroProvider</name>
>>>>>>>>>>              <enabled>true</enabled>
>>>>>>>>>>              <param>
>>>>>>>>>>                  <name>sessionTimeout</name>
>>>>>>>>>>                  <value>30</value>
>>>>>>>>>>              </param>
>>>>>>>>>>              <param>
>>>>>>>>>>                  <name>main.ldapRealm</name>
>>>>>>>>>>
>>>>>>>>>>  <value>org.apache.hadoop.gateway.shirorealm.KnoxLdapRealm</value>
>>>>>>>>>>              </param>
>>>>>>>>>>
>>>>>>>>>>              <param>
>>>>>>>>>>                  <name>main.ldapContextFactory</name>
>>>>>>>>>>
>>>>>>>>>>  
>>>>>>>>>> <value>org.apache.hadoop.gateway.shirorealm.KnoxLdapContextFactory</value>
>>>>>>>>>>              </param>
>>>>>>>>>>
>>>>>>>>>>        <param>
>>>>>>>>>>            <name>main.ldapRealm.contextFactory</name>
>>>>>>>>>>            <value>$ldapContextFactory</value>
>>>>>>>>>>        </param>
>>>>>>>>>>        <param>
>>>>>>>>>>            <name>main.ldapRealm.contextFactory.url</name>
>>>>>>>>>>            <!-- ADJUST host, port for your AD setup-->
>>>>>>>>>>            <value>ldap://IP_OF_WINDOWS_AD:389</value>
>>>>>>>>>>        </param>
>>>>>>>>>>             <!-- ignored due to use of
>>>>>>>>>> main.ldapRealm.userSearchAttributeName -->
>>>>>>>>>> <param>
>>>>>>>>>>                  <name>main.ldapRealm.userDnTemplate</name>
>>>>>>>>>>                  <value>cn={0},CN=users,DC=test,DC=com</value>
>>>>>>>>>>                  <!-- also tried following values -->
>>>>>>>>>>                  <value>uid={0},CN=users,DC=test,DC=com</value>
>>>>>>>>>>               <value>cn={0},DC=test,DC=com</value>
>>>>>>>>>>              </param>
>>>>>>>>>>
>>>>>>>>>>        <!-- Param above is ignored sAMAccount is usually used for
>>>>>>>>>> AD -->
>>>>>>>>>> <param>
>>>>>>>>>> <name>main.ldapRealm.userSearchAttributeName</name>
>>>>>>>>>> <value>sAMAccountName</value>
>>>>>>>>>> </param>
>>>>>>>>>>
>>>>>>>>>> <!-- adjust as appropriate -->
>>>>>>>>>> <param>
>>>>>>>>>> <name>main.ldapRealm.userObjectClass</name>
>>>>>>>>>> <value>person</value>
>>>>>>>>>> </param>
>>>>>>>>>>
>>>>>>>>>> <!-- adjust the dn below to match your environment -->
>>>>>>>>>> <param>
>>>>>>>>>> <name>main.ldapRealm.contextFactory.systemUsername</name>
>>>>>>>>>>
>>>>>>>>>> <value>cn={systemuser},ou=process,ou=accounts,dc=test,dc=com</value>
>>>>>>>>>> </param>
>>>>>>>>>>
>>>>>>>>>> <!-- should be moved to the credential store for the gateway to
>>>>>>>>>> be more secure -->
>>>>>>>>>> <param>
>>>>>>>>>> <name>main.ldapRealm.contextFactory.systemPassword</name>
>>>>>>>>>> <value>{systemuser_password}/value>
>>>>>>>>>> </param>
>>>>>>>>>>
>>>>>>>>>>              <!-- let's disable for now since you have no
>>>>>>>>>> authorization policies defined anyway -->
>>>>>>>>>> <param>
>>>>>>>>>>                <name>main.ldapRealm.authorizationEnabled</name>
>>>>>>>>>>                <value>false</value>
>>>>>>>>>>              </param>
>>>>>>>>>>
>>>>>>>>>>              <param>
>>>>>>>>>>                <name>main.ldapRealm.searchBase</name>
>>>>>>>>>>                <value>cn=users,dc=test,dc=com</value>
>>>>>>>>>>              </param>
>>>>>>>>>>
>>>>>>>>>> <param>
>>>>>>>>>>
>>>>>>>>>> <param>
>>>>>>>>>>
>>>>>>>>>>  <name>main.ldapRealm.memberAttributeValueTemplate</name>
>>>>>>>>>>                <value>cn={0},cn=users,dc=test,dc=com</value>
>>>>>>>>>>                <!-- also tried uid={0} -->
>>>>>>>>>>              </param>
>>>>>>>>>>
>>>>>>>>>> <param>
>>>>>>>>>>
>>>>>>>>>>  <name>main.ldapRealm.contextFactory.authenticationMechanism</name>
>>>>>>>>>>                  <value>simple</value>
>>>>>>>>>>              </param>
>>>>>>>>>>
>>>>>>>>>>              <param>
>>>>>>>>>>                  <name>urls./**</name>
>>>>>>>>>>                  <value>authcBasic</value>
>>>>>>>>>>              </param>
>>>>>>>>>>            </provider>
>>>>>>>>>>
>>>>>>>>>>          <!-- the group principal mapping below is not likely
>>>>>>>>>> what you want
>>>>>>>>>>    note that mapping of the hdfs group to admin. Also, we have
>>>>>>>>>>               disabled authorization above so there is no need
>>>>>>>>>> for groups -->
>>>>>>>>>> <provider>
>>>>>>>>>>              <role>identity-assertion</role>
>>>>>>>>>>              <name>Default</name>
>>>>>>>>>>              <enabled>true</enabled>
>>>>>>>>>>               <!--param>
>>>>>>>>>>   <name>group.principal.mapping</name>
>>>>>>>>>>   <value>*=users;hdfs=admin</value>
>>>>>>>>>>  </param-->
>>>>>>>>>>          </provider>
>>>>>>>>>>
>>>>>>>>>>          <provider>
>>>>>>>>>>              <role>authorization</role>
>>>>>>>>>>              <name>AclsAuthz</name>
>>>>>>>>>>              <enabled>true</enabled>
>>>>>>>>>>          </provider>
>>>>>>>>>>
>>>>>>>>>>     </gateway>
>>>>>>>>>>
>>>>>>>>>> We need to better document the difference between LDAP and AD for
>>>>>>>>>> such deployments.
>>>>>>>>>>
>>>>>>>>>> I've also tried to document some of the changes that I made.
>>>>>>>>>> Note that you don't have any authorization ACLs defined in the
>>>>>>>>>> AclsAuthz provider so I disabled group lookup.
>>>>>>>>>> That will only add complexity to your config - we can re-enable
>>>>>>>>>> once authentication is working.
>>>>>>>>>>
>>>>>>>>>> Please go through this config and ensure that DNs, host and ports
>>>>>>>>>> and system usernames match your environment.
>>>>>>>>>>
>>>>>>>>>> Hope this helps.
>>>>>>>>>>
>>>>>>>>>> --larry
>>>>>>>>>>
>>>>>>>>>> On Tue, Dec 8, 2015 at 5:16 AM, Darpan Patel <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi All,
>>>>>>>>>>>
>>>>>>>>>>> For this blocker issue let more information if it can help
>>>>>>>>>>> fixing the authorization problem.
>>>>>>>>>>> Please let me know if more details required.
>>>>>>>>>>> (+ dev list)
>>>>>>>>>>>
>>>>>>>>>>> */etc/krb5.conf*
>>>>>>>>>>>
>>>>>>>>>>> [libdefaults]
>>>>>>>>>>>   renew_lifetime = 7d
>>>>>>>>>>>   forwardable = true
>>>>>>>>>>>   default_realm = HORTONWORKS.COM
>>>>>>>>>>>   ticket_lifetime = 24h
>>>>>>>>>>>   dns_lookup_realm = false
>>>>>>>>>>>   dns_lookup_kdc = false
>>>>>>>>>>>   #default_tgs_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
>>>>>>>>>>>   #default_tkt_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
>>>>>>>>>>>
>>>>>>>>>>> [domain_realm]
>>>>>>>>>>>   .hortonworks.com = HORTONWORKS.COM
>>>>>>>>>>>    HORTONWORKS.COm = HORTONWORKS.COM
>>>>>>>>>>>
>>>>>>>>>>> [logging]
>>>>>>>>>>>   default = FILE:/var/log/krb5kdc.log
>>>>>>>>>>>   admin_server = FILE:/var/log/kadmind.log
>>>>>>>>>>>   kdc = FILE:/var/log/krb5kdc.log
>>>>>>>>>>>
>>>>>>>>>>> [realms]
>>>>>>>>>>>   HORTONWORKS.COM = {
>>>>>>>>>>>     admin_server = KDC_SERVER_HOST
>>>>>>>>>>>     kdc = KDC_SERVER_HOST
>>>>>>>>>>>   }
>>>>>>>>>>>   *TEST.COM <http://TEST.COM>* = {
>>>>>>>>>>>     admin_server = WINDOWS_12_SERVER_AD_HOST
>>>>>>>>>>>     kdc = WINDOWS_12_SERVER_AD_HOST
>>>>>>>>>>>   }
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> */usr/hdp/current/knox-server/conf/gateway-site.xml*
>>>>>>>>>>>
>>>>>>>>>>> <configuration>
>>>>>>>>>>>     <property>
>>>>>>>>>>>       <name>*gateway.gateway.conf.dir*</name>
>>>>>>>>>>>       <value>deployments</value>
>>>>>>>>>>>     </property>
>>>>>>>>>>>     <property>
>>>>>>>>>>>       <name>*gateway.hadoop.kerberos.secured*</name>
>>>>>>>>>>>       <value>true</value>
>>>>>>>>>>>     </property>
>>>>>>>>>>>     <property>
>>>>>>>>>>>       <name>*gateway.path*</name>
>>>>>>>>>>>       <value>gateway</value>
>>>>>>>>>>>     </property>
>>>>>>>>>>>     <property>
>>>>>>>>>>>       <name>*gateway.port*</name>
>>>>>>>>>>>       <value>8443</value>
>>>>>>>>>>>     </property>
>>>>>>>>>>>     <property>
>>>>>>>>>>>       <name>*java.security.auth.login.config*</name>
>>>>>>>>>>>       <value>/*etc/knox/conf/krb5JAASLogin.conf*</value>
>>>>>>>>>>>     </property>
>>>>>>>>>>>     <property>
>>>>>>>>>>>       <name>*java.security.krb5.conf*</name>
>>>>>>>>>>>       <value>*/etc/krb5.conf*</value>
>>>>>>>>>>>     </property>
>>>>>>>>>>>     <property>
>>>>>>>>>>>       <name>sun.security.krb5.debug</name>
>>>>>>>>>>>       <value>true</value>
>>>>>>>>>>>     </property>
>>>>>>>>>>>   </configuration>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> */etc/knox/conf/krb5JAASLogin.conf*
>>>>>>>>>>>
>>>>>>>>>>> com.sun.security.jgss.initiate {
>>>>>>>>>>> com.sun.security.auth.module.Krb5LoginModule required
>>>>>>>>>>> renewTGT=true
>>>>>>>>>>> doNotPrompt=true
>>>>>>>>>>> useKeyTab=true
>>>>>>>>>>> keyTab="/etc/security/keytabs/knox.service.keytab"
>>>>>>>>>>> principal="knox/[email protected]"
>>>>>>>>>>> isInitiator=true
>>>>>>>>>>> storeKey=true
>>>>>>>>>>> useTicketCache=true
>>>>>>>>>>> client=true;
>>>>>>>>>>> };
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>> DP
>>>>>>>>>>>
>>>>>>>>>>> ---------- Forwarded message ----------
>>>>>>>>>>> From: Darpan Patel <[email protected]>
>>>>>>>>>>> Date: 7 December 2015 at 17:59
>>>>>>>>>>> Subject: Need help setting up Knox for A/D integrated Kerberized
>>>>>>>>>>> Cluster
>>>>>>>>>>> To: [email protected]
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Hi All,
>>>>>>>>>>>
>>>>>>>>>>> I am stuck on an issue from last two days. I would be really
>>>>>>>>>>> grateful if someone can help on this.
>>>>>>>>>>>
>>>>>>>>>>> We have HDP 2.3 implemented over 8 node cluster and the same
>>>>>>>>>>> cluster has been Kerberized and later on we have integrated it with 
>>>>>>>>>>> Active
>>>>>>>>>>> Directory (Which runs in the same VPN). We also verified that 
>>>>>>>>>>> Windows 2012
>>>>>>>>>>> A/D integration with Ranger works fine for defining policies and 
>>>>>>>>>>> audit log.
>>>>>>>>>>> But I am stuck at Knox bit. I am trying to replicate the same 
>>>>>>>>>>> configuration
>>>>>>>>>>> properties which I have set for Ranger LDAP-AD Integration.
>>>>>>>>>>>
>>>>>>>>>>> I am taking reference of the Hortonworks documentation and also
>>>>>>>>>>> Apache Knox documentation.
>>>>>>>>>>>
>>>>>>>>>>> The A/D domain name is TEST.COM and all the users are under
>>>>>>>>>>> Users
>>>>>>>>>>>
>>>>>>>>>>> [image: Inline images 1]
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Under the Users we have few users one of the them is knox,
>>>>>>>>>>> darpan, test,etc.
>>>>>>>>>>>
>>>>>>>>>>> When we issue following command on the node on which Knox Server
>>>>>>>>>>> is running (topology name is default)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> *curl -iv -k -u [email protected]:#123Password -X GET
>>>>>>>>>>> "https://localhost:8443/gateway/default/webhdfs/v1/?op=LISTSTATUS
>>>>>>>>>>> <https://localhost:8443/gateway/default/webhdfs/v1/?op=LISTSTATUS>" 
>>>>>>>>>>> OR*
>>>>>>>>>>>
>>>>>>>>>>> *curl -iv -k -u knox:#123Password -X GET
>>>>>>>>>>> "https://localhost:8443/gateway/default/webhdfs/v1/?op=LISTSTATUS
>>>>>>>>>>> <https://localhost:8443/gateway/default/webhdfs/v1/?op=LISTSTATUS>"*
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Every time I see  < HTTP/1.1 401 Unauthorized HTTP/1.1 401
>>>>>>>>>>> Unauthorized on the console.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Entries in the *gateway-audit.log *are like this :
>>>>>>>>>>>
>>>>>>>>>>> gateway-audit.log
>>>>>>>>>>> ==================
>>>>>>>>>>> 15/12/07 17:11:08
>>>>>>>>>>> ||38606993-17e2-4c3e-ad4b-e3faea293aae|audit|WEBHDFS||||access|uri|/gateway/default/webhdfs/v1/?op=LISTSTATUS|unavailable|
>>>>>>>>>>> 15/12/07 17:11:09
>>>>>>>>>>> ||38606993-17e2-4c3e-ad4b-e3faea293aae|audit|WEBHDFS||||authentication|
>>>>>>>>>>> *principal*|*[email protected] <[email protected]>*|failure|*LDAP
>>>>>>>>>>> authentication failed.*
>>>>>>>>>>> 15/12/07 17:11:09
>>>>>>>>>>> ||38606993-17e2-4c3e-ad4b-e3faea293aae|audit|WEBHDFS||||access|uri|/gateway/default/webhdfs/v1/?op=LISTSTATUS|success|Response
>>>>>>>>>>> status: 401
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 15/12/07 17:05:28
>>>>>>>>>>> ||5b436e43-b874-40f7-b111-7b262fe5125d|audit|WEBHDFS||||access|uri|/gateway/default/webhdfs/v1/?op=LISTSTATUS|unavailable|
>>>>>>>>>>> 15/12/07 17:05:29
>>>>>>>>>>> ||5b436e43-b874-40f7-b111-7b262fe5125d|audit|WEBHDFS||||authentication|
>>>>>>>>>>> *principal*|knox|failure|*LDAP authentication failed.*
>>>>>>>>>>> 15/12/07 17:05:29
>>>>>>>>>>> ||5b436e43-b874-40f7-b111-7b262fe5125d|audit|WEBHDFS||||access|uri|/gateway/default/webhdfs/v1/?op=LISTSTATUS|success|Response
>>>>>>>>>>> status: 401
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> *Gateway.log*
>>>>>>>>>>> *===========*
>>>>>>>>>>> 2015-12-07 17:05:28,620 INFO  hadoop.gateway
>>>>>>>>>>> (KnoxLdapRealm.java:getUserDn(550)) - Computed userDn:
>>>>>>>>>>> cn=knox,CN=users,DC=test,DC=com using dnTemplate for principal: knox
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Following is the part of our *default.xml *topology:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>        <gateway>
>>>>>>>>>>>                 <provider>
>>>>>>>>>>>                     <role>authentication</role>
>>>>>>>>>>>                     <name>ShiroProvider</name>
>>>>>>>>>>>                     <enabled>true</enabled>
>>>>>>>>>>>                     <param>
>>>>>>>>>>>                         <name>sessionTimeout</name>
>>>>>>>>>>>                         <value>30</value>
>>>>>>>>>>>                     </param>
>>>>>>>>>>>                     <param>
>>>>>>>>>>>                         <name>*main.ldapRealm*</name>
>>>>>>>>>>>
>>>>>>>>>>> <value>org.apache.hadoop.gateway.shirorealm.KnoxLdapRealm</value>
>>>>>>>>>>>                     </param>
>>>>>>>>>>>
>>>>>>>>>>>                     <param>
>>>>>>>>>>>                         <name>*main.ldapContextFactory*</name>
>>>>>>>>>>>
>>>>>>>>>>> <value>org.apache.hadoop.gateway.shirorealm.KnoxLdapContextFactory</value>
>>>>>>>>>>>                     </param>
>>>>>>>>>>>
>>>>>>>>>>>                     <param>
>>>>>>>>>>>                         <name>*main.ldapRealm.userDnTemplate*
>>>>>>>>>>> </name>
>>>>>>>>>>>
>>>>>>>>>>> <value>cn={0},CN=users,DC=test,DC=com</value>
>>>>>>>>>>>                         <!-- also tried following values -->
>>>>>>>>>>>
>>>>>>>>>>> <value>uid={0},CN=users,DC=test,DC=com</value>
>>>>>>>>>>>                       <value>cn={0},DC=test,DC=com</value>
>>>>>>>>>>>                     </param>
>>>>>>>>>>>                     <param>
>>>>>>>>>>>                         <name>
>>>>>>>>>>> *main.ldapRealm.contextFactory.url*</name>
>>>>>>>>>>>                         <!-- IP Address of the WINDOSWS 2012
>>>>>>>>>>> Acive Directory Server which works for Ranger -->
>>>>>>>>>>>                         <value>*ldap://IP_OF_WINDOWS_AD:389*
>>>>>>>>>>> </value>
>>>>>>>>>>>                     </param>
>>>>>>>>>>>                     <param>
>>>>>>>>>>>                       <name>
>>>>>>>>>>> *main.ldapRealm.authorizationEnabled*</name>
>>>>>>>>>>>                       <value>true</value>
>>>>>>>>>>>                   </param>
>>>>>>>>>>>                   <param>
>>>>>>>>>>>                       <name>*main.ldapRealm.searchBase*</name>
>>>>>>>>>>>                       <value>cn=users,dc=test,dc=com</value>
>>>>>>>>>>>                   </param>
>>>>>>>>>>>                   <param>
>>>>>>>>>>>                   <param>
>>>>>>>>>>>                       <name>
>>>>>>>>>>> *main.ldapRealm.memberAttributeValueTemplate*</name>
>>>>>>>>>>>
>>>>>>>>>>> <value>cn={0},cn=users,dc=test,dc=com</value>
>>>>>>>>>>>                       <!-- also tried uid={0} -->
>>>>>>>>>>>                   </param>
>>>>>>>>>>>                    <param>
>>>>>>>>>>>                         <name>
>>>>>>>>>>> *main.ldapRealm.contextFactory.authenticationMechanism<*/name>
>>>>>>>>>>>                         <value>simple</value>
>>>>>>>>>>>                     </param>
>>>>>>>>>>>                     <param>
>>>>>>>>>>>                         <name>urls./**</name>
>>>>>>>>>>>                         <value>authcBasic</value>
>>>>>>>>>>>                     </param>
>>>>>>>>>>>                   </provider>
>>>>>>>>>>>
>>>>>>>>>>>                 <provider>
>>>>>>>>>>>                     <role>*identity-assertion*</role>
>>>>>>>>>>>                     <name>Default</name>
>>>>>>>>>>>                     <enabled>true</enabled>
>>>>>>>>>>>                      <param>
>>>>>>>>>>>         <name>*group.principal.mapping*</name>
>>>>>>>>>>>         <value>*=users;hdfs=admin</value>
>>>>>>>>>>>     </param>
>>>>>>>>>>>                 </provider>
>>>>>>>>>>>
>>>>>>>>>>>                 <provider>
>>>>>>>>>>>                     <role>*authorization*</role>
>>>>>>>>>>>                     <name>AclsAuthz</name>
>>>>>>>>>>>                     <enabled>true</enabled>
>>>>>>>>>>>                 </provider>
>>>>>>>>>>>
>>>>>>>>>>>            </gateway>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> And following is the console output while trying to access
>>>>>>>>>>> webhdfs using curl
>>>>>>>>>>>
>>>>>>>>>>> curl -iv -k -u knox:#123Password -X GET "
>>>>>>>>>>> https://localhost:8443/gateway/default/webhdfs/v1/?op=LISTSTATUS
>>>>>>>>>>> "
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> *Console Output:*
>>>>>>>>>>> ----------------
>>>>>>>>>>>
>>>>>>>>>>> * About to connect() to localhost port 8443 (#0)
>>>>>>>>>>> *   Trying ::1...
>>>>>>>>>>> * Connected to localhost (::1) port 8443 (#0)
>>>>>>>>>>> * Initializing NSS with certpath: sql:/etc/pki/nssdb
>>>>>>>>>>> * skipping SSL peer certificate verification
>>>>>>>>>>> * SSL connection using TLS_DHE_RSA_WITH_AES_128_CBC_SHA
>>>>>>>>>>> * Server certificate:
>>>>>>>>>>> *       subject:
>>>>>>>>>>> CN=FQDN_OF_My_gateway_HOST,OU=Test,O=Hadoop,L=Test,ST=Test,C=US
>>>>>>>>>>> *       start date: Nov 27 20:36:22 2015 GMT
>>>>>>>>>>> *       expire date: Nov 26 20:36:22 2016 GMT
>>>>>>>>>>> *       common name: FQDN_OF_My_gateway_HOST
>>>>>>>>>>> *       issuer:
>>>>>>>>>>> CN=FQDN_OF_My_gateway_HOST,OU=Test,O=Hadoop,L=Test,ST=Test,C=US
>>>>>>>>>>> * Server auth using Basic with user 'knox'
>>>>>>>>>>> > GET /gateway/default/webhdfs/v1/?op=LISTSTATUS HTTP/1.1
>>>>>>>>>>> > Authorization: Basic a25veDojMTIzUGFzc3dvcmQ=
>>>>>>>>>>> > User-Agent: curl/7.29.0
>>>>>>>>>>> > Host: localhost:8443
>>>>>>>>>>> > Accept: */*
>>>>>>>>>>> >
>>>>>>>>>>> < HTTP/1.1 401 Unauthorized
>>>>>>>>>>> HTTP/1.1 401 Unauthorized
>>>>>>>>>>> * Authentication problem. Ignoring this.
>>>>>>>>>>> < WWW-Authenticate: BASIC realm="application"
>>>>>>>>>>> WWW-Authenticate: BASIC realm="application"
>>>>>>>>>>> < Content-Length: 0
>>>>>>>>>>> Content-Length: 0
>>>>>>>>>>> < Server: Jetty(8.1.14.v20131031)
>>>>>>>>>>> Server: Jetty(8.1.14.v20131031)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Please let me know if any additional information is required.
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> DP
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to