Posts

Showing posts from March, 2021

Microservices Security Example #3 - Zuul Proxy Server haqqında danışırıq

Image
 Zuul Proxy Server Zuul Serveri bir qala qapısı kimi düşünə bilərik. Məsələn qalaya daxil olmaq istəyən şəxsləri yalnız vahid bir qapıdan qəbul etmək üçün və ya tanımadığınız şəxsləri qalaya buraxmamaq üçün istifadə edilə bilər.  Bunu Zuul Server-ə texniki olaraq nümunə gətirsək, məsələn user-service və auth-service lər var. Zuul vasitəsilə bu service-lərə girişi yalnız vahid bir yerdən edə bilərik. Burada Zuul Serverin işi Routing olacaq. Zuul Serverə öz servisimizi tanıtdıqdan sonra, artıq gələn sorğuya uyğun olaraq uyğun service çağrılacaq və sorğuya uyğun iş görüləcək. Zuul Serverin Routing prosesi üçün Ribbon istifadə olunur. Ribbon, Eureka Server də qeydiyyatdan keçən service-ləri özündə saxlayaraq, uyğun yönləndirmələr edə bilir. Application da istifadə olunan versiyalar: 1. spring-boot-starter-parent (2.3.8.RELEASE) 2. spring-cloud.version (Hoxton.SR9)

Microservices Security Example #2 - Servisin Eureka Serverdə qeydiyyatı

Image
 Dummy Service Eureka Server də qeydiyyatdan keçirmək üçün sadə bir service yaradırıq, sadəcə praktika məqsədli olaraq. Daha sonradan real service-lərə tətbiq olunacaq. Application-ı yaradıb uyğun dependency-ləri əlavə etdikdən sonra edəcəyimiz ilk iş Main class-ın üzərinə @EnableEurekaClient əlavə edirik. Discovery Server də Service i qeydiyyata salmaq üçün EnableEurekaClient və EnableDiscoveryClient annotationları var. Aralarındakı fərqi sadə olaraq, belə göstərirlər. Əgər Discovery Server Eureka-dırsa, @EnableEurekaClient istifadə olunması məsləhət görülür. Digər hallarda @EnableDiscoveryClient istfadə etmək lazımdır. Daha sonra application.yml faylını açırıq. Burada bəzi configuration-lar etmək qeyd etmək lazımdır.  Burada ilk parameterdə application-ın adı, növbətidə hansı port da işləyəcəyi qeyd olunur. Digər parameterlər artıq Eureka Server də bir client application kimi qeydiyyatdan keçmək üçün lazımdır. prefer-ip-address parameterinə true dəyəri verməklə, Eurekanın bizim appli

Microservices Security Example #1 - Eureka Discovery Server haqqında danışırıq

Image
Eureka Discovery Server Eureka Server nədir və nə üçün istifadə olunur suallarının cavabını internetdə axtarıb daha geniş məlumat tapmaq olar. Bu yazıda yalnız praktikasına fokuslanacağıq. Qısa məlumat olaraq, Spring Cloud Netflix Eureka, servislerin makina adı ve bağlantı noktasına ihtiyaç olmaksızın birbirleriyle iletişim kurmasını sağlar. Bu mimarideki tek önemli nokta, her servisin kayıt olması gereken bir servis olmasıdır. Ətraflı    Eureka Server yaratmaq standart prosedurdur.  http://start.spring.io/ keçid edərək yarada bilərik. Bu application-da istifadə olunan versiyalar: 1. spring-boot-starter-parent (2.3.8.RELEASE) 2. spring-cloud.version (Hoxton.SR9) Bu versiyaların istifadə məqsədi bundan ibarətdir ki, spring-boot 2.4.X versiyalarda spring-cloud yeni versiyanı işlətmək lazımdır (2020.0.0). Spring Cloud bu versiyada Zuul, Ribbon dəstəkləmir. Gateway kimi Spring Cloud Gateway istifadə etməyi məsləhət görülür. Sadəcə bu arxitekturada Zuul istifadə etdiyimə görə köhnə versiya

Validation for AZ phone numbers with RegEx in Java

Number bir neche formada gele biler bize. Meselen,  99451xxxxxxx 99455xxxxxxx ve s. 051xxxxxxx 055xxxxxxx ve s. 51xxxxxxx 55xxxxxxx ve s. Bu nomreleri standart formaya salmaq uchun kichik kod : public static String validate (String number){ final String prefix = "994" ; if (number.length() == 12 && number.matches( "^(994)+(50|51|55|70|77|99).*$" )) { return number ; } else if (number.length() == 10 && number.matches( "^(0)+(50|51|55|70|77|99).*$" )) { return prefix + number.substring( 1 ) ; } else if (number.length() == 9 && number.matches( "^(50|51|55|70|77|99).*$" )) { return prefix + number ; } return null; } sonda bize qayidan netice  99451xxxxxxx ve ya 99455xxxxxxx sheklinde olacaq. Eger null qayidarsa, bu methodun cagrildigi yerde uygun helli etmek olar.