240129 TIL |

2024. 1. 29. 17:44· 왕초보일지

ec2 로 똑같이 배포하는데 참조 블로그

빌드 속도 향상을 위해 스왑메모리 사용 참조 블로그1   참조블로그2

- 내 메모리로 할당

 

스왑 영역 활성화

스왑 메모리 2기가 생성

 

java 를 설치하려고 하는데

 Unable to locate package openjdk17-jdk 

라고 뜬다.

 sudo apt update 

한 후에 다시

 sudo apt install openjdk-17-jdk  

하니 다운로드가 되었다.

 

git clone 해오고 프로젝트 이름 디렉토리로 이동해서 빌드 명령을 했는데 다음과 같이 거부되었다.

 

Permission denied 

권한이 없기 때문에 권한을 주면 실행이 가능하다고 한다.

chmod +x ./gradlew

 

 

기다림이 또 시작됐다.

다른 방법도 있지만 이왕 이 방식으로 시작해본거, 성공하고 싶어서 다시 도전 ㅎ

스왑 메모리라는 걸 설정해줘서 프리티어 용량으로 하는데 전보다는 속도가 더 빠르다.

빌드에 성공하고 실행시키는데 뜬 오류

로그를 명령했는데 아무것도 뜨지 않는다. 

./gradlew clean build

로 다시 빌드해보았다.

그랬더니 빌드 실패

gradle 버전이 낮춰져있어서 문제라는 것 같다. 팀 프로젝트 파일을 쓰던거라 내가 막 변경할 수 없어서....

다시 처음부터 해서 다른 파일로 해보자!!!! 😖😖😖😖

세 번째 시도니까 더 잘 할 수 있다!!!

 

 

 

 


프로젝트 내 security 필터 다시 이해하기

 

Http 요청이 오면 spring security 의 filter chain 을 타기 시작

class JwtAuthenticationFilter(
	authenticationManager: AuthenticationManager,
	private val jwtAuthenticationFailureHandler: JwtAuthenticationFailureHandler
) : AbstractAuthenticationProcessingFilter(
	OrRequestMatcher(
		AntPathRequestMatcher("/post/**"),
		AntPathRequestMatcher("/comment/**"),
		AntPathRequestMatcher("/member/**"),
		AntPathRequestMatcher("/admin/**")
	), authenticationManager
) {

JwtAuthenticationFilter 의 attemptAuthentication() 호출

토큰을 헤더에서 추출해서 JwtPreAuthenticationToken 인증 객체 생성

override fun attemptAuthentication(request: HttpServletRequest, response: HttpServletResponse): Authentication {
	return request.getHeader(HttpHeaders.AUTHORIZATION)
		?.let { this.authenticationManager.authenticate(JwtPreAuthenticationToken(it.split(" ")[1])) }
		?: JwtPreAuthenticationToken("인증 안된 토큰")
	}

 

AuthenticationManager(JwtAuthenticationProvider) 의 supports 메소드로 해당하는 인증매니저인지 확인

	override fun supports(authentication: Class<*>): Boolean =
		JwtPreAuthenticationToken::class.java.isAssignableFrom(authentication)

authenticate 메소드 호출해서 인증되면 successfilAuthentication 메소드 통해 JwtAuthentication 인증 객체 반환

override fun authenticate(authentication: Authentication): Authentication {
	return (authentication.credentials as String)
		.let { jwt ->
			jwtPlugin.validateToken(jwt)
				.getOrElse { throw JwtAuthenticationException(it as Exception) }
				.let { claims ->
					val id = claims.payload.subject
					val role = claims.payload.get("role", String::class.java)
					getAuthentication(id, role, jwt)
				}
		}
}

실패하면 unsuccessfulAuthentication 메소드 통해 JwtAuthenticationFailuerHandler 의 onAuthenticationFailure 메소드 호출

	override fun unsuccessfulAuthentication(
		request: HttpServletRequest,
		response: HttpServletResponse,
		failed: AuthenticationException
	) {
		jwtAuthenticationFailureHandler.onAuthenticationFailure(request, response, failed)
	}
@Component
class JwtAuthenticationFailureHandler(
	@Qualifier("handlerExceptionResolver")
	private val resolver: HandlerExceptionResolver
) : AuthenticationFailureHandler {
	override fun onAuthenticationFailure(
		request: HttpServletRequest,
		response: HttpServletResponse,
		exception: AuthenticationException
	) {
		resolver.resolveException(request, response, null, exception.cause as Exception)
	}

}

 

 

AuthenticationEntryPoint

인증 되지 않은 사용자의 접근에 대한 처리

 

AuthenticatoinFailureHandler

인증을 시도한 사용자의 인증이 실패했을 때

 

시큐리티 내의 많은 기능들을 어떻게 구현하는지는 사용자에 따라 다름.

 

 

'왕초보일지' 카테고리의 다른 글

240130 TIL |  (1) 2024.01.30
240130 TIL | Ec2/ubuntu/깃클론/swap메모리/배포  (3) 2024.01.30
240126 TIL | 배포를 시도해봤다  (1) 2024.01.26
240125 TIL |  (1) 2024.01.25
240124 TIL |  (1) 2024.01.24
'왕초보일지' 카테고리의 다른 글
  • 240130 TIL |
  • 240130 TIL | Ec2/ubuntu/깃클론/swap메모리/배포
  • 240126 TIL | 배포를 시도해봤다
  • 240125 TIL |
다시은
다시은
🔥
다시은
재은로그
다시은
전체
오늘
어제
  • 분류 전체보기 (127)
    • 코딩테스트 (40)
    • Language (2)
      • JAVA (2)
      • Kotlin (0)
      • TypeScript (0)
    • SQL (1)
    • 인프라 (1)
    • 왕초보일지 (77)
    • 회고 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Kotlin
  • SQL문법
  • 문자열변환
  • sql
  • googleapis
  • 스프레드시트
  • mysql

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
다시은
240129 TIL |
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.