FastDataMasker (FDM) job fails with Windows Auth - no sqljdbc_auth in java.library.path

Document ID : KB000115934
Last Modified Date : 26/09/2018
Show Technical Document Details
Issue:
FastDataMasker (FDM) fails to use Windows Authentication when running masking jobs that are called from other processes (Portal, Javelin, etc).

The following error is displayed/logged.
 
WARNING: Failed to load the sqljdbc_auth.dll cause :- no sqljdbc_auth in java.library.path
Resolution:
Add the FDM Program Directory (where the sqljdbc_auth.dll exists) to the PATH environment variable for the user running the job.

The following Powershell script will update the registry for the USERs path. The script must be run as the USER that is running the FDM job (for example, if kicked off via Portal, the user that Portal is configured to run as).

----
# original code from here:
# https://blogs.technet.microsoft.com/heyscriptingguy/2011/07/23/use-powershell-to-modify-your-environmental-path/
#
# Run this as the service account only once.
# Logout and login again before the path setting will take effect
# Don't run the script a second time within the same session as it will add multiple instances to the path
#

##
# Update the path to FDM accordingly here:
##
$AddedFolder = 'C:\Program Files\Grid-Tools\FastDataMasker'


# Get the current search path from the environment keys in the registry.
# This is for the USERs copy of the PATH that is concatenated to the SYSTEM path
$OldPath=(Get-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Environment' -Name Path -ErrorAction SilentlyContinue).Path

# See if a new folder has been supplied.
IF (!$AddedFolder)
{ Return 'No Folder Supplied. $ENV:PATH Unchanged'}

# See if the new folder exists on the file system.
IF (!(TEST-PATH $AddedFolder))
{ Return 'Folder Does not Exist, Cannot be added to $ENV:PATH' }

# See if the new Folder is already in the path.
IF ($ENV:PATH | Select-String -SimpleMatch $AddedFolder)
{ Return 'Folder already within $ENV:PATH' }

# Set the New Path
if([string]::IsNullOrEmpty($OldPath))
{
    # User copy of the path was empty
    $NewPath=$AddedFolder
}
else
{
    # user copy of the path had other values in it
    $NewPath=$OldPath+ ';' + $AddedFolder
}

# Set the new path within the registry for the current user
Set-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Environment' -Name PATH -Value $newPath

# Show our results back to the world
Return $NewPath
----

Optionally, if it will not impact anything else be run by any / all users on the system, the FDM directory can be added to the SYSTEM path.


Once the PATH environment variable has been updated, interactive sessions (logged in users) will need to logout, then login again for the new variable to take effect. Any processing running as a service account (for example Portal) would also need to be restarted to get the new variable value.
Additional Information:
Reference Windows Authentication configuration for FDM.