Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- nGinder
- Loki 로그
- hbase 저장공간 설정
- 월급루팡 일지
- formik
- Ingress Controller Fake
- 논블록킹 성능
- pinpoint
- 7879
- 노드간 통신
- LPOS
- intellij
- Armeria
- 플루터
- jsonMarshaller
- jar 배포
- 핀포인트
- OIDC
- pinpoint 2.5.3
- save/update
- RedirectService
- 오블완
- UnsupportedOperationException
- reids
- 애자일 싫타
- R2DBC Paging
- fake jwt
- 티스토리챌린지
- 개발 어렵당.ㅠ
- ㅉ때
Archives
- Today
- Total
대머리개발자
Armeria 프레임워크 - Authorizer<HttpRequest> 본문
728x90
JWT 토큰에 대한 검증을 하는 부분이다. Authorizer 구현해서 true/false만 넘겨주면 된다.
@ExceptionHandler(Oauth2ExceptionHandler.class)
public class AuthorizerConfig implements Authorizer<HttpRequest> {
private final Logger logger = LoggerFactory.getLogger("logging.access");
@Override
public @NonNull CompletionStage<Boolean> authorize(ServiceRequestContext ctx, @Nullable HttpRequest request) {
if(request.headers().contains("authorization")){
// 검증에 실패 하면 끝!
String jwt = Objects.requireNonNull(request.headers().get("authorization")).split( "Bearer ")[1];
ServiceUtil.getJwtService().checkJwt(jwt);
}else{
throw new AuthorizationException("IllegalArgumentException");
}
return completedFuture(true);
}
}
해당 서비스를 데코레이터에 넣어 주면 모든 요청에 JWT를 체크 한다.
serverBuilder.decorator((AuthService.newDecorator(new AuthorizerConfig())));
이슈는 실패시 401에 대한 Response만!! 간다... 내부적으로 예외 처리를 어떻게 하는지는 확인하지 않았다. .
그냥 새롭게 만들자. ㅎ
public class AuthorizerConfig implements Authorizer<HttpRequest>
--->
public class AuthService extends SimpleDecoratingHttpService
새롭게 만든 인증서비스를 데코에 쏘옥!
serverBuilder.decorator(AuthService::new);
예외는 항상 친절해야 한다.!! 내 코딩의 목표 중 하나다. ㅎ 그래야 유지보수가 편하다.
728x90
'개발이야기 > 자봐' 카테고리의 다른 글
프로젝트 디펜더시 최신화 (0) | 2024.03.12 |
---|---|
[JPA] DB에서 자동 생성된값 바인딩 (0) | 2024.02.28 |
Armeria 프레임워크 - 리다이렉트(2) (1) | 2023.10.06 |
flatMap vs Map (2) | 2023.09.15 |
reactive 리팩토리.. (0) | 2023.08.04 |