-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #23 from SW-rocket-dan/3-μ μ
- Loading branch information
Showing
26 changed files
with
401 additions
and
153 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
30 changes: 30 additions & 0 deletions
30
src/main/java/app/cardcapture/auth/jwt/controller/TokenController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package app.cardcapture.auth.jwt.controller; | ||
|
||
import app.cardcapture.auth.jwt.service.TokenBlacklistService; | ||
import app.cardcapture.common.dto.SuccessResponseDto; | ||
import io.swagger.v3.oas.annotations.Operation; | ||
import io.swagger.v3.oas.annotations.tags.Tag; | ||
import lombok.AllArgsConstructor; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.RequestHeader; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
@RestController | ||
@Tag(name = "token", description = "The token API") | ||
@RequestMapping("/api/v1/token") | ||
@AllArgsConstructor | ||
public class TokenController { | ||
|
||
private final TokenBlacklistService tokenBlacklistService; | ||
|
||
@GetMapping("/logout") | ||
@Operation(summary = "λ‘κ·Έμμ", description = "JWT ν ν°μ λΈλ리μ€νΈμ μΆκ°νμ¬ λ‘κ·Έμμ μ²λ¦¬ν©λλ€.") | ||
public ResponseEntity<SuccessResponseDto<String>> logout( | ||
@RequestHeader("Authorization") String authHeader | ||
) { | ||
tokenBlacklistService.addToBlacklist(authHeader); | ||
return ResponseEntity.ok(SuccessResponseDto.create("λ‘κ·Έμμ μ±κ³΅")); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
41 changes: 41 additions & 0 deletions
41
src/main/java/app/cardcapture/auth/jwt/domain/entity/TokenBlacklist.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
package app.cardcapture.auth.jwt.domain.entity; | ||
|
||
import jakarta.persistence.Column; | ||
import jakarta.persistence.Entity; | ||
import jakarta.persistence.EntityListeners; | ||
import jakarta.persistence.GeneratedValue; | ||
import jakarta.persistence.GenerationType; | ||
import jakarta.persistence.Id; | ||
import jakarta.persistence.Table; | ||
import jakarta.validation.constraints.NotBlank; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
import org.springframework.data.annotation.CreatedDate; | ||
import org.springframework.data.jpa.domain.support.AuditingEntityListener; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
@Entity | ||
@Getter | ||
@Setter | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
@Table(name = "token_blacklist") | ||
@EntityListeners(AuditingEntityListener.class) | ||
public class TokenBlacklist { | ||
@Id | ||
@GeneratedValue(strategy = GenerationType.IDENTITY) | ||
private Long id; | ||
|
||
@Column(nullable = false, unique = true) | ||
private String token; | ||
|
||
@Column(nullable = false) | ||
@CreatedDate | ||
private LocalDateTime createdAt; | ||
|
||
@Column(nullable = false) | ||
private LocalDateTime expiryDate; | ||
} // TODO: λ°°μΉλ‘ λ§λ£λ ν ν° μμ νκΈ° |
12 changes: 4 additions & 8 deletions
12
src/main/java/app/cardcapture/auth/jwt/dto/JwtAuthorizationDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,8 @@ | ||
package app.cardcapture.auth.jwt.dto; | ||
|
||
import jakarta.validation.constraints.NotBlank; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
|
||
@Getter | ||
@AllArgsConstructor | ||
public class JwtAuthorizationDto { | ||
@NotBlank | ||
private String aceessToken; | ||
} | ||
public record JwtAuthorizationDto( | ||
@NotBlank String aceessToken | ||
) { | ||
} |
This file was deleted.
Oops, something went wrong.
9 changes: 9 additions & 0 deletions
9
src/main/java/app/cardcapture/auth/jwt/dto/JwtResponseDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package app.cardcapture.auth.jwt.dto; | ||
|
||
import jakarta.validation.constraints.NotBlank; | ||
|
||
public record JwtResponseDto( | ||
@NotBlank String accessToken, | ||
@NotBlank String refreshToken | ||
) { | ||
} |
8 changes: 8 additions & 0 deletions
8
src/main/java/app/cardcapture/auth/jwt/dto/RefreshTokenRequestDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package app.cardcapture.auth.jwt.dto; | ||
|
||
import jakarta.validation.constraints.NotBlank; | ||
|
||
public record RefreshTokenRequestDto( | ||
@NotBlank String refreshToken | ||
) { | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/app/cardcapture/auth/jwt/exception/InvalidTokenException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package app.cardcapture.auth.jwt.exception; | ||
|
||
import org.springframework.http.HttpStatus; | ||
import org.springframework.web.bind.annotation.ResponseStatus; | ||
|
||
@ResponseStatus(HttpStatus.FORBIDDEN) | ||
public class InvalidTokenException extends RuntimeException { | ||
public InvalidTokenException(String message) { | ||
super(message); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/app/cardcapture/auth/jwt/exception/TokenBlacklistedException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package app.cardcapture.auth.jwt.exception; | ||
|
||
import org.springframework.http.HttpStatus; | ||
import org.springframework.web.bind.annotation.ResponseStatus; | ||
|
||
@ResponseStatus(HttpStatus.UNAUTHORIZED) | ||
public class TokenBlacklistedException extends RuntimeException { | ||
public TokenBlacklistedException(String message) { | ||
super(message); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
src/main/java/app/cardcapture/auth/jwt/repository/TokenBlacklistRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package app.cardcapture.auth.jwt.repository; | ||
|
||
import app.cardcapture.auth.jwt.domain.entity.TokenBlacklist; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
import org.springframework.stereotype.Repository; | ||
|
||
@Repository | ||
public interface TokenBlacklistRepository extends JpaRepository<TokenBlacklist, Long> { | ||
boolean existsByToken(String token); | ||
} |
Oops, something went wrong.