"/home" 으로 리다이렉트 할 떄 Authentication 이 null로 가져와지는 문제가 있습니다. 왜 그럴까? OAuth2AuthenticationToken 은 Principal의 하위 클래스입니다. 이는 ServletRequestMethodArgumentResolver 에서 잡아서 resolve 해줍니다. 그런데 여기서 resolve 하는 과정에서 SecurityContext로부터 Authentication 을 꺼내는데 익명사용자일 경우 null 로 반환하게 됩니다. 인증되지 않았다는 것이죠. 아까 우리는 인증을 했지만 이 결과가 장기적인 저장을 담당하는 SecurityContextRepository에 저장이 제대로 되지 않았기 때문입니다. CustomOAuth2LoginAuthenticationFilter 의 부모인 AbstractAuthenticationProcessingFilter 가 사용하는 securityContextRepository가 RequestAttributeSecurityContextRepository 또는 NullSecurityContextRepository(예전버전 기준) 로 되어 있습니다. 이렇게 되어 있으면 다시 "/home" 으로 리다이렉트되어 요청될 때 SecurityContextHolderFilter에서 인증 결과를 못 불러오는 문제가 생깁니다. 실습의 편의상 세션에 저장하는게 좋은데, filter.setSecurityContextRepository(HttpSessionSecurityContextRepository()) 코드를 추가하셔서 설정하시면 될 것 같습니다. 다시 요청이 들어왔을 때 SecurityContextHolderFilter를 거치면서 세션의 Authentication 을 꺼내서 SecurityContext에 담아주기 때문에 성공적으로 인증된 OAuth2AuthenticationToken 을 바인딩 받으실 수 있을겁니다.
kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ ls kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ mkdir mariadbEx_data kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ ls mariadbEx_data kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx (algorithmMac) $ cd mariadbEx_data kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data (algorithmMac) $ vi empty.txt kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data (algorithmMac) $ ls empty.txt $ docker run -v /Users/kimhj/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=1234 -d -p 3307:3306 mariadb 68669f8d37eb3f6dcff172cca30174958796351621cda19cd0eeff502094f8a2 kimhj@MacBook-Pro-2 ~/desktop/bootProjectEx/dockerStudy/docker-mariadbEx/mariadbEx_data (algorithmMac) $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 68669f8d37eb mariadb "docker-entrypoint.s…" 5 seconds ago Up 5 seconds 0.0.0.0:3307->3306/tcp great_hawking 위 코드 처럼 디렉토리를 미리 생성하여 그 디렉토리에 empty.txt를 작성한 후 -v 옵션을 통해 실행시키니 강의의 흐름과 달리 디렉토리에 mariadb 관련 파일과 empty.txt 가 모두 존재하여 문의 드렸습니다 (개인 프로젝트 중 추가적인 공부 목적으로 이 강의를 듣고 있어서 mysql 대신 mariadb를 사용하였습니다)
안녕하세요. 섹션 4의 문제와 풀이2의 로또 번호 자동 생성기 관련 질문 드립니다. 답안은 이해했고, 추가로 로또 번호를 오름차순으로 정렬하면 좋겠다는 생각이 들었습니다. 그런데 오류가 뜨면서 해결이 되지 않아 질문 드립니다. (1) LottoGenerator 클래스 생성자의 반환값에 넣었을 경우 안되는 이유 // 로또 번호 생성자 public int[] generate() { lottoNumbers = new int[6]; count = 0; while (count < 6) { // 1. 1부터 45 사이의 숫자 생성 int number = random.nextInt(45) + 1; // 2. 중복되지 않은 경우에만 배열에 추가 -> 3. 메서드 추가 if (isUnique(number)) { lottoNumbers[count] = number; count++; // while문은 변수 증가 시켜줘야 한다 } } // 4. 로또 번호 반환 return Arrays.sort(lottoNumbers); } (2) LottoGeneratarMain 클래스의 배열에서 정렬할 경우 안되는 이유 public static void main(String[] args) { LottoGenerator generatorObj = new LottoGenerator(); int[] lottoNumbers = Arrays.sort(generatorObj.generate()); 그렇다면 오름차순으로 정렬하기 위해서 어떻게 해야 하나요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 민맥스, 스탠다드, 로버스트를 어떨 때 사용하면 좋을지 알 수 있는 방법이 있을까요?? 로버스트는 이상치 존재 시 정교해질 수 있는 장점 정도만 알고 있는데 쉽게 구분하는 방법을 알려주시면 감사하겠습니다!
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
exercise_A 문제풀이를 하면서 knight 를 delete 했음에도 불구하고 player타입으로는 해당 메모리를 접근할 수 있다는것에 충격먹어 virtual에 대해 궁금한게 생겨 이것저것 시도해보고 있습니다. #include <iostream> using namespace std; class AA { public: int _Aa = 10; public: void Info() { cout << "AA의 _Aa : " << _Aa << endl; } void Set() { cout<< "test" << endl; } }; class BB : public AA { public: int _Ba = 44; public: virtual void Info() { cout << "BB의 _Aa : " << _Aa << endl; } }; int main() { AA* A1 = new BB(); AA* A2 = A1; delete A1; // BB클래스의 void Info() 에 virtual을 붙이면 왜 중단점 에러가 발생? A1 = nullptr; A2->Info(); } delete A1; 부분에서 "중단점 명령(__debugbreak() 문 또는 유사한 호출)이 ConsoleApplication38.exe에서 실행되었습니다." 라는 에러가 뜹니다. BB 클래스의 void Info() 함수에 virtual 을 붙인 이후로 이러한 에러가 뜨는데, 저 위치에 vitrual을 붙인 것이 왜 이러한 에러를 유발하는지 궁금합니다. 만약 virtual을 AA 클래스의 Info() 함수에 붙인다면, 'A2->Info();' 부분에서 BB 클래스의 Info() 함수를 호출하게 되므로 메모리 엑세스 위반까지는 이해를 했으나, virtual이 BB 클래스의 Info() 함수에 붙일 경우에는 delete A1; 부분에서 왜 에러가 뜨는지 알고싶습니다.
Material--icons_4.0.0.woff2 는 리소스 크기가 3mb인데 해당 폰트는 font-display:block으로 하지 않는이상 폰트 다운드로 전에 영어를 출력시키거나 안보이도록 해야하는되 이 부분 레이아웃 시프트 발생하지 않도 록 cls 잡는 방법이 무엇이 존재할까요???
안녕하세요대응표본검정을 할 때, μd는 문제에서 주어지는 건가요? μd = (after - before)의 평균: 인자를 ttest_rel(df['after'], df['before']) 조건에 명시된 순으로 로 넣고 μd = (before- after)의 평균: ttest_rel(df['before'], df['after']) 로 넣는게 맞나요? pvalue는 같지만 검정통계량(statistic)이 음수 양수로 나오는데, 검정통계량을 묻는다면 출력된 그대로 넣으면 되는걸가요..? 대응표본 검정은 무조건 단측 검정인건가요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 원핫인코딩 말고 라벨인코딩을 하는 이유는 무엇인가요? 라벨인코딩 말고 원핫인코딩을 사용하려면 어떻게 해야하나요?
디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)
안녕하세요. [공통] 2급 21회 시험 리뷰 강의 수강중 궁금한게 있어 글 남깁니다. 가상화 파일 분석 방법 중 1. ftk imager로 필요한 파일을 추출해서 분석 2. 가상화 프로그램으로 로드해서 분석 3. 가상화 파일을 raw 파일로 변환후에 분석툴에서 분석 [질문1] 예를들어 윈도우 shutdown 날짜를 확인하기 위해 레지스트리를 분석한다고 하면 방법 1인 ftk imager에서 하이브 파일을 추출해서 rega로 분석하는 경우와 방법 2인 vmware를 이용해서 가상머신으로 직접 들어가서 가상머신내 로컬에서 레지스트리 편집기에 들어가서 해당 정보를 확인하는 경우와 결과가 같은걸까요? [질문2] 만약에 두번째 분석방법을 선택한 경우에 증거 파일을 찾는 과정에서 vmware를 이용하여 로드한 이미지파일(vmdk)로 직접 접속해서 이것저것 열어보면서 증거를 찾아간다고 했을때 이미지 파일이 손상되는? 무결성이 깨지는..?(파일 접근 시간 등) 문제는 없는건지 궁금합니다. [질문 3] 만약에 문제가 공모시에 이메일(아웃룩) 통신을 하였고 사용자(용의자)의 통신 IP를 물어보는 거라면 어디서 어떻게 확인할 수 있는지 궁금합니다. 감사합니다.
안녕하세요. 단계(step)가 존재하는 페이지 이동시 공유 데이터 처리에 대해 질문 드립니다. 예를 들어 A프로세스 처리를 A-1, A-2, A-3의 페이지로 나뉘어 져 있으며 각 페이지에 입력된 값으로 최종 처리하고 또한 뒤로가기 하였을 경우 각 단계에서 입력된 값은 그대로 유지하여 노출해주어야 할경우입니다. 구글링을 해보면 전역 상태 값이 아니니 pinia 사용은 지양하는 듯하고 localStorage와 같은 기능을 사용하더군요. 이런 기능들을 사용하지 않고 vue3 자체 기능으로 사용할만한 것은 없는지 문의 드립니다.
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
'FastAPI + MongoDB ODM 셋업' 강의 중 book.py 파일을 만든 뒤 서버를 실행할 때 아래와 같은 에러 메시지가 노출됩니다. TypeError: field Config is defined without type annotation Config에 type annotation이 정의되지 않았다고 하는데, 타입을 정의하거나 클래스 이름을 바꿔보는 등의 방법을 적용해보아도 같은 에러코드가 노출되고 있어 문의드립니다. 제가 사용하고 있는 환경의 python은 3.8버전이며, odmantic 등 라이브러리는 최신 버전을 사용하고 있습니다.
안녕하세요. 선생님. 기본편부터 실전편까지 계속 반복해서 하라는대로 다 해봤는데 화면과 같이 규칙이 적용되지 않고, ","콤마도 사라지고, 빨간 밑줄이 생깁니다. npm run lint 명령어를 매번 실행해야 규칙이 적용되는 것 같은데, 뭘 놓친건지 확인 부탁드립니다. .eslintrc.cjs 2. settings.json main.js
선생님 제가 강의 1회독은 다 했지만 작업형 3이 제일 자신이 없는데 혹시 남은 기간동안 작업형3을 어떻게 공부하는게 좋을까요,, 최대한 작업형1, 2를 열심히 하고 3은 최소한으로 중요한 부분만 보고 가려고 합니다 ㅜ 강의에 나오는 작업형 3 구버전 예시문제랑 기출6,7회만 계속 반복해보려고 하는데 괜찮을까요? 작업형 3에서 추렸을때 최소한 이것은 알고 가야한다는 개념이 있을까요?
3-5 Classification파일에서 아래와 같이 처리하면, 수치형 뿐 아니라 명목형 변수의 결측치도 0으로 채워지는것 아닌가요? 그렇게 해도 상관없는건지 궁금합니다. # 간단한 결측치 처리 X_train = X_train.fillna(0) X_test = X_test.fillna(0) # 간단한 결측치 처리 X_train = X_train.fillna(0) X_test = X_test.fillna(0)