MS SQL Server Integrated Authentication

To configure integrated authentication for a 32-bit JVM, please contact PhixFlow Support.

Configuration

The following steps are required to enable server support for Integrated Authentication when using a 64-bit Java JVM.

1. Tomcat must be able to find the sqljdbc_auth.dll file. This is supplied with PhixFlow, in <PHIXFLOW WEBAPP>\WEB-INF\lib64. Set the Java option -Djava.library.path in the Tomcat configuration to tell Tomcat the location of the directory that contains this file. E.g.

 -Djava.library.path=C:\app\tomcat90\webapps\phixflow\WEB-INF\lib64

2. Even though a database username and password is not used as part of an integrated authentication connection, PhixFlow still requires entries for these values in its keystore. Enter dummy values in the keystore, and make sure the corresponding aliases are entered in the phixflow-datasource.xml file - the actual values stored in the keystore do not matter, as long as the aliases match. See here for more information on the keystore: Configure a Keystore and Aliases.

3. Update the url property in the phixflow-datasource.xml file by adding the argument integratedSecurity=true. E.g.:

				<property name="url">
                        <value>jdbc:sqlserver://localhost\SQLEXPRESS;databaseName=train;integratedSecurity=true</value>
                </property>

Troubleshooting

This driver not configured for integrated authentication

 On a Windows platform, when trying to connect to SQL Server using Integrated Authentication, you may see this exception:

com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication.
along with the following trace message:
com.microsoft.sqlserver.jdbc.AuthenticationJNI <clinit>
WARNING: Failed to load the sqljdbc_auth.dll

This typically indicates that the driver cannot find the appropriate sqljdbc_auth.dll in the JVM library path. To correct the problem, please make sure the java option -Djava.library.path is set to the full path of the DLL file.
Note: You may also get the same error message if the application is trying to use the incorrect architecture (x86 VS x64) version of the sqljdbc_auth.dll.

UnsatisfiedLinkError

 If you get the following exception:

java.lang.UnsatisfiedLinkError: GetDNSName

This typically indicates that the application is trying to use the incorrect version (say v1.0 VS v1.1) of the sqljdbc_auth.dll. Make sure the application is using the save version of the sqljdbc.jar and sqljdbc_auth.dll files.