一段时间后登录失败,访问令牌连接失败NT AUTHORITY \ ANONYMOUS LOGON错误 [英] Access token connection fails after some time with Login failed NT AUTHORITY\ANONYMOUS LOGON error

查看:84
本文介绍了一段时间后登录失败,访问令牌连接失败NT AUTHORITY \ ANONYMOUS LOGON错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Azure App服务上有一个Spring Web应用程序,该应用程序正在使用Microsoft JDBC驱动程序连接到Azure SQL DB,该Microsoft JDBC驱动程序使用访问令牌进行身份验证.最初可以找到它,但是一段时间后我开始获取SQLServerException:用户'NT AUTHORITY \ ANONYMOUS LOGON'登录失败

I have a Spring web application on an Azure App service that is connecting to an Azure SQL DB using the Microsoft JDBC driver authenticating using an access token. It initially works find but after some time I start to get SQLServerException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

我正在按照

这一切都可以工作一段时间(没有固定确切的时间或触发器),然后开始失败,并显示以下信息:

This all works for sometime (haven't pegged an exact time or trigger) then starts to fail with:

原因:

com.microsoft.sqlserver.jdbc.SQLServerException:用户登录失败"NT AUTHORITY \ ANONYMOUS LOGON".ClientConnectionId:connectionid已编辑于com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)在com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256)在com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108)在com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548)在com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409)在com.microsoft.sqlserver.jdbc.SQLServerConnection.access $ 100(SQLServerConnection.java:85)在com.microsoft.sqlserver.jdbc.SQLServerConnection $ LogonCommand.doExecute(SQLServerConnection.java:3373)在com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344)在com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713)在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261)在com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921)在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762)在com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077)在com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:1031)在com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:69)在org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)在org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:35)在org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:106)

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. ClientConnectionId:connectionidredacted at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259) at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256) at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108) at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4548) at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3409) at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:85) at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3373) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7344) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2713) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2261) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1921) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1762) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1077) at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:1031) at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:69) at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:35) at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:106)

推荐答案

您正在使用的令牌确实会过期,您没有在代码中指定任何令牌生存期,因此令牌生存期取决于系统默认值.

You are using token which does expire, you are not specifying any token lifetime in you code so token lifetime depends on the systems default.

这篇关于一段时间后登录失败,访问令牌连接失败NT AUTHORITY \ ANONYMOUS LOGON错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