当前位置: 首页 > 知识库问答 >
问题:

访问令牌连接在一段时间后失败,登录失败NT授权\匿名登录错误

皇甫学海
2023-03-14

我在Azure App服务上有一个Spring html" target="_blank">web应用程序,它使用Microsoft JDBC驱动程序连接到Azure SQL DB,并使用访问令牌进行身份验证。它最初可以工作,但过了一段时间后,我开始得到SQLServerException:登录失败,用户'NT Authority\Anonymous Logon'

我正在遵循MS文档中概述的步骤。

    AuthenticationContext context = new AuthenticationContext(mySTSUrl, false, Executors.newFixedThreadPool(1));
    ClientCredential cred = new ClientCredential(myClientId, myClientSecret);

    Future<AuthenticationResult> future = context.acquireToken("https://database.windows.net/", cred, null);
    String accessToken = future.get().getAccessToken();

    // Connect with the access token.
    ds = new SQLServerDataSource();

    ds.setServerName(myServer); // Replace with your server name.
    ds.setDatabaseName(myDB); // Replace with your database name.
    ds.setEncrypt(true);
    ds.setAccessToken(accessToken);
    ds.setHostNameInCertificate("*.database.windows.net");
    ds.setTrustServerCertificate(false);
    ds.setLoginTimeout(30);

com.microsoft.sqlserver.jdbc.sqlserverException:用户“NT Authority\匿名登录”登录失败。ClientConnectionID:ConnectionIdRedacted在com.microsoft.sqlServer.jdbc.sqlServer.jdbc.makefromDatabaseError(SqlServerException.java:259)在com.microsoft.sqlServer.jdbc.tdstokenHandler.Oneof(tdsparser.java:256)在com.microsoft.sqlServer.jdbc.tdsparser.parse(tdsparser.java:108)在3409)在com.microsoft.sqlserver.jdbc.sqlserverconnection.Access$100(sqlserverconnection.java:85)在com.microsoft.sqlserver.jdbc.sqlserverconnection$logoncommand.doExecute(sqlserverconnection:3373)在com.microsoft.sqlserver.jdbc.tdscommd.execute(iobuffer.java:7344)在Microsoft.sqlserver.jdbc.sqlserverconnection.loginnection.java:1921)在com.microsoft.sqlserver.jdbc.sqlserverconnection.connectinternal(sqlserverconnection.java:1762)在com.microsoft.sqlserver.jdbc.sqlserverdatasource.getconnectioninternal(sqlserverconnection.java:1077)在com.microsoft.sqlserver.jdbc.sqlserverdatasource.java:1031)在在org.hibernate.internal.noncontextualJDBCConnectionAccess.getConnection(NoncontextualJDBCConnectionAccess.java:35)在org.hibernate.resource.jdbc.internal.logicalConnectionManagedImpl.AcquireConnectionIfNeed(LogicalConnectionManagedImpl.java:106)

共有1个答案

袁山
2023-03-14

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

 类似资料:
  • 问题内容: 我无法摆脱这个错误。我已经通过SSMS添加了“ NT AUTHORITY \ NETWORK”用户以及使用此线程作为参考的相关角色:用户“ NT AUTHORITY \ NETWORKSERVICE”的登录失败 我试图通过Windows服务建立数据库连接。在调试模式下,数据库连接可以正常工作。当我实际尝试运行已安装的服务时,便会出现此错误。 这是我来自app.config的连接字符串:

  • 所以阅读Sybase的实用手册,我发现我可以设置我的 localhost服务器使用dsedit.exe.。 然后我尝试在Aqua Data Studio中注册我的localhost服务器,方法如下: 但是我得到了以下错误: 管理员用户名是什么 我在哪里/如何设置它?? 根据文档,它说默认的系统管理员ID是“sa”,没有密码。。 (http://infocenter.sybase.com/archi

  • 我正在使用Angular 7和Spring Boot实现一个登录页面,我正在处理一个失败的登录。基本上,我想在X登录尝试失败后锁定登录特定时间。 HttpSecurity配置 为了处理登录,我创建了一个过滤器 登录工作正常,没有问题。我的问题是不成功的身份验证方法。当用户输入错误的凭据时,会引发Bad凭据异常,并调用不成功的身份验证方法。在这里,我需要再次访问请求表单以提取用户名并处理身份验证失败

  • 所以我被这个令人沮丧的问题困住了。我对Firebase上的Google身份验证还很陌生,但我已经做了Firebase文档中关于如何集成Google登录身份验证的所有说明,然而我仍然在控制台中收到这个奇怪的错误,包括两个部分: 而且还 在有人试图指出以前就堆栈溢出提出的类似问题之前,以下是我在看到所有可用的解决方案之后所做的,但non已经解决了该错误 我有我的项目的SHA1指纹 我有我的OAUTH2

  • 一、检查服务器是否填写了DNS,即服务器是否能上网访问www.phpcms.cn。有部分用户是本机通信失败,检查C:\WINDOWS\system32\drivers\etc\hosts文件,如果用的是localhost域名访问,本机是否绑定了127.0.0.1 localhost 二、检查phpsso的访问地址是否正确,然后查看设置->phpsso设置中的应用id、接口地址、加密密钥、版本号和