Navigace:  MobilChange™ - Dokumentace > Administrace a funkčnost MobilChange™ > Administrátorské nástroje > Popis MobilChange > Serverové části > Základní serverové části > Knihovny > MxWebServices > Webové služby MobilChange > MX Service Point >

Společné komponenty

Předchozí stránkaDomůDalší stránka

Některé komponenty sdružené pod MxServicePoints využívají společné komponenty:

#Uživatelské validátory - umožňují vlastní autorizaci uživatelů webových služeb, např. vůči uživatelům z UMS databáze

#Uživatelské autorizátory - umožňují vlastní autorizaci volání webových služeb, např. pro povolení IP adresy atd.

#Auditory - umožňují audit/logování některých služeb (SOAP XML Parseru a některých metod MxWebServices)

Vlastní validátory webových služeb. Ověřují jména a heslo uživatele. Vlastní validátor neřeší, na jaké úrovni se validace bude provádět (Transport, Message ...) - to je dáno konfigurací endpointu (viz binding v konfiguraci služby).

Aktuálně jsou implenetovány validátory:

DumyValidator - testovací validátor s účty definovanými v konfiguraci

UmsDbUserValidator - validátor ověřující uživatele a heslo vůči uživatelům z UMS DB (nahrazuje MxWebServiceAuthenticator)

 

Konfigurace validátoru je určena v nepoviném elementu <customValidatorConfig>

 

Testovací validátor - ověřuje oproti seznamu účtů definovaných v konfiguraci.

Validátor je definován použitím elementu <dummyValidatorConfig>. Element <accounts> obsahuje elementy definující atributy key a value, které představují uživatelské jméno (key) a heslo (value).

Ukázka konfigurace:

     <customValidatorConfig>
   <dummyValidatorConfig>
     <accounts>
    <account key="test" value="test" />
    <account key="authtestx" value="pass" />
     </accounts>
   </dummyValidatorConfig>
    </customValidatorConfig>

Zde jsou nakonfigurovány dva účty - test/test a authtestx/pass.

 

Validátor pro ověření uživatele vůči uživatelům z UMS DB. Ověřuje vůči sloupcům EMAIL (case insensitive) a PASSWORD z tabulky UMS_USER.

Validátor je definován použitím elementu <umsDbUserValidatorConfig>, který obsauje atributy:

cacheEntryExpirationPeriod = počet vteřin udávající, jak dlouho bude validní záznam v lokální cache validátoru - je-li záznam starší, smaže se z cache a načte z DB. (Tedy pokud by došlo ke smazání nebo změně uživatele v DB, můžou se maximálně po tuto dobu přihlašovat uživatel starými hodnotami)

wrongPasswordExpirationPeriod = počet vteřin platnosti záznamu po špatně zadaném heslu. Pokud je špatně zadané heslo a záznam v cache je starší než tato hodnota, smaže se záznam z cache a načte z DB. (Aby se změna hesla projevila dříve než je platnost cache a zároveň, aby se při chybné konfiguraci nenačítal záznam při každém špatném požadavku).

Příklad konfigurace:

    <customValidatorConfig>
        <umsDbUserValidatorConfig cacheEntryExpirationPeriod="1800" wrongPasswordExpirationPeriod="30" />
    </customValidatorConfig>

 

Validátor v zákaznické knihovně implementující rozhraní <code>UserNamePasswordValidator</code> (namespace System.IdentityModel.Selectors).

Validátor je definován použitám elementu <customLibraryValidatorConfig>, který obsauje atributy:

serviceAssemblyPath = cesta ke knihovně implementující daný validátor

serviceImplementingType = typ implementující validátor

Pokud validátor implementuje rozhraní INeedCustomConfigParameters (namespace Datasys.Ums.MobilChange.MxServicePoints.Security.Common), bude mu injektována zákaznická konfigurace v elementu customConfigParameters viz příklad:

Příklad konfigurace:

  <customLibraryValidatorConfig
      serviceAssemblyPath="KicShiftsRestService.dll"
      serviceImplementingType="KicShiftsRestService.Security.KicUserValidator">
    <customConfigParameters>
     <Parametr1>Hodnota 1</Parametr1>
     <Parametr2>Hodnota 2</Parametr2>
    </customConfigParameters>
  </customLibraryValidatorConfig>

 

Vlastní autorizátor webových služeb. Umožňuje ověřit např. IP adresy volajících apod.

Aktuálně jsou implenetovány autorizátory:

IPAuhtorizator - autorizátor ověřující IP adresu volajícího

Konfigurace autorizátoru je určena v nepoviném elementu <customAuthorizatorConfig>

 

Ověřuje IP adresu volajícího, zda je v povolených IP adresách.

Autorizátor je definován použitím elementu <ipAuthorizatorConfig>. Element <allowedIPAddresses> obsahuje elementy definující povolené IP adresy.

