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

Attila Doroszlai commented on HDDS-6466:
----------------------------------------

bq. But there is a question I want to ask, if I want to visit object directly 
via web browser without authorization. For example, like document described, 
visit http://localhost:9878/bucket1?browser=true.  Does Ozone support this 
function or there must be existed authorization then we can visit object?

I think it used to work without authentication for unsecure cluster.  I don't 
know if it was changed intentionally or as a side effect of some other change.  
Will try to find out.

> S3 Gateway bucket browser requires authentication
> -------------------------------------------------
>
>                 Key: HDDS-6466
>                 URL: https://issues.apache.org/jira/browse/HDDS-6466
>             Project: Apache Ozone
>          Issue Type: Bug
>          Components: S3
>    Affects Versions: 1.2.1
>         Environment: Windows 10 + Docker version 20.10.12, build e91ed57
> OZone version: 1.2.1
>            Reporter: kuanghc
>            Priority: Major
>         Attachments: image-2022-03-17-11-36-16-706.png
>
>
> I built ozone container by following: [Documentation for Apache 
> Ozone|https://ozone.apache.org/docs/1.2.1/start/startfromdockerhub.html]
> But when I came to the last step and I tried to visit 
> [http://localhost:9878/bucket1?browser] or 
> [http://localhost:9878/bucket1?browser=true]
> I got HTTP ERROR 500 Internal Server Error
> *Screenshot as below:*
> !image-2022-03-17-11-36-16-706.png!
> *Error log as below:*
> {code:java}
> 02:59:29.393 [qtp252553541-19] ERROR org.jboss.weld.Bean - WELD-000019: Error 
> destroying an instance 
> org.apache.hadoop.ozone.s3.OzoneClientProducer@218e395f of Managed Bean 
> [class org.apache.hadoop.ozone.s3.OzoneClientProducer] with qualifiers [@Any 
> @Default] 2022-03-17 02:59:29 ERROR OzoneClientProducer:166 - Malformed s3 
> header. awsAccessID: Mar 17, 2022 2:59:29 AM 
> org.glassfish.jersey.internal.Errors logErrors WARNING: The following 
> warnings have been detected: WARNING: Unknown HK2 failure detected: 
> MultiException stack 1 of 1 javax.ws.rs.WebApplicationException: HTTP 500 
> Internal Server Error at 
> org.apache.hadoop.ozone.s3.OzoneClientProducer.wrapOS3Exception(OzoneClientProducer.java:182)
>  at 
> org.apache.hadoop.ozone.s3.OzoneClientProducer.getClient(OzoneClientProducer.java:146)
>  at 
> org.apache.hadoop.ozone.s3.OzoneClientProducer.createClient(OzoneClientProducer.java:82)
>  at jdk.internal.reflect.GeneratedMethodAccessor22.invoke(Unknown Source) at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.base/java.lang.reflect.Method.invoke(Method.java:566) at 
> org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:88)
>  at 
> org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:78)
>  at 
> org.jboss.weld.injection.producer.ProducerMethodProducer.produce(ProducerMethodProducer.java:100)
>  at 
> org.jboss.weld.injection.producer.AbstractMemberProducer.produce(AbstractMemberProducer.java:161)
>  at 
> org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:180)
>  at 
> org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:70)
>  at 
> org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:100)
>  at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50) at 
> org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:785) 
> at 
> org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:885)
>  at 
> org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92)
>  at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:358) at 
> org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:369) at 
> org.jboss.weld.injection.producer.ResourceInjector$1.proceed(ResourceInjector.java:70)
>  at 
> org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
>  at 
> org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:72)
>  at 
> org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:117)
>  at 
> org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider$InjectionManagerInjectedCdiTarget.inject(CdiComponentProvider.java:874)
>  at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:159) at 
> org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:70)
>  at 
> org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:100)
>  at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50) at 
> org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:785) 
> at 
> org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:808) 
> at 
> org.jboss.weld.util.ForwardingBeanManager.getReference(ForwardingBeanManager.java:61)
>  at 
> org.jboss.weld.bean.builtin.BeanManagerProxy.getReference(BeanManagerProxy.java:85)
>  at 
> org.glassfish.jersey.ext.cdi1x.internal.CdiUtil.getBeanReference(CdiUtil.java:127)
>  at 
> org.glassfish.jersey.ext.cdi1x.internal.AbstractCdiBeanSupplier$1.getInstance(AbstractCdiBeanSupplier.java:69)
>  at 
> org.glassfish.jersey.ext.cdi1x.internal.AbstractCdiBeanSupplier._provide(AbstractCdiBeanSupplier.java:103)
>  at 
> org.glassfish.jersey.ext.cdi1x.internal.RequestScopedCdiBeanSupplier.get(RequestScopedCdiBeanSupplier.java:46)
>  at 
> org.glassfish.jersey.inject.hk2.InstanceSupplierFactoryBridge.provide(InstanceSupplierFactoryBridge.java:53)
>  at org.jvnet.hk2.internal.FactoryCreator.create(FactoryCreator.java:129) at 
> org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463) at 
> org.jvnet.hk2.internal.PerLookupContext.findOrCreate(PerLookupContext.java:46)
>  at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102) at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(ServiceLocatorImpl.java:758)
>  at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(ServiceLocatorImpl.java:721)
>  at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:691)
>  at 
> org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getInstance(AbstractHk2InjectionManager.java:160)
>  at 
> org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getInstance(ImmediateHk2InjectionManager.java:30)
>  at 
> org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:105)
>  at 
> org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:260)
>  at 
> org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:51)
>  at 
> org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:86)
>  at 
> org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:89)
>  at 
> org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:89)
>  at 
> org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:89)
>  at 
> org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:69)
>  at 
> org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:38)
>  at org.glassfish.jersey.process.internal.Stages.process(Stages.java:173) at 
> org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:247) at 
> org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) at 
> org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) at 
> org.glassfish.jersey.internal.Errors.process(Errors.java:292) at 
> org.glassfish.jersey.internal.Errors.process(Errors.java:274) at 
> org.glassfish.jersey.internal.Errors.process(Errors.java:244) at 
> org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
>  at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234) 
> at 
> org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)
>  at 
> org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394) 
> at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) 
> at 
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)
>  at 
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)
>  at 
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
>  at 
> org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1459)
>  at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) at 
> org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
>  at 
> org.apache.hadoop.ozone.s3.RootPageDisplayFilter.doFilter(RootPageDisplayFilter.java:53)
>  at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>  at 
> org.apache.hadoop.ozone.s3.EmptyContentTypeFilter.doFilter(EmptyContentTypeFilter.java:76)
>  at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201) at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>  at 
> org.apache.hadoop.hdds.server.http.HttpServer2$QuotingInputFilter.doFilter(HttpServer2.java:1678)
>  at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>  at 
> org.apache.hadoop.hdds.server.http.NoCacheFilter.doFilter(NoCacheFilter.java:48)
>  at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>  at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548) at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
> at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602) 
> at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>  at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
>  at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
>  at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
>  at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
>  at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
>  at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) 
> at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
>  at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
>  at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
>  at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
> at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
>  at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>  at org.eclipse.jetty.server.Server.handle(Server.java:516) at 
> org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388) at 
> org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633) at 
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380) at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) 
> at 
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
>  at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) at 
> org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
>  at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
>  at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
>  at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
>  at 
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:386)
>  at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
>  at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
>  at java.base/java.lang.Thread.run(Thread.java:829) Caused by: 
> org.apache.hadoop.ozone.s3.exception.OS3Exception at 
> org.apache.hadoop.ozone.s3.exception.S3ErrorTable.<clinit>(S3ErrorTable.java:107)
>  at 
> org.apache.hadoop.ozone.s3.OzoneClientProducer.validateAccessId(OzoneClientProducer.java:167)
>  at 
> org.apache.hadoop.ozone.s3.OzoneClientProducer.getClient(OzoneClientProducer.java:104)
>  at 
> org.apache.hadoop.ozone.s3.OzoneClientProducer.createClient(OzoneClientProducer.java:82)
>  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method) at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>  ... 113 more {code}
> And I also check this link: [Documentation for Apache 
> Ozone|https://ozone.apache.org/docs/1.2.1/start/startfromdockerhub.html]
> {noformat}
> Bucket browserBuckets could be browsed from the browser by adding 
> ?browser=true to the bucket URL.For example the content of the ‘testbucket’ 
> could be checked from the browser using the URL 
> http://localhost:9878/testbucket?browser=true{noformat}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to