[ 
https://issues.apache.org/jira/browse/HDFS-3733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13445259#comment-13445259
 ] 

Andy Isaacson commented on HDFS-3733:
-------------------------------------

bq. In FSN#getFileInfo why catch UnresolvedLinkException and StandbyException, 
just AccessControlException is sufficient right?
I have to {{logAuditEvent(false}} under any exception.  Todd suggested doing 
this instead:
{code}
+    } catch (Throwable e) {
       if (auditLog.isInfoEnabled() && isExternalInvocation()) {
         logAuditEvent(false, UserGroupInformation.getCurrentUser(),
                       getRemoteIp(),
                       "getfileinfo", src, null, null);
       }
-      throw e;
-    } catch (StandbyException e) {
-      if (auditLog.isInfoEnabled() && isExternalInvocation()) {
-        logAuditEvent(false, UserGroupInformation.getCurrentUser(),
-                      getRemoteIp(),
-                      "getfileinfo", src, null, null);
-      }
-      throw e;
+      Throwables.propagateIfPossible(e, AccessControlException.class);
+      Throwables.propagateIfPossible(e, UnresolvedLinkException.class);
+      Throwables.propagateIfPossible(e, StandbyException.class);
+      Throwables.propagateIfPossible(e, IOException.class);
+      throw new RuntimeException("unexpected", e);
{code}
bq. Nit, I'd remove the System.out.printlns for debugging in the tests?
Where's the upside to removing them? It adds a few KB at most to the MBs of 
test output, and I always end up adding the prinlns when trying to grok 
failures.

But, whatever.  Removed.

bq. javadoc warning

Turns out you have to import anything you want to {{@link}}. Fixed.
                
> Audit logs should include WebHDFS access
> ----------------------------------------
>
>                 Key: HDFS-3733
>                 URL: https://issues.apache.org/jira/browse/HDFS-3733
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: webhdfs
>    Affects Versions: 2.0.0-alpha
>            Reporter: Andy Isaacson
>            Assignee: Andy Isaacson
>         Attachments: hdfs-3733-1.txt, hdfs-3733-2.txt, hdfs-3733-3.txt, 
> hdfs-3733-4.txt, hdfs-3733-6.txt, hdfs-3733.txt
>
>
> Access via WebHdfs does not result in audit log entries.  It should.
> {noformat}
> % curl "http://nn1:50070/webhdfs/v1/user/adi/hello.txt?op=GETFILESTATUS";
> {"FileStatus":{"accessTime":1343351432395,"blockSize":134217728,"group":"supergroup","length":12,"modificationTime":1342808158399,"owner":"adi","pathSuffix":"","permission":"644","replication":1,"type":"FILE"}}
> {noformat}
> and observe that no audit log entry is generated.
> Interestingly, OPEN requests do not generate audit log entries when the NN 
> generates the redirect, but do generate audit log entries when the second 
> phase against the DN is executed.
> {noformat}
> % curl -v 'http://nn1:50070/webhdfs/v1/user/adi/hello.txt?op=OPEN'
> ...
> < HTTP/1.1 307 TEMPORARY_REDIRECT
> < Location: 
> http://dn01:50075/webhdfs/v1/user/adi/hello.txt?op=OPEN&namenoderpcaddress=nn1:8020&offset=0
> ...
> % curl -v 
> 'http://dn01:50075/webhdfs/v1/user/adi/hello.txt?op=OPEN&namenoderpcaddress=nn1:8020'
> ...
> < HTTP/1.1 200 OK
> < Content-Type: application/octet-stream
> < Content-Length: 12
> < Server: Jetty(6.1.26.cloudera.1)
> < 
> hello world
> {noformat}
> This happens because {{DatanodeWebHdfsMethods#get}} uses {{DFSClient#open}} 
> thereby triggering the existing {{logAuditEvent}} code.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to