This driver is not configured for integrated authentication

Khairul Islam picture Khairul Islam · Sep 12, 2015 · Viewed 17.3k times · Source

Trying to connect my java web application with MS-SQL server using sqljdbc41 for jdk 1.8. Here is the database connection code-

    Connection connection;
    String url = "jdbc:sqlserver://localhost:1433;databaseName=Lista;integratedSecurity=true";
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    connection = DriverManager.getConnection(url);

when i am trying to insert some values to the database like-

    PreparedStatement ps = connection.prepareStatement("INSERT INTO user_informations VALUES(?,?,?)");

    ps.setString(1, "value");
    ps.setString(2, "value");
    ps.setString(3, "value");

    ps.executeUpdate();

getting the following error each time-

com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication

Here are some informations about what i have tried yet-

  • i have added the path of sqljdbc41 in the path variable.
  • i have added the path of sqljdbc_auth.dll in the path variable.
  • i have added the sqljdbc41.jar into my Nebeans project library.
  • i have added the sqljdbc_auth.dll into both bin folder under jdk and jre.
  • my jdk is 64 bit under program files folder not in program file(x86).
  • jdbc driver folder is also in program file directory.
  • sql server and sql server browser services are also running.

Edit

Now i experiencing a new thing-after restarting my pc when i deploy the project for the first time then it is working perfectly but when i make any change in my code and re-run the project it's not working!

Answer

MiguelSlv picture MiguelSlv · Dec 14, 2019

sqljdbc_auth.dll is need to use windows authentication or Kerberos authentication.

Get the dll from Microsoft and install it either by:

  1. drop on application library folder
  2. drop on the java bin folder (attention if you have multiple java installations)
  3. drop the library on some folder and then add the path in the command line:

    java -Djava.library.path=<library path>...
    

The mssql-jdbc driver and the auth dll should be:

  • on the same folder (but not mandatory)
  • both from the same version
  • for the same architecture (x86/x64) JVM is running.

Check also the jdbc compatibility matrix with java versions on the download page.