שימוש ב Windows Authentication מול MSSQL
כברירת מחדל, שימוש ב EI עם MSSQL מחייב הגדרת שם משתמש וסיסמה. לעיתים נידרש ע"י לקוח להגדיר משתמש אפליקטיבי ורק איתו נוכל לעשות שימוש מול בסיס הנתונים של החברה.
כדי לעשות זאת יש לבצע שינויים בהגדרות המערכת. חשוב לזכור ששינויים אלו הם ברמת המוצר כך שלא ניתן יהיה לפנות שוב עם שם משתמש וסיסמה בעבודה מול MSSQL.
שינוי הגדרות אלו יאפשר לנו שימוש ב Mediators DBlookup + DBReport וכן ב DataService.
הורדת Driver מתאים
יש להוריד MSSQL Driver. יכול להיות שמשימוש קודם יש כבר את ה Driver אך מומלץ לעבוד עם אחד מעודכן יותר ושמכיל את הקבצים שאנו צריכים.
לשימוש בגרסה שלנו ניתן להוריד את הDriver מהכתובת:
https://github.com/Microsoft/mssql-jdbc/releases/tag/v12.4.0
יש לבחור בגרסה 8 או 11 בהתאם לגרסת ה JAVA שמותקנת בשרת. לדוגמה, אם מותקנת גרסה 8 נשתמש בקובץ mssql-jdbc-12.4.0.jre8.jar
את הקובץ Jar אנחנו נמקם בתיקיית lib שנמצאת תחתת EI/lib
הורדת dll מתאים
נוריד מאותו מקור את הקובץ mssql-jdbc_auth.zip. זהו קובץ שמכיל את ה dll אותו אנחנו צריכים לצורך הגדרת שימוש ב MSSQL ע"י Win Auth.
נפרוס את הקובץ zip
גישה לקובץ המתאים
לפי מערכת ההפעלה שלנו נבחר את הקובץ dll המתאים שנמצא בנתיב:
<DRIVER_DIR>/auth/<Architecture>/
את הקובץ נוכל להעתיק למיקום קבוע בו נוכל לעשות שימוש בשלב הבא. חשוב למקם את הקובץ במקום שלא יימחק
שינוי קובץ integrator.bat
ניכנס לקובץ integrator.bat במצב עריכה
נוסיף את הפקודה הבאה שמנחה את EI באיזה dll להשתמש
set CMD_LINE_ARGS=%CMD_LINE_ARGS% -Djava.library.path="C:\Users\yossis.CONSIST-SYS\Downloads\mssql-jdbc_auth\x64"
את השורה נמקם תחת set CMD_LINE_ARGS שכבר קיימת כך שהקובץ אמור להיראות כך בסיום:
rem ---------- Add jars to classpath ----------------
if %JAVA_VERSION% GEQ 110 set CARBON_CLASSPATH=.\wso2\lib\*;%CARBON_CLASSPATH%
if %JAVA_VERSION% LEQ 18 set CARBON_CLASSPATH=.\wso2\lib\*;%CARBON_CLASSPATH%
if %JAVA_VERSION% GEQ 110 set JAVA_VER_BASED_OPTS=--add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens java.rmi/sun.rmi.transport=ALL-UNNAMED
set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms256m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="%CARBON_HOME%\repository\logs\heap-dump.hprof" -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\wso2\tmp" -Dcatalina.base="%CARBON_HOME%\wso2\lib\tomcat" -Dwso2.carbon.xml="%CARBON_HOME%\conf\carbon.xml" -Dwso2.registry.xml="%CARBON_HOME%\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\conf\user-mgt.xml" -Dwso2.transports.xml="%CARBON_HOME%\conf\mgt-transports.xml" -Djava.util.logging.config.file="%CARBON_HOME%\conf\etc\logging-bridge.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcarbon.config.dir.path="%CARBON_HOME%\conf" -Dcomponents.repo="%CARBON_HOME%\wso2\components\plugins" -Dcarbon.config.dir.path="%CARBON_HOME%\conf" -Dcarbon.components.dir.path="%CARBON_HOME%\wso2\components" -Dcarbon.extensions.dir.path="%CARBON_HOME%\extensions" -Dcarbon.dropins.dir.path="%CARBON_HOME%\dropins" -Dcarbon.external.lib.dir.path="%CARBON_HOME%\lib" -Dcarbon.patches.dir.path="%CARBON_HOME%\patches" -Dcarbon.servicepacks.dir.path="%CARBON_HOME%\servicepacks" -Dcarbon.internal.lib.dir.path="%CARBON_HOME%\wso2\lib" -Dconf.location="%CARBON_HOME%\conf" -Dcom.atomikos.icatch.file="%CARBON_HOME%\wso2\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dcarbon.classpath=%CARBON_CLASSPATH% -Dfile.encoding=UTF8 -DworkerNode=false -Dei.extendedURIBasedDispatcher=org.wso2.carbon.integrator.core.handler.IntegratorStatefulHandler -Dorg.wso2.ignoreHostnameVerification=true -Dorg.apache.activemq.SERIALIZABLE_PACKAGES="*" -DavoidConfigUpdate=true -DenableCorrelationLogs=false -Dorg.wso2.CorrelationLogInterceptor.BlacklistedThreads=Framework,Start,RegistryLogWritter,Component -Dproperties.file.path=default
set CMD_LINE_ARGS=%CMD_LINE_ARGS% -Djava.library.path="C:\Users\yossis.CONSIST-SYS\Downloads\mssql-jdbc_auth\x64"
הגדרת connection string
כעת, כדי שנוכל לומר ל Mediator להשתמש ביוזר הקיים של השרת, נצטרך להוסיף ל connection string את ההגדרה integratedSecurity=true.
בנוסף, מיכוון ששדה username הוא חובה, נמלא אותו בערך סתמי. כך לדוגמה נראה שימוש סופי בהגדרת Mediator:
<dblookup>
<connection>
<pool>
<driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver>
<url>jdbc:sqlserver://localhost:1433;databaseName=consistCRM;integratedSecurity=true;encrypt=false;</url>
<user>dummy</user>
<password/>
</pool>
</connection>
<statement>
<sql><![CDATA[select top 1 [activity_name] from [activities]]]></sql>
<result column="activity_name" name="activityName"/>
</statement>
</dblookup>
אתחול EI
יש לאתחל את EI כדי שכל ההגדרות יישמו ונוכל לעבוד מול MSSQL ע"י שימוש ב Win Auth
בהצלחה