Сообщения

MS Lesson 21: Spring Security

Изображение
1. Authentication vs Authorization * Authentication - "Who are you?" Istifadecinin kimliyinin yoxlanilmasi. Esasen username ve passwordun yoxlanilmasi. Dogru olmadigi halda 401 Unauthorized xetasi verir. * Authorization - "What can you do?" Authentifikasiya olunmush istifadecinin hansi emeliyyatlara icazesi oldugunun yoxlanilmasi.  Dogru olmadigi halda 403 (Forbidden) xetasi verir. 2. Spring Security internal flow Authentication - login melumatlarini dashiyan Java obyektidir. Authentication auth = new UsernamePasswordAuthenticationToken ( " admin ", // username (principal) " 12345 ", // password (credentials) null // authorities (hələ yoxdur) ); AuthenticationManager - Authentication prosesini idare eden koordinator. Default implementasiya ProviderManager. Filter-den Authentication obyektini alir, hansi AuthenticationProvider-in ishleyeceyini secir, Provider-e oturur.  AuthenticationProvider - esl Authentication...

MS Lesson20: Load test

Изображение
Embedded Tomcat nədir? Klassik Java-da tətbiq ayrı, server ayrı olurdu: Köhnə üsul: [Tomcat server qurulur] → [WAR faylı deploy edilir] Spring Boot: [JAR faylının içində Tomcat var] → java -jar app.jar Spring Boot-da Tomcat   JAR-ın içindədir . Buna görə   ./ gradlew bootRun   etdikdə tətbiq özü serveri özü qaldırır.   Tomcat-ın Default Dəyərləri Parametr Default Dəyər Nə deməkdir? max-threads 200 Eyni anda maksimum neçə sorğu işlənir min-spare-threads 10 Həmişə hazır gözləyən minimum thread sayı accept-count 100 200 thread dolu olanda növbəyə neçə sorğu girə bilər connection-timeout 20000ms Bağlantı gözləmə vaxtı (20 saniyə) Spring Boot-da Necə Dəyişdirilir? application.yaml -a əlavə etmək kifayətdir: server : port : 8888 tomcat : threads : max : 200 # default 200 min-spare : 10 # default 10 accept-count : 100 # default 100 connection-timeout : 20000 Necə İşləyir? Gələn sorğular: ────────────────────────────────────────...

MS Lesson 19: Unit Test

1. Unit test klasinin uzerine:  @ExtendWith (MockitoExtension. class )   2.  package guru.springframework.cruddemo.testing; import org.assertj.core.api.Assertions; import org.junit.jupiter.api. Test ; import org.junit.jupiter.api.extension. ExtendWith ; import org.mockito. InjectMocks ; import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith (MockitoExtension. class ) public class CalculatorServiceTest { @InjectMocks private CalculatorService calculatorService ; @Test public void whenSumTwoNumbersThenSuccess () { // Arrange // Act int result = calculatorService .sum( 5 , 7 ); // Assert Assertions. assertThat (result).isEqualTo( 12 ); } } 3. package guru.springframework.cruddemo.testing; import org.assertj.core.api.Assertions; import org.junit.jupiter.api. Test ; import org.junit.jupiter.api.extension. ExtendWith ; import org.mockito. InjectMocks ; import org.mockito.junit.jupiter.MockitoExtension; @ExtendW...