[
https://issues.jboss.org/browse/TEIID-3569?page=com.atlassian.jira.plugin...
]
Ramesh Reddy commented on TEIID-3569:
-------------------------------------
Providing a way to set JDBC connection properties through servlet init properties; thus if
passthough needs to be false, it can be set as init property in web.xml,
{code}
<context-param>
<param-name>PassthroughAuthentication</param-name>
<param-value>false</param-value>
</context-param>
{code}
if property is set this property will default to true as before. This also gives way to
set any additional JDBC connection properties if needed. So to recap how to do this
- Open the OData WAR file. Edit the "web.xml " and comment the HTTP Basic
authorization specific content, as shown in first comment
- Add
{code}
<context-param>
<param-name>PassthroughAuthentication</param-name>
<param-value>false</param-value>
</context-param>
{code}
- Then edit "jboss-web.xml" and comment out or remove line
"<security-domain>java:/jaas/teiid-security</security-domain>"
- save the war file with updated contents.
- Edit the standalone-teiid.xml, in the "teiid" subsystem, for "odata"
transport define it as
{code}
<transport name="odata">
<authentication security-domain="teiid-security-odata"/>
</transport>
{code}
Then in the security-domains subsystems add a security domain for
"teiid-security-odata" as
{code}
<security-domain name="teiid-security-odata"
cache-type="default">
<authentication>
<login-module
code="org.jboss.security.auth.spi.SimpleUsersLoginModule"
flag="sufficient">
<module-option name="unauthenticatedIdentity"
value="guest"/>
</login-module>
</authentication>
</security-domain>
{code}
restart the server and HTTP Basic is removed from the odata calls.
OData servlet throws TEIID10036/TEIID40087 when disabling security
------------------------------------------------------------------
Key: TEIID-3569
URL:
https://issues.jboss.org/browse/TEIID-3569
Project: Teiid
Issue Type: Enhancement
Components: OData
Affects Versions: 8.7.1
Reporter: Hisanobu Okuda
Assignee: Ramesh Reddy
Fix For: 8.7.1.6_2, 8.12
When I disable security for teiid-odata-8.7.1.redhat-8.war modifying web.xml as
follows:-
{code}
<!--
<security-constraint>
<display-name>require valid user</display-name>
<web-resource-collection>
<web-resource-name>Teiid Rest Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>odata</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>yourdomain.com</realm-name>
</login-config>
-->
</web-app>
{code}
The OData servlet thowrs an exception:-
{code}
10:47:51,578 SEVERE [org.teiid.jdbc] (http-/127.0.0.1:8080-2) Could not create
connection: org.teiid.jdbc.TeiidSQLException: TEIID10036 org.teiid.core.TeiidException:
TEIID10036 org.teiid.net.ConnectionException: TEIID40087 Passthrough authentication
failed. No auth[6/1654]
on information found.
at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
[teiid-client-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71)
[teiid-client-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at org.teiid.jdbc.EmbeddedProfile.connect(EmbeddedProfile.java:55)
[teiid-client-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at org.teiid.jdbc.TeiidDriver.connect(TeiidDriver.java:105)
[teiid-client-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at org.teiid.odata.LocalClient.getConnection(LocalClient.java:121) [classes:]
at org.teiid.odata.LocalClient.getVDB(LocalClient.java:94) [classes:]
at org.teiid.odata.LocalClient.getMetadata(LocalClient.java:425) [classes:]
at org.teiid.odata.TeiidProducer.getMetadata(TeiidProducer.java:69) [classes:]
at
org.odata4j.producer.resources.EntitiesRequestResource.getEntitiesImpl(EntitiesRequestResource.java:350)
[odata4j-core-0.8.0.redhat-2.jar:]
at
org.odata4j.producer.resources.EntitiesRequestResource.getEntities(EntitiesRequestResource.java:266)
[odata4j-core-0.8.0.redhat-2.jar:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[rt.jar:1.7.0_45]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.7.0_45]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45]
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)
[resteasy-jaxrs-2.3.8.SP4-redhat-2.jar:]
at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)
[resteasy-jaxrs-2.3.8.SP4-redhat-2.jar:]
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)
[resteasy-jaxrs-2.3.8.SP4-redhat-2.jar:]
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)
[resteasy-jaxrs-2.3.8.SP4-redhat-2.jar:]
at
org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)
[resteasy-jaxrs-2.3.8.SP4-redhat-2.jar:]
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)
[resteasy-jaxrs-2.3.8.SP4-redhat-2.jar:]
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)
[resteasy-jaxrs-2.3.8.SP4-redhat-2.jar:]
at
org.teiid.odata.ODataServletContainerDispatcher.service(ODataServletContainerDispatcher.java:118)
[classes:]
at org.teiid.odata.ODataServlet.service(ODataServlet.java:65) [classes:]
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
[resteasy-jaxrs-2.3.8.SP4-redhat-2.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
[jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at
org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
[jboss-as-web-7.4.3.Final-redhat-2.jar:7.4.3.Final-redhat-2]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)
[jbossweb-7.4.10.Final-redhat-1.jar:7.4.10.Final-redhat-1]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
Caused by: org.teiid.core.TeiidException: TEIID10036 org.teiid.core.TeiidException:
TEIID10036 org.teiid.net.ConnectionException: TEIID40087 Passthrough authentication
failed. No authentication information found.
at org.teiid.core.util.ReflectionHelper.create(ReflectionHelper.java:292)
[teiid-common-core-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at org.teiid.jdbc.ModuleHelper.createFromModule(ModuleHelper.java:53)
[teiid-client-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at org.teiid.jdbc.EmbeddedProfile.createServerConnection(EmbeddedProfile.java:60)
[teiid-client-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at org.teiid.jdbc.EmbeddedProfile.connect(EmbeddedProfile.java:50)
[teiid-client-8.7.1.redhat-8.jar:8.7.1.redhat-8]
... 35 more
Caused by: org.teiid.core.TeiidException: TEIID10036 org.teiid.net.ConnectionException:
TEIID40087 Passthrough authentication failed. No authentication information found.
at org.teiid.core.util.ReflectionHelper.create(ReflectionHelper.java:329)
[teiid-common-core-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at org.teiid.core.util.ReflectionHelper.create(ReflectionHelper.java:290)
[teiid-common-core-8.7.1.redhat-8.jar:8.7.1.redhat-8]
... 38 more
Caused by: org.teiid.net.ConnectionException: TEIID40087 Passthrough authentication
failed. No authentication information found.
at
org.teiid.transport.LocalServerConnection.authenticate(LocalServerConnection.java:132)
[teiid-runtime-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at
org.teiid.transport.LocalServerConnection.<init>(LocalServerConnection.java:99)
[teiid-runtime-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[rt.jar:1.7.0_45]
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[rt.jar:1.7.0_45]
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[rt.jar:1.7.0_45]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
[rt.jar:1.7.0_45]
at org.teiid.core.util.ReflectionHelper.create(ReflectionHelper.java:327)
[teiid-common-core-8.7.1.redhat-8.jar:8.7.1.redhat-8]
... 39 more
Caused by: org.teiid.client.security.LogonException: TEIID40087 Passthrough
authentication failed. No authentication information found.
at org.teiid.transport.LogonImpl.logon(LogonImpl.java:153)
[teiid-runtime-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at org.teiid.transport.LogonImpl.logon(LogonImpl.java:117)
[teiid-runtime-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[rt.jar:1.7.0_45]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.7.0_45]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45]
at
org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:170)
[teiid-runtime-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_45]
at
org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:274)
[teiid-engine-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at
org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:258)
[teiid-engine-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at
org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:168)
[teiid-runtime-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at com.sun.proxy.$Proxy94.logon(Unknown Source)
at
org.teiid.transport.LocalServerConnection.authenticate(LocalServerConnection.java:128)
[teiid-runtime-8.7.1.redhat-8.jar:8.7.1.redhat-8]
... 45 more
Caused by: javax.security.auth.login.LoginException: TEIID40087 Passthrough
authentication failed. No authentication information found.
at
org.teiid.services.SessionServiceImpl.passThroughLogin(SessionServiceImpl.java:214)
[teiid-runtime-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at
org.teiid.services.SessionServiceImpl.createSession(SessionServiceImpl.java:169)
[teiid-runtime-8.7.1.redhat-8.jar:8.7.1.redhat-8]
at org.teiid.transport.LogonImpl.logon(LogonImpl.java:133)
[teiid-runtime-8.7.1.redhat-8.jar:8.7.1.redhat-8]
... 57 more
{code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)