build.gradle
plugins {
id 'org.springframework.boot' version '2.3.0.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
id 'com.palantir.docker' version '0.22.1'
id "com.moowork.node" version "1.3.1"
}
bootRun {
String activeProfile = System.properties['spring.profiles.active']
systemProperty "spring.profiles.active", activeProfile
}
group = 'com.payhada'
version = '2.0.0'
sourceCompatibility = '1.8'
...
dependencies {
...
// Database + jdbc
implementation "org.springframework.boot:spring-boot-starter-jdbc"
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.28'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2'
// Log
implementation group: 'org.bgee.log4jdbc-log4j2', name: 'log4jdbc-log4j2-jdbc4.1', version: '1.16'
implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.9.1'
implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.12.4'
// Spring Security
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-security:2.3.12.RELEASE'
testImplementation 'org.springframework.security:spring-security-test'
// Others
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.9'
compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.5.14', ext: 'pom'
implementation 'org.json:json:20220320'
runtime('net.logstash.logback:logstash-logback-encoder:5.1')
// lombok
annotationProcessor("org.projectlombok:lombok")
compileOnly("org.projectlombok:lombok")
compile group: 'org.projectlombok', name: 'lombok', version: '1.18.4'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.3.4.RELEASE'
annotationProcessor 'org.projectlombok:lombok:1.18.4'
...
}
...
*AbstractAuthenticationProcessingFilter
*
Spring Security의 필터가 attemptAuthentication() 메서드를 실행 → 사용자가 구현한 JsonUsernamePasswordAuthenticateionFilter.attemptAuthentication()
실행
↓
JsonUsernamePasswordAuthenticateionFilter
로그인 시 입력받은 ID / PASSWORD / OTP 를 통해 AuthenticationToken을 생성 하여 AuthenticationManager 의 authenticate() 메서드 호출