<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:59:34 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[JAVA-3423] Authenticate Java Driver credential SCRAM-SHA256</title>
                <link>https://jira.mongodb.org/browse/JAVA-3423</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;&lt;b&gt;I intented connect android app to mongodb with authentication SCRAM-SHA256 but when execute a find() in my collection, throw this exception:&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;I/cluster: Cluster created with settings &lt;/p&gt;
{hosts=[mymongoserver.com:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout=&apos;30000 ms&apos;, maxWaitQueueSize=500}
&lt;p&gt; I/art: Rejecting re-init on previously-failed class java.lang.Class&amp;lt;com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient&amp;gt;&lt;br/&gt;
 Rejecting re-init on previously-failed class java.lang.Class&amp;lt;com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient&amp;gt;&lt;br/&gt;
 I/connection: Opened connection [connectionId&lt;br class=&quot;atl-forced-newline&quot; /&gt;&lt;/p&gt;
{localValue:1, serverValue:9591}
&lt;p&gt;] to mymongoserver.com:27017&lt;br/&gt;
 I/cluster: Monitor thread successfully connected to server with description ServerDescription{address=mymongoserver.com:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion&lt;/p&gt;

{versionList=[4, 0, 9]}

&lt;p&gt;, minWireVersion=0, maxWireVersion=7, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=71782969}&lt;br/&gt;
 &lt;font color=&quot;#FF0000&quot;&gt;I/art: Rejecting re-init on previously-failed class java.lang.Class&amp;lt;com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient&amp;gt;&lt;/font&gt;&lt;br/&gt;
 I/connection: Closed connection [connectionId&lt;br class=&quot;atl-forced-newline&quot; /&gt;&lt;/p&gt;
{localValue:2}
&lt;p&gt;] to mymongoserver.com:27017 because there was a socket exception raised by this connection.&lt;br/&gt;
 &lt;font color=&quot;#FF0000&quot;&gt;E/com.probando.app.MongoDB: MongoException -&amp;gt;&lt;/font&gt;&lt;br/&gt;
 com.mongodb.MongoException: java.lang.NoClassDefFoundError: com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient&lt;br/&gt;
 at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:138)&lt;br/&gt;
 at com.mongodb.internal.connection.UsageTrackingInternalConnection.open(UsageTrackingInternalConnection.java:50)&lt;br/&gt;
 at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.open(DefaultConnectionPool.java:398)&lt;br/&gt;
 at com.mongodb.internal.connection.DefaultConnectionPool.get(DefaultConnectionPool.java:115)&lt;br/&gt;
 at com.mongodb.internal.connection.DefaultConnectionPool.get(DefaultConnectionPool.java:101)&lt;br/&gt;
 at com.mongodb.internal.connection.DefaultServer.getConnection(DefaultServer.java:92)&lt;br/&gt;
 at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.getConnection(ClusterBinding.java:126)&lt;br/&gt;
 at com.mongodb.operation.FindOperation$1.call(FindOperation.java:728)&lt;br/&gt;
 at com.mongodb.operation.FindOperation$1.call(FindOperation.java:725)&lt;br/&gt;
 at com.mongodb.operation.OperationHelper.withReadConnectionSource(OperationHelper.java:463)&lt;br/&gt;
 at com.mongodb.operation.FindOperation.execute(FindOperation.java:725)&lt;br/&gt;
 at com.mongodb.operation.FindOperation.execute(FindOperation.java:89)&lt;br/&gt;
 at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:189)&lt;br/&gt;
 at com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:143)&lt;br/&gt;
 at com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:92)&lt;br/&gt;
 at com.mongodb.client.internal.MongoIterableImpl.forEach(MongoIterableImpl.java:121)&lt;br/&gt;
 at com.mongodb.client.internal.MongoIterableImpl.into(MongoIterableImpl.java:133)&lt;br/&gt;
 at com.probando.app.MongoDB.GetDocumentos(MongoDB.java:129)&lt;br/&gt;
 at com.probando.app.MongoActivity$GetDocumentos.doInBackground(MongoActivity.java:58)&lt;br/&gt;
 at com.probando.app.MongoActivity$GetDocumentos.doInBackground(MongoActivity.java:54)&lt;br/&gt;
 at android.os.AsyncTask$2.call(AsyncTask.java:288)&lt;br/&gt;
 at java.util.concurrent.FutureTask.run(FutureTask.java:237)&lt;br/&gt;
 at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)&lt;br/&gt;
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)&lt;br/&gt;
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)&lt;br/&gt;
 at java.lang.Thread.run(Thread.java:818)&lt;br/&gt;
 Caused by: java.lang.NoClassDefFoundError: com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient&lt;br/&gt;
 at com.mongodb.internal.connection.ScramShaAuthenticator.createSaslClient(ScramShaAuthenticator.java:77)&lt;br/&gt;
 at com.mongodb.internal.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:50)&lt;br/&gt;
 at com.mongodb.internal.connection.SaslAuthenticator$1.run(SaslAuthenticator.java:47)&lt;br/&gt;
 at com.mongodb.internal.connection.SaslAuthenticator.doAsSubject(SaslAuthenticator.java:179)&lt;br/&gt;
 at com.mongodb.internal.connection.SaslAuthenticator.authenticate(SaslAuthenticator.java:47)&lt;br/&gt;
 at com.mongodb.internal.connection.InternalStreamConnectionInitializer.authenticateAll(InternalStreamConnectionInitializer.java:156)&lt;br/&gt;
 at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:63)&lt;br/&gt;
 at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:129)&lt;br/&gt;
 at com.mongodb.internal.connection.UsageTrackingInternalConnection.open(UsageTrackingInternalConnection.java:50)&#160;&lt;br/&gt;
 at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.open(DefaultConnectionPool.java:398)&#160;&lt;br/&gt;
 at com.mongodb.internal.connection.DefaultConnectionPool.get(DefaultConnectionPool.java:115)&#160;&lt;br/&gt;
 at com.mongodb.internal.connection.DefaultConnectionPool.get(DefaultConnectionPool.java:101)&#160;&lt;br/&gt;
 at com.mongodb.internal.connection.DefaultServer.getConnection(DefaultServer.java:92)&#160;&lt;br/&gt;
 at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.getConnection(ClusterBinding.java:126)&#160;&lt;br/&gt;
 at com.mongodb.operation.FindOperation$1.call(FindOperation.java:728)&#160;&lt;br/&gt;
 at com.mongodb.operation.FindOperation$1.call(FindOperation.java:725)&#160;&lt;br/&gt;
 at com.mongodb.operation.OperationHelper.withReadConnectionSource(OperationHelper.java:463)&#160;&lt;br/&gt;
 at com.mongodb.operation.FindOperation.execute(FindOperation.java:725)&#160;&lt;br/&gt;
 at com.mongodb.operation.FindOperation.execute(FindOperation.java:89)&#160;&lt;br/&gt;
 at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:189)&#160;&lt;br/&gt;
 at com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:143)&#160;&lt;br/&gt;
 at com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:92)&#160;&lt;br/&gt;
 at com.mongodb.client.internal.MongoIterableImpl.forEach(MongoIterableImpl.java:121)&#160;&lt;br/&gt;
 at com.mongodb.client.internal.MongoIterableImpl.into(MongoIterableImpl.java:133)&#160;&lt;br/&gt;
 at com.probando.app.MongoDB.GetDocumentos(MongoDB.java:129)&#160;&lt;br/&gt;
 at com.probando.app.MongoActivity$GetDocumentos.doInBackground(MongoActivity.java:58)&#160;&lt;br/&gt;
 at com.probando.app.MongoActivity$GetDocumentos.doInBackground(MongoActivity.java:54)&#160;&lt;br/&gt;
 at android.os.AsyncTask$2.call(AsyncTask.java:288)&#160;&lt;br/&gt;
 at java.util.concurrent.FutureTask.run(FutureTask.java:237)&#160;&lt;br/&gt;
 at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)&#160;&lt;br/&gt;
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)&#160;&lt;br/&gt;
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)&#160;&lt;br/&gt;
 at java.lang.Thread.run(Thread.java:818)&#160;&lt;br/&gt;
 I/cluster: Cluster created with settings &lt;/p&gt;
{hosts=[mymongoserver.com:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout=&apos;30000 ms&apos;, maxWaitQueueSize=500}

&lt;p&gt;&lt;b&gt;PD: I using org.mongodb:mongodb-driver:3.11.0 and a MongoCollection&amp;lt;BasicDBObject&amp;gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;ins&gt;Thanks for you attention&lt;/ins&gt;&#160;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/thumbs_up.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</description>
                <environment>mongodb-driver:3.11.0 intent connect to server mongo with MongoCredential.createScramSha256Credential() </environment>
        <key id="915054">JAVA-3423</key>
            <summary>Authenticate Java Driver credential SCRAM-SHA256</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13202">Works as Designed</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="johana.reza.25@gmail.com">Johana Reza</reporter>
                        <labels>
                    </labels>
                <created>Mon, 2 Sep 2019 17:37:38 +0000</created>
                <updated>Fri, 27 Oct 2023 13:21:03 +0000</updated>
                            <resolved>Mon, 2 Sep 2019 17:58:47 +0000</resolved>
                                    <version>3.11.0</version>
                                                    <component>Authentication</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="2404807" author="jeff.yemin" created="Mon, 2 Sep 2019 17:58:34 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=johana.reza.25%40gmail.com&quot; class=&quot;user-hover&quot; rel=&quot;johana.reza.25@gmail.com&quot;&gt;johana.reza.25@gmail.com&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;The Java driver is not fully supported on Android, as Android is not a full implementation of the Java platform. In particular, Android&apos;s Java platform does not support the required algorithms from &lt;tt&gt;javax.crypto.Mac#getInstance(java.lang.String)&lt;/tt&gt;, on which the driver depends for the required cryptography to implement authentication.&lt;/p&gt;

&lt;p&gt;For MongoDB on Android, I suggest you look into other solutions supported by MongoDB, including our Stitch Mobile &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; platform, and more recently, our Realm &lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt; platform.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://docs.mongodb.com/stitch/mongodb/mobile/getting-started/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.mongodb.com/stitch/mongodb/mobile/getting-started/&lt;/a&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://www.mongodb.com/realm&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.mongodb.com/realm&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="915057">JAVA-3424</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hvcys7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>