[JBoss JIRA] (TEIID-3057) Kerberos ODBC connection on Teiid 8.8.0
by Cristiano Nicolai (JIRA)
[ https://issues.jboss.org/browse/TEIID-3057?page=com.atlassian.jira.plugin... ]
Cristiano Nicolai commented on TEIID-3057:
------------------------------------------
Hi Ramesh, no specific configuration was needed on client side, it just works out of the box. I believe that is enforced/requested by the transport authentication on Teiid.
> Kerberos ODBC connection on Teiid 8.8.0
> ---------------------------------------
>
> Key: TEIID-3057
> …
[View More]URL: https://issues.jboss.org/browse/TEIID-3057
> Project: Teiid
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 8.8
> Environment: Teiid 8.8.0
> EAP 6.1.1
> Reporter: Cristiano Nicolai
> Assignee: Ramesh Reddy
> Priority: Blocker
>
> After upgrading from version 8.7.0.Final to version 8.8.0.Final connections via ODBC using Kerberos/GSS stopped working.
> When I try to connect with the new version, on the server I get the following error:
>
> 12:24:31,755 ERROR [org.teiid.ODBC] (New I/O worker #2) TEIID40015 Unexpected error occurred: java.lang.NullPointerException
> at java.util.Hashtable.put(Hashtable.java:514) [rt.jar:1.7.0_55]
> at org.teiid.odbc.ODBCServerRemoteImpl.logon(ODBCServerRemoteImpl.java:244) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_55]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_55]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_55]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_55]
> at org.teiid.transport.ODBCClientInstance.processMessage(ODBCClientInstance.java:127) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at org.teiid.transport.ODBCClientInstance.receivedMessage(ODBCClientInstance.java:116) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at org.teiid.transport.SSLAwareChannelHandler.messageReceived(SSLAwareChannelHandler.java:211) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
>
> From the client I get the following message: psql: duplicate GSS authentication request
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
[View Less]
10 years, 8 months
[JBoss JIRA] (TEIID-3058) Cassandra: cannot compare timestamp field in where clause
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-3058?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-3058:
---------------------------------------
I think the issue here is that the cassandra logic is simply assuming the default JDBC format will work. Instead it looks like cassandra driver doesn't support the escape sequence and just wants a string literal of the timestamp (more than likely this will be true for date/time as well). The workaround is to instead model as a …
[View More]string type and use a view to do the conversion to timestamp.
> Cassandra: cannot compare timestamp field in where clause
> ----------------------------------------------------------
>
> Key: TEIID-3058
> URL: https://issues.jboss.org/browse/TEIID-3058
> Project: Teiid
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Misc. Connectors
> Affects Versions: 8.7
> Environment: Cassandra with Teiid 8.7
> Reporter: Ivan Chan
> Assignee: Steven Hawkins
> Labels: Teiid
> Fix For: 8.9
>
>
> It seems like Teiid is having problem to compare translate CQL if there is timestamp comparison in where clause:
> ORIGINAL SQL:
> select "cassandrads_sales"."product_family" as "cassandrads_sales_product_family",
> "cassandrads_sales"."product_family" as "cassandrads_sales_product_family1"
> from "cassandrads"."sales" "cassandrads_sales"
> where "cassandrads_sales"."the_date" <= '2013-05-01 00:00:00'
> limit 1000
> TRANSLATED CQL:
> SELECT cassandrads.sales.product_family FROM cassandrads.sales WHERE cassandrads.sales.the_date <= {ts'2013-05-01 00:00:00.0'} LIMIT 1000
> And I got this error:
> Caused by: org.teiid.translator.TranslatorException: line 1:55 no viable alternative at input '2013-05-01 00:00:0
> at org.teiid.translator.cassandra.CassandraQueryExecution.execute(CassandraQueryExecution.java:80)
> at org.teiid.translator.cassandra.CassandraQueryExecution.execute(CassandraQueryExecution.java:72)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:325)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:135)
> If it is not possible to do time/ data comparison for CQL, maybe you guys should consider to do it in memory instead. Thanks.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
[View Less]
10 years, 8 months
[JBoss JIRA] (TEIID-3058) Cassandra: cannot compare timestamp field in where clause
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-3058?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-3058:
----------------------------------
Fix Version/s: 8.9
> Cassandra: cannot compare timestamp field in where clause
> ----------------------------------------------------------
>
> Key: TEIID-3058
> URL: https://issues.jboss.org/browse/TEIID-3058
> Project: Teiid
> Issue Type: Bug
> Security …
[View More]Level: Public(Everyone can see)
> Components: Misc. Connectors
> Affects Versions: 8.7
> Environment: Cassandra with Teiid 8.7
> Reporter: Ivan Chan
> Assignee: Steven Hawkins
> Labels: Teiid
> Fix For: 8.9
>
>
> It seems like Teiid is having problem to compare translate CQL if there is timestamp comparison in where clause:
> ORIGINAL SQL:
> select "cassandrads_sales"."product_family" as "cassandrads_sales_product_family",
> "cassandrads_sales"."product_family" as "cassandrads_sales_product_family1"
> from "cassandrads"."sales" "cassandrads_sales"
> where "cassandrads_sales"."the_date" <= '2013-05-01 00:00:00'
> limit 1000
> TRANSLATED CQL:
> SELECT cassandrads.sales.product_family FROM cassandrads.sales WHERE cassandrads.sales.the_date <= {ts'2013-05-01 00:00:00.0'} LIMIT 1000
> And I got this error:
> Caused by: org.teiid.translator.TranslatorException: line 1:55 no viable alternative at input '2013-05-01 00:00:0
> at org.teiid.translator.cassandra.CassandraQueryExecution.execute(CassandraQueryExecution.java:80)
> at org.teiid.translator.cassandra.CassandraQueryExecution.execute(CassandraQueryExecution.java:72)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:325)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:135)
> If it is not possible to do time/ data comparison for CQL, maybe you guys should consider to do it in memory instead. Thanks.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
[View Less]
10 years, 8 months
[JBoss JIRA] (TEIID-3058) Cassandra: cannot compare timestamp field in where clause
by Ivan Chan (JIRA)
Ivan Chan created TEIID-3058:
--------------------------------
Summary: Cassandra: cannot compare timestamp field in where clause
Key: TEIID-3058
URL: https://issues.jboss.org/browse/TEIID-3058
Project: Teiid
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Misc. Connectors
Affects Versions: 8.7
Environment: Cassandra with Teiid 8.7
Reporter: Ivan Chan
…
[View More] Assignee: Steven Hawkins
It seems like Teiid is having problem to compare translate CQL if there is timestamp comparison in where clause:
ORIGINAL SQL:
select "cassandrads_sales"."product_family" as "cassandrads_sales_product_family",
"cassandrads_sales"."product_family" as "cassandrads_sales_product_family1"
from "cassandrads"."sales" "cassandrads_sales"
where "cassandrads_sales"."the_date" <= '2013-05-01 00:00:00'
limit 1000
TRANSLATED CQL:
SELECT cassandrads.sales.product_family FROM cassandrads.sales WHERE cassandrads.sales.the_date <= {ts'2013-05-01 00:00:00.0'} LIMIT 1000
And I got this error:
Caused by: org.teiid.translator.TranslatorException: line 1:55 no viable alternative at input '2013-05-01 00:00:0
at org.teiid.translator.cassandra.CassandraQueryExecution.execute(CassandraQueryExecution.java:80)
at org.teiid.translator.cassandra.CassandraQueryExecution.execute(CassandraQueryExecution.java:72)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:325)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:135)
If it is not possible to do time/ data comparison for CQL, maybe you guys should consider to do it in memory instead. Thanks.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
[View Less]
10 years, 8 months
[JBoss JIRA] (TEIID-3057) Kerberos ODBC connection on Teiid 8.8.0
by Ramesh Reddy (JIRA)
[ https://issues.jboss.org/browse/TEIID-3057?page=com.atlassian.jira.plugin... ]
Ramesh Reddy reassigned TEIID-3057:
-----------------------------------
Assignee: Ramesh Reddy (was: Steven Hawkins)
> Kerberos ODBC connection on Teiid 8.8.0
> ---------------------------------------
>
> Key: TEIID-3057
> URL: https://issues.jboss.org/browse/TEIID-3057
> Project: Teiid
> Issue Type: Bug
> Security Level: …
[View More]Public(Everyone can see)
> Affects Versions: 8.8
> Environment: Teiid 8.8.0
> EAP 6.1.1
> Reporter: Cristiano Nicolai
> Assignee: Ramesh Reddy
> Priority: Blocker
>
> After upgrading from version 8.7.0.Final to version 8.8.0.Final connections via ODBC using Kerberos/GSS stopped working.
> When I try to connect with the new version, on the server I get the following error:
>
> 12:24:31,755 ERROR [org.teiid.ODBC] (New I/O worker #2) TEIID40015 Unexpected error occurred: java.lang.NullPointerException
> at java.util.Hashtable.put(Hashtable.java:514) [rt.jar:1.7.0_55]
> at org.teiid.odbc.ODBCServerRemoteImpl.logon(ODBCServerRemoteImpl.java:244) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_55]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_55]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_55]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_55]
> at org.teiid.transport.ODBCClientInstance.processMessage(ODBCClientInstance.java:127) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at org.teiid.transport.ODBCClientInstance.receivedMessage(ODBCClientInstance.java:116) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at org.teiid.transport.SSLAwareChannelHandler.messageReceived(SSLAwareChannelHandler.java:211) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
>
> From the client I get the following message: psql: duplicate GSS authentication request
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
[View Less]
10 years, 8 months
[JBoss JIRA] (TEIID-3038) Add spatial query support to the Teiid MongoDB translator
by Ramesh Reddy (JIRA)
[ https://issues.jboss.org/browse/TEIID-3038?page=com.atlassian.jira.plugin... ]
Ramesh Reddy commented on TEIID-3038:
-------------------------------------
I found two more relevant functions in MongoDB "near" and "nearSphere" per http://docs.mongodb.org/manual/reference/operator/query-geospatial/
Also the above seems to targeted only to Polygons, according to GeoJSON format that (http://geojson.org/geojson-spec.html#id3) MongoDb supports, you can also support Point, Line etc. So, I am …
[View More]designing the function signature to be like
{code}
CREATE FOREIGN FUNCTION geoIntersects (columnRef string, type string, coordinates decimal[][]) RETURNS boolean;
CREATE FOREIGN FUNCTION geoWithin (ccolumnRef string, type string, coordinates decimal[][]) RETURNS boolean;
CREATE FOREIGN FUNCTION near (ccolumnRef string, coordinates decimal[], maxdistance integer) RETURNS boolean;
CREATE FOREIGN FUNCTION nearSphere (ccolumnRef string, coordinates decimal[], maxdistance integer) RETURNS boolean;
{code}
where type can be Point, Polygon etc. Coordinates are defined as array of decimals.
so a sample SQL query looks like
{code}
SELECT * FROM features WHERE mongo.geoIntersects(loc, 'Polygon', ((11.0, 43.0), (11.0, 42.0), (10.0, 42.0), (10.0, 43.0), (11.0, 43.0) ));
{code}
or
{code}
SELECT * FROM features WHERE mongo.geoIntersects(loc, 'Point', ((11.0, 43.0), ));
{code}
This way we can support all the available query support. The Teiid query to MongoDB looks like
{code}
db.features.aggregate({$match :{ \"loc\" : { \"$geoIntersects\" : { \"$geometry\" : { \"type\" : \"Polygon\" , \"coordinates\" : [ [ [11.0, 43.0], [11.0, 42.0], [10.0, 42.0], [10.0, 43.0], [11.0, 43.0] ]]}}}}}
{code}
[~mdfspiff] However, if you think that, what you suggested is more concise form to represent, then I can easily add an alias to above function like
{code}
CREATE FOREIGN FUNCTION geoPolygonIntersects (ref object, north double, east double, west double, south double) RETURNS boolean;
{code}
Notice the change in the function name. Also I found no references how to handle a query like
{code}
SELECT * FROM features WHERE mongo.geoIntersects(loc, 'Polygon', ((11.0, 43.0), (11.0, 42.0), (10.0, 42.0), (10.0, 43.0), (11.0, 43.0) )) = false;
{code}
where I want find documents that are do not match, I could not find any proper syntax to issue a "$not" with this. Any insight would be great!
> Add spatial query support to the Teiid MongoDB translator
> ---------------------------------------------------------
>
> Key: TEIID-3038
> URL: https://issues.jboss.org/browse/TEIID-3038
> Project: Teiid
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: Misc. Connectors
> Affects Versions: 8.8
> Reporter: Michael Farwell
> Assignee: Ramesh Reddy
> Fix For: 8.9
>
>
> We'd like to be able to issue geoIntersects and geoWithin queries through the MongoDB translator. See comment below on a proposed approach.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
[View Less]
10 years, 8 months
[JBoss JIRA] (TEIID-3057) Kerberos ODBC connection on Teiid 8.8.0
by Ramesh Reddy (JIRA)
[ https://issues.jboss.org/browse/TEIID-3057?page=com.atlassian.jira.plugin... ]
Ramesh Reddy commented on TEIID-3057:
-------------------------------------
Is there any client side configuration you need to do, to instruct the PG driver to participate in kerberoes either through authentication or delegation scenarios?
> Kerberos ODBC connection on Teiid 8.8.0
> ---------------------------------------
>
> Key: TEIID-3057
> URL: https://issues.…
[View More]jboss.org/browse/TEIID-3057
> Project: Teiid
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 8.8
> Environment: Teiid 8.8.0
> EAP 6.1.1
> Reporter: Cristiano Nicolai
> Assignee: Steven Hawkins
> Priority: Blocker
>
> After upgrading from version 8.7.0.Final to version 8.8.0.Final connections via ODBC using Kerberos/GSS stopped working.
> When I try to connect with the new version, on the server I get the following error:
>
> 12:24:31,755 ERROR [org.teiid.ODBC] (New I/O worker #2) TEIID40015 Unexpected error occurred: java.lang.NullPointerException
> at java.util.Hashtable.put(Hashtable.java:514) [rt.jar:1.7.0_55]
> at org.teiid.odbc.ODBCServerRemoteImpl.logon(ODBCServerRemoteImpl.java:244) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_55]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_55]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_55]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_55]
> at org.teiid.transport.ODBCClientInstance.processMessage(ODBCClientInstance.java:127) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at org.teiid.transport.ODBCClientInstance.receivedMessage(ODBCClientInstance.java:116) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at org.teiid.transport.SSLAwareChannelHandler.messageReceived(SSLAwareChannelHandler.java:211) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
>
> From the client I get the following message: psql: duplicate GSS authentication request
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
[View Less]
10 years, 8 months
[JBoss JIRA] (TEIID-3057) Kerberos ODBC connection on Teiid 8.8.0
by Cristiano Nicolai (JIRA)
[ https://issues.jboss.org/browse/TEIID-3057?page=com.atlassian.jira.plugin... ]
Cristiano Nicolai commented on TEIID-3057:
------------------------------------------
These are the main changes I had to do:
# New socket bindings
{code:xml}
<socket-binding name="teiid-odbc-gssapi" port="5433"/>
{code}
# New transport
{code:xml}
<transport name="odbc-gssapi" socket-binding="teiid-odbc-gssapi" protocol="pg">
<authentication security-domain="domain" type="GSS" /…
[View More]>
<ssl mode="enabled" ssl-protocol="SSLv3" keymanagement-algorithm="SunX509">
<keystore name="file.keystore" password="changeit" key-alias="host"/>
</ssl>
</transport>
{code}
# New security domain
{code:xml}
<security-domain name="domain" cache-type="default">
<authentication>
<login-module code="SPNEGO" flag="requisite">
<module-option name="password-stacking" value="useFirstPass" />
<module-option name="serverSecurityDomain" value="host" />
<module-option name="removeRealmFromPrincipal" value="true"/>
</login-module>
<login-module code="UsersRoles" flag="required">
<module-option name="password-stacking" value="useFirstPass" />
<module-option name="usersProperties" value="users.properties" />
<module-option name="rolesProperties" value="roles.properties" />
</login-module>
</authentication>
</security-domain>
{code}
# New security domain host
{code:xml}
<security-domain name="host" cache-type="default">
<authentication>
<login-module code="Kerberos" flag="required">
<module-option name="storeKey" value="true" />
<module-option name="useKeyTab" value="true" />
<module-option name="principal" value="principal@domain" />
<module-option name="keyTab" value="file.keytab" />
<module-option name="doNotPrompt" value="true" />
</login-module>
</authentication>
</security-domain>
{code}
> Kerberos ODBC connection on Teiid 8.8.0
> ---------------------------------------
>
> Key: TEIID-3057
> URL: https://issues.jboss.org/browse/TEIID-3057
> Project: Teiid
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 8.8
> Environment: Teiid 8.8.0
> EAP 6.1.1
> Reporter: Cristiano Nicolai
> Assignee: Steven Hawkins
> Priority: Blocker
>
> After upgrading from version 8.7.0.Final to version 8.8.0.Final connections via ODBC using Kerberos/GSS stopped working.
> When I try to connect with the new version, on the server I get the following error:
>
> 12:24:31,755 ERROR [org.teiid.ODBC] (New I/O worker #2) TEIID40015 Unexpected error occurred: java.lang.NullPointerException
> at java.util.Hashtable.put(Hashtable.java:514) [rt.jar:1.7.0_55]
> at org.teiid.odbc.ODBCServerRemoteImpl.logon(ODBCServerRemoteImpl.java:244) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_55]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_55]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_55]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_55]
> at org.teiid.transport.ODBCClientInstance.processMessage(ODBCClientInstance.java:127) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at org.teiid.transport.ODBCClientInstance.receivedMessage(ODBCClientInstance.java:116) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
> at org.teiid.transport.SSLAwareChannelHandler.messageReceived(SSLAwareChannelHandler.java:211) [teiid-runtime-8.8.0.Final.jar:8.8.0.Final]
>
> From the client I get the following message: psql: duplicate GSS authentication request
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
[View Less]
10 years, 8 months