< All Topics
Print

שימוש ב 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

בהצלחה

תוכן עיניינים