Ukázka konfigurace:

  <customAuthorizatorConfig>
      <ipAuthorizatorConfig>
     <allowedIPAddresses>
       <ip>127.0.0.1</ip>
    <ip>192.168.48.1</ip>
     </allowedIPAddresses>
   </ipAuthorizatorConfig>
  </customAuthorizatorConfig>

Zde jsou nakonfigurovány dvě povolené IP adresy.

 

Auditory umožňují aduit/logování volání některých služeb (MxWebService, SOAP XML parser). Např. logování hlaviček, vstupních parametrů a výsledků volání do databáze, do souborů nebo prostřednictvím webové služby.

Implementované validátory:

auditorViaStoredProcedure = auditor ukládající data do databáze prostřednictvím uložené procedury.

Konfigurace validátoru je určena v nepoviném elementu <auditors>.

 

Auditor ukládá data do databáze prostřednictvím uložené procedury s definovanými výrazy interpretu pro plnění parametrů uložení procedury danými hodnotami (hodnoty HTTP hlaviček, výsledek volání nebo parametry vstupního volání).

Auditor je definován použitím elementu <auditorViaStoredProcedure>, který je konfigurován elementy:

<auditorName> = jméno auditoru pro snadnější identifikaci

<storedProcedureName> = jméno uložené procedury, která se bude volat

<parameters> definice parametrů s hodnotami pro volání uložené procedury

<parameterMapperField> definice plnění parametru, obsahuje atributy:

parameterName = jméno parametru v uložené proceduře

parameterType = typ parametru v uložené proceduře, zatím pouze typ STRING

expression = výraz interpretu pro mapování hodnoty viz mapování dále

defaultValue = defaultní hodnota, pokud je vyhodnocení výrazu prázdný řetětec

Příklad konfigurace:

    <auditors>
      <auditorViaStoredProcedure>
     <auditorName>TestSPAuditor</auditorName>
     <storedProcedureName>AuditEddie</storedProcedureName>
     <parameters>
       <parameterMapperField parameterName="Param1" parameterType="STRING" expression="{HttpHeader:Content-Type}" defaultValue=""/>
    <parameterMapperField parameterName="Param2" parameterType="STRING" expression="{ResultStatus:Code}" defaultValue=""/>
    <parameterMapperField parameterName="Param3" parameterType="STRING" expression="{SendSmsExtProperty:MessageId}" defaultValue=""/>
     </parameters>
   </auditorViaStoredProcedure>
    </auditors>

 

 

Výrazy (expression) pro mapování hodnot :

 

 

 

Výraz

Popis

Příklad

<textový řetězec>

Text neuzavřený ve složených závorkách

expression="TextMessage"

{HttpHeader:<jméno hlavičky>}

Hodnota hlavičky příchozího webového požadavku (case insensitive)

expression="{HttpHeader:Content-Type}"

{SendSmsExtProperty:<jméno vlastnosti>}

{SendSmsExtProperty:<jméno vlastnosti>|formát}

Získá vlastnost vygenerované SMS-ky.

Vlastnosti mohou být (s významem viz mapper):

FromNumber

ToNumber

MessageType

MessageText

ReportLevel

Priority

ViaLine

AllowReroute

MessageSent

DisplayOnly

Schedule

Expiration

UserAppId

MaxLength

MessageId

SenderSystem

GateWayType

Subject

FromName

FromEmail

FromSMTP

ReplyRequired

NoModify

DontSaveText

FixDr

FixNdr

FixInfoMail

RequireUnicode

Parametr formát určuje formátování položky podle jejího typu - např. formát datumu, číslo výčtového typu apod - pordrobnosti viz [1].

Příklady formátovacích řetězců:

yyyyMMdd HH:mm:ss ... formát pro datum (pozor na rozdíly mezi M vs m a H vs h )

d ... např. pro výčtový typ (MessageType, Priority, ReportLevel ...) vrátí číselnou hodnotu místo textové reprezentace (např. 4 místo textu default u Priority)

X ... pro čísla, vrátí číslo v hexadecimálním tvaru

{SendSmsExtProperty:FromNumber}

{SendSmsExtProperty:MessageText}

{SendSmsExtProperty:MessageId}

{SendSmsExtProperty:MessageType|d}

{SendSmsExtProperty:MessageSent|yyyy-MM-dd}

{ResultStatus:<vlastnost>}

Vlastnost statusu výsledku volání služby. Možné vlastnosti:

Code ... kód výsledku:

0 - OK

1 - nastala výjimka

2 - odesílatel aplikace není zadán

3 - chybí hodnota nějakého povinného parametru

4 - špatný formát telefonního čísla

5 - příliš dlouhý seznam IDček zpráv při potvrzování

Description ... popis výsledku (např. OK, nebo popis chyby]

{ResultStatus:Code}

{ResultStatus:Description}