본문 바로가기

분류 전체보기121

[6강] 구글 로그인 준비 😜 😜 1. 구글 API 콘솔 검색 2. 새 프로젝트 생성 3. OAuth "외부" 동의하기 4. OAuth 클라이언트 ID 생성 승인된 리디렉션 URI : http://localhost:8080/login/oauth2/code/google 로 설정 클라이언트 ID와 비밀번호는 따로 파일 만들어 저장하기 5. build.gradle에 oauth 설정 추가 6. application.yml 에 구글 client ID와 비밀번호 입력 -> gitIgnore 에 파일 등록할 것!! 7. loginForm.html에 로그인 주소 추가 ("/oauth2/authorization/google") 로그인 페이지 로그인 google 로그인 아직 회원가입을 안하셨나요? 8. SecurityConfig에 OAuthClie.. 2023. 7. 29.
[5강] 시큐리티 권한처리 이제, manager와 admin의 권한 처리를 구현해보자. 먼저, 기존에 데이터베이스에 있는 회원들의 권한을 바꿔보자 update user set role='ROLE_ADMIN' where id = 2; update user set role='ROLE_MANAGER' where id = 3; id 가 2번, 3번인 유저의 ROLE을 바꾸어주었다. 이제, localhost:8080/manager에서 회원 2번, 3번의 아이디로 로그인하면 접근이 허락된다. 마찬가지로, localhost:8080/admin에서 회원 2번의 아이디로 로그인하면 접근이 허락된다. 기존의 사용하던 SecurityConfig 외에도 어노테이션으로 각 API별로 접근 권한을 설정할 수 있다. 기존 SecurityConfig pack.. 2023. 7. 27.
[개념] 최단 경로 최단 경로 알고리즘은 말 그대로 가장 짧은 경로를 찾는 알고리즘으로, '길 찾기' 문제라고도 불린다. 최단 경로 문제는 보통 그래프를 이용하여 표현하는데 각 지점은 그래프에서 '노드'로 표현되고, 지점 간 연결된 도로는 그래프에서 '간선'으로 표현된다. 최단 거리 알고리즘은 다익스트라 최단 경로 알고리즘, 플로이드 워셜, 벨만 포드 알고리즘 이렇게 3가지 이다. 이 중, 다익스트라 최단 경로와 플로이드 워셜 알고리즘이 가장 많이 등장한다. 최단 경로 알고리즘에는 그리디 알고리즘과 다이나믹 프로그래밍 알고리즘이 적용된다. 1. 다익스트라 최단 경로 알고리즘 : 여러 개의 노드가 있을 때, 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘이다. 다익스트라 최단 경로 알고리즘은 .. 2023. 7. 26.
[4강] Security 로그인 📙 지난 시간 formLogin.loginPage("/loginForm") 을 통해, 권한이 필요한 url 요청시 loginForm으로 이동하도록 했다. 아래 예시에서는 .authorizeRequests.requestMatchers("/user/**").authenticated(); 이므로, /user/**로 요청되는 주소는 loginForm으로 이동한다. /admin/** 이나 /manager/**의 경우에는 Role확인이 필요하므로 403 에러가 뜬다. @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http .csrf(AbstractHttpConfigurer::disable) // 사이트.. 2023. 7. 26.