As a rodsadmin, I can discover all files (iquest, ils, imeta ls), but not necessarily see their contents (iget). When I attempt to download a file whose contents I do not have permission to see, I get a screen full of json error messages rather than something meaningful:
{"error":{"cause":null,"class":"org.irods.jargon.core.exception.CatNoAccessException","localizedMessage":"No access to item in catalog","message":"No access to item in catalog","stackTrace":[{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.connection.IRODSErrorScanner","fileName":"IRODSErrorScanner.java","lineNumber":178,"methodName":"checkSpecificCodesAndThrowIfExceptionLocated","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.connection.IRODSErrorScanner","fileName":"IRODSErrorScanner.java","lineNumber":123,"methodName":"inspectAndThrowIfNeeded","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.connection.AbstractIRODSMidLevelProtocol","fileName":"AbstractIRODSMidLevelProtocol.java","lineNumber":1172,"methodName":"processMessageInfoLessThanZero","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.connection.AbstractIRODSMidLevelProtocol","fileName":"AbstractIRODSMidLevelProtocol.java","lineNumber":663,"methodName":"readMessage","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.connection.AbstractIRODSMidLevelProtocol","fileName":"AbstractIRODSMidLevelProtocol.java","lineNumber":629,"methodName":"readMessage","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.connection.IRODSMidLevelProtocol","fileName":"IRODSMidLevelProtocol.java","lineNumber":235,"methodName":"irodsFunction","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.connection.AbstractIRODSMidLevelProtocol","fileName":"AbstractIRODSMidLevelProtocol.java","lineNumber":174,"methodName":"irodsFunction","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.pub.IRODSFileSystemAOImpl","fileName":"IRODSFileSystemAOImpl.java","lineNumber":907,"methodName":"openFile","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.pub.io.IRODSFileImpl","fileName":"IRODSFileImpl.java","lineNumber":1277,"methodName":"openWithMode","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.pub.io.IRODSFileImpl","fileName":"IRODSFileImpl.java","lineNumber":1329,"methodName":"open","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.pub.io.IRODSFileInputStream","fileName":"IRODSFileInputStream.java","lineNumber":181,"methodName":"openIRODSFile","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.pub.io.IRODSFileInputStream","fileName":"IRODSFileInputStream.java","lineNumber":118,"methodName":"openFile","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.pub.io.IRODSFileInputStream","fileName":"IRODSFileInputStream.java","lineNumber":102,"methodName":"<init>","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.core.pub.io.IRODSFileFactoryImpl","fileName":"IRODSFileFactoryImpl.java","lineNumber":585,"methodName":"instanceIRODSFileInputStream","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.idrop.web.services.FileService","fileName":"FileService.groovy","lineNumber":118,"methodName":"obtainInputStreamForDownloadSingleFile","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"org.irods.jargon.idrop.web.controllers.DownloadController","fileName":"DownloadController.groovy","lineNumber":43,"methodName":"show","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"grails.plugin.cache.web.filter.PageFragmentCachingFilter","fileName":"PageFragmentCachingFilter.java","lineNumber":198,"methodName":"doFilter","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"grails.plugin.cache.web.filter.AbstractFilter","fileName":"AbstractFilter.java","lineNumber":63,"methodName":"doFilter","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"com.brandseye.cors.CorsFilter","fileName":"CorsFilter.java","lineNumber":82,"methodName":"doFilter","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"com.googlecode.psiprobe.Tomcat70AgentValve","fileName":"Tomcat70AgentValve.java","lineNumber":38,"methodName":"invoke","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"java.util.concurrent.ThreadPoolExecutor","fileName":"ThreadPoolExecutor.java","lineNumber":1142,"methodName":"runWorker","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"java.util.concurrent.ThreadPoolExecutor$Worker","fileName":"ThreadPoolExecutor.java","lineNumber":617,"methodName":"run","nativeMethod":false},{"class":"java.lang.StackTraceElement","className":"java.lang.Thread","fileName":"Thread.java","lineNumber":745,"methodName":"run","nativeMethod":false}],"suppressed":[],"underlyingIRODSExceptionCode":0}}
Hello,
As a rodsadmin, I can discover all files (
iquest
,ils
,imeta ls
), but not necessarily see their contents (iget
). When I attempt to download a file whose contents I do not have permission to see, I get a screen full of json error messages rather than something meaningful: