cuba-platform / cuba-gradle-plugin

Gradle plugin for building CUBA platform and applications
https://www.cuba-platform.com
Apache License 2.0
15 stars 18 forks source link

CreateDb doesn't work with mssql integrated security #109

Closed alexander-shustanov closed 5 years ago

alexander-shustanov commented 5 years ago

Prerequisites:

Edit createdDb / updateDb tasks like this:

task createDb(dependsOn: assembleDbScripts, description: 'Creates local database', type: CubaDbCreation) {
        dbms = 'mssql'
        host = 'MSEDGEWIN10\\SQLEXPRESS'
        dbName = 'cub'
        dbmsVersion = '2012'
        connectionParams = ';integratedSecurity=true'
    }

Stacktrace

Pay attention on C:\Users\IEUser\Desktop\sqljdbc_6.0\enu\auth\x64\sqljdbc_auth.dll already loaded in another classloader. Drop script works correctly.

Execution failed for task ':app-core:createDb'.
> Unable to get SQL instance

Caused by: org.gradle.api.GradleException: Unable to get SQL instance
    at com.haulmont.gradle.task.db.CubaDbTask.getSql(CubaDbTask.java:354)
    at CubaDbCreation_Decorated.getSql(Unknown Source)
    at com.haulmont.gradle.task.db.AbstractCubaDbCreation.createSysDbChangeLogTable(AbstractCubaDbCreation.java:56)
    at com.haulmont.gradle.task.db.AbstractCubaDbCreation.createDb(AbstractCubaDbCreation.java:36)
    at CubaDbCreation.super$5$createDb(CubaDbCreation.groovy)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at CubaDbCreation.createDb(CubaDbCreation.groovy:33)
    ...
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:1227e29f-9d6c-4598-8feb-524f84c95d0a
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2887)
    at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<init>(AuthenticationJNI.java:72)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3628)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:94)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3619)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7194)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2930)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2456)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2103)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1950)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1162)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:735)
    at com.haulmont.gradle.task.db.CubaDbTask.getSql(CubaDbTask.java:352)
    ... 98 more
Caused by: java.lang.UnsatisfiedLinkError: Native Library C:\Users\IEUser\Desktop\sqljdbc_6.0\enu\auth\x64\sqljdbc_auth.dll already loaded in another classloader
    at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<clinit>(AuthenticationJNI.java:52)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3627)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:94)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3619)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7194)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2930)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2456)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2103)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1950)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1162)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:735)
    at com.haulmont.gradle.task.db.CubaDbTask.getSql(CubaDbTask.java:352)
    at CubaDbCreation_Decorated.getSql(Unknown Source)
    at com.haulmont.gradle.task.db.AbstractCubaDbCreation.createSysDbChangeLogTable(AbstractCubaDbCreation.java:56)
    at com.haulmont.gradle.task.db.AbstractCubaDbCreation.createDb(AbstractCubaDbCreation.java:36)
    at CubaDbCreation.super$5$createDb(CubaDbCreation.groovy)
    ...

QA

  1. Check a case from issue
  2. Check for possible regressions (check that for all RDBMS'es createDb / updateDb works correctly)
natfirst commented 5 years ago

Studio support https://youtrack.cuba-platform.com/issue/STUDIO-5507