묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 시큐리티
안녕하세요 세션 관련 질문...두번째 입니다.
안녕하세요 강사님 첫 번째 문의 답변 정말 감사합니다. 추가 문의 좀 하겠습니다.. 혹시 제 Logout처리 부분에서 잘 못 처리 된게 있을지 좀 알려주실 수 있으십니까? config 쪽 로그아웃 관련 설정입니다. @Overrideprotected void configure(HttpSecurity http) throws Exception { .logout() .clearAuthentication(true) .logoutRequestMatcher(new AntPathRequestMatcher("/api/v1/logout")) .logoutSuccessHandler(new LogoutHandler(homeService)) 로그아웃 헨들러 @Slf4j@RequiredArgsConstructorpublic class LogoutHandler extends SimpleUrlLogoutSuccessHandler implements LogoutSuccessHandler { private final HomeService homeService; @Override @Transactional public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { LoginCode logout = homeService.logout(request, response); log.info("logout result : {}", logout.getDescription()); ResponseCookie refreshToken = homeService.removeCookie(request); response.setHeader("Set-Cookie", refreshToken.toString()); this.setDefaultTargetUrl("/login"); super.onLogoutSuccess(request, response, authentication); }} 이번에 QA를 진행해보아도 한 PC에서 로그인을 한 상태에서, 다른 QA분들 (약10분 정도) 가 로그인/로그아웃을 반복 수행했습니다. 동일하게 RoleVoter나, IpVoter쪽에서 context 검사 후 AuthenticationEntryPoint 이쪽에 걸렸습니다. removeCookie 쪽에는 단순히 쿠키의 age를 0으로 재생성해주는 쿠키 제거 function 입니다. 로그아웃 과정에서 어떤 문제가 있길래 모든 context가 처리 되는지 알고 싶습니다.. 감사합니다...! 질문 update clearAuthentication 이부분이 혹시 전체 authentication을 삭제가 가능한가 싶어서 내부를 타고 들어가도 현재 인증 정보를 제거한다라는 로직 같기만 하고 제가 우려한 부분은 아니더라구요. ip hash등의 임시 방편으로 이것이 해결이 되는 건가 싶었는데. 금일 라이브QA에서도 동일한 현상이 발생 했습니다. 강사님의 질문에 대해서 제가 정리를 해보면 request가 들어오면 filter에서 제가 생성한 context 로 rolevoter 등이 체크를 하고 response 할 때 context가 없어지는 것 같은데... 일반적인 java RequestContext 같은 것과 같은 의미로 전 이해했습니다. 그럼 logout쪽에 clearAuthentication 이나 logoutHandler쪽에 SecurityContextHoler.getContext().setAuthentication(null); 이런 적업을 안해줘도 되는 걸까요?? 어차피 하나의 request 안에서만 생성 되고 없어지는 context 이니깐요. 감사합니다. 수강생 올림. https://www.inflearn.com/questions/53657 이거랑 비슷한 이슈인 것 같기도 하구요.. 추가질문 update------------------------------------------ 안녕하세요 강사님. SecurityContextHolder에 아무 Context가 없는 상황에서. clearContext()를 하면 어떤 영향이 있나요?.. 전 당연히 아무 영향이 없을 것이다 생각하고, 로그인 API에 넣어 두었는데요. QA분과 테스트 과정에서 이부분을 주석처리 해버리니까 일단 발생하지 않습니다. 내일 많은 QA분이 있으실 때 더 정확한 테스트가 되겠지만.. 아무 context가 없을때 clearContext를 호출하는게 왜 영향이 있는지 모르겠습니다. 추가로. security의 기본 context 전략이 ThreadLocal이라는 것을 저도 코드 타고 들어가보면서 확인했는데요. 혹시 몰라서 @Overrideprotected void configure(HttpSecurity http) throws Exception 에 SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_THREADLOCAL); 를 추가 하였습니다. 좋은 하루 되세요. 마음이 급해서 질문이 너무 난잡하네요. 죄송합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 오류(JAVA_HOME)
Window 사용중이구요 다음과 같은 초기 빌드에러 가 발생했습니다. ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files\Java\jdk-11\bin Please set the JAVA_HOME variable in your environment to match the location of your Java installation. [Project SDKs 캡쳐] [환경변수 설정 결과] [디렉토리 구조] [빌드 실패 명령어 및 결과] [시스템 변수 설정1] [시스템 변수 설정2] 시스템 변수 설정 시 bin 의 위치를 다르게 하여 설정1, 설정2 모두 해보았구요 명령어도 ./gradlew ./gradlew build ./gradlew.bat ./gradlew.bat build gradlew 모두 해보았구요 그럼에도 불구하고 에러가 발생하는데 원인을 더 찾아볼 곳이 있을까요?
-
미해결
화면이 안보입니다.
화면이 보이지 않습니다. 전에 수강했을 때는 화면이 보였어서 강의 자체 문제는 아닌 것 같습니다. safari, chrome 둘다 안나옵니다. 모든 강의의 화면이 보이지 않습니다.
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
OOP 대해서..그중에 extends 로 여러번 상속될수 있는지 상속
OOP를 완강했습니다. 그런데 ...기본적으로 extends object가 있는건데 그렇되면 또 extends로 상속한다면 상속된 class를 또 상속할수 있다는 뜻인가요? 아니면 Object에 한정된 예외적인 경우인가요
-
미해결Vue.js + TypeScript 완벽 가이드
vue-advanced 프로젝트 권한 요청 부탁드립니다
안녕하세요 선생님 2번째 프로젝트 vue-advanced repository에 접속하기 위해서는 권한이 필요한 건가요? 그렇다면 부탁드리겠습니다. mallangyi@naver.com 입니다.
-
미해결지금 바로 D3.js 시작하기 : 웹 데이터 시각화
강의 잘듣고 있습니다.^^
강의 잘듣고 있습니다. 제가 필요한 그래프가 heatmap 그래프인데 연속적인 데이터(사이즈가 256x256 )가 들어가면서 heatmap 그래프가 대략 20ms정도의 주기로 업데이트가 되는데 제가 아직 enter, update,exit에 대한 개념이 약해 이게 속도가 이렇게 나오지 않네요 혹시 enter,update,exit에 대한 개념과 이게 합쳐진게 join 이라고 알고있는데 join에 대한 개념도 알수 있을까요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
질문이염!
질문드려영!
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
얼굴을 그리려고 브러쉬로 그리는데
얼굴을 그리려고 브러쉬 검은색으로 해서 그리는데 얼굴 앞면에 그렸는데 색칠이 반대편에 됩니다... ㅠㅠ 그래서 반대편으로 돌려서 뒤통수에 색칠하면 이번엔 원래 얼굴쪽에 색칠이 되구요.. 관통되서 반대편에서 색칠되는데 이건 어떻게 하나요..? ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
인텔리제이가 jsp를 인식 못하는 거 같습니다..
url로 들어가보면 jsp가 잘 뜨긴하는데, ide에서는 인식이 안되는지.. 자동 import도 안되고.. 아래 사진과 같은 상황입니다 ..
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
GridAgent.cs에서 sensor가 null입니다.
안녕하세요 GridAgent.cs 코드에서 public override void CollectObservations(VectorSensor sensor) { ... // sensor 부분이 null로 전달됩니다. // 일단 널처리는 했지만 왜 null로 오는지 궁금합니다. Debug.Log(sensor); if (sensor != null) { sensor.AddObservation(transform.position.x); sensor.AddObservation(transform.position.z); // 각각 도형에 대한 좌표 List<int> otherPos = area.otherPos; for (int i = 0; i < otherPos.Count; i++) sensor.AddObservation(otherPos[i]); } } 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
return할 때 질문이 있습니다!
bindingResult에 오류가 있으면 editForm으로 돌아가는데, 이때 리다이렉트를 사용해서 돌아가도 문제가 없는지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
인텔리제이가 jsp를 인식 못하는 것 같습니다..
(사진)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
HTTP도 소켓통신 인가요?
컴퓨터 네트워크는 OSI 7계층으로 통신한다고 하잖아요 그래서 응용계층의 HTTP 프로토콜도 통신하기 위해선 Transport Layer를 거쳐야한다는 건데... 1. 그렇다는건 웹서버도 리스너 소켓을 생성하는거겠죠? 그리고 크롬, 엣지, 파이어폭스 같은 브라우저들이 클라이언트라고 볼때 2. Connection을 요청하기 위해 브라우저들도 소켓을 생성하고 있다고 볼 수 있을까요? 3. 만약 그렇다면 http도 소켓 API를 사용하는데 왜 http는 소켓 통신과 다르다고 하는걸까요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
여러 개 mixin을 전역으로 설정하여 사용할 때, 마지막 mixin 만 적용됩니다.
선생님 안녕하세요~ ^^;다크모드, 폰트크기를 로컬스토리지에 저장하여, 재 방문시에도 적용되게 하려고하는데,처음에 적용한 mixin은 적용되지 않고, 마지막 mixin만 적용됩니다.둘 중 하나만 적용하면, 잘 적용됩니다.어떻게 하면, 두 mixin 모두 적용되게 할 수 있을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Domain에 대해서 궁금한점이 있습니다
요즘 DDD관련 도서를 읽고 있는데 강사님이 스프링 강의때도 그렇고 Domain과 web을 분리해서 개발을 하시더라구요? 이게 도메인 주도 개발을 생각을 하시면서 무의식적으로 그렇게 개발을 하시는건가요??
-
미해결스프링 시큐리티
web ignoring을 설정해도 favicon.ico가 계속 302 redirect 됩니다.
안녕하세요, 강의 잘 보고 있습니다. 다만 실전 프로젝트 중 WebIgnoring 을 강사님이 하신 것 처럼 똑같이 따라 했는데도 불구하고 계속 favicon.ico가 302 redirect 됩니다. (아직 로그인 인증을 받지 않은 상태에서 루트 경로로 접속 시) 인텔리제이도 재시작 해보고, 인텔리제이 메뉴에서 invalidate caches/restart도 봤으나 결과는 계속 localhost:9090/login 으로 302 redirect 입니다. 제가 따로 web.ignoring().antMatchers("/favicon.ico", "/**/favicon.ico");와 같이 코드를 추가했어도 계속 302 redirect가 발생되네요. web.ignoring().antMatchers("/favicon.ico", "/**/favicon.ico"); [이 코드를 추가 하나 안 하나 변함 없이 302 redirect가 됩니다] 해결 방법이 있을까요? 감사합니다. (혹시 제가 이전에 올린 질문 글도 답변 부탁드려도 될까요...?) @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // memory 방식으로 사용자 build String password = passwordEncoder().encode("1111"); auth.inMemoryAuthentication().withUser("user").password(password).roles("USER"); auth.inMemoryAuthentication().withUser("manager").password(password).roles("MANAGER", "USER"); auth.inMemoryAuthentication().withUser("admin").password(password).roles("ADMIN", "MANAGER", "USER"); } @Bean public PasswordEncoder passwordEncoder() { ; return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } @Override public void configure(WebSecurity web) { web.ignoring() .antMatchers("/favicon.ico", "/**/favicon.ico"); web.ignoring() .requestMatchers(PathRequest.toStaticResources().atCommonLocations()); } @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/").permitAll() .antMatchers("/mypage/**").hasRole("USER") .antMatchers("/messages/**").hasRole("MANAGER") .antMatchers("/config/**").hasRole("ADMIN") .anyRequest().authenticated() .and() .formLogin(); } } 감사합니다.
-
미해결해외취업 ASP.NET Core 웹개발 기본 강좌
마이그레이션 오류
마이그레이션을 시도할시 위와같은 오류가 발생하는데 혹시 원인이 어떻게 될까요?
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
liveCounter 질문있습니다.
observe부분에서 "counter -> " 이부분의 counter는 viewmodel의 counter와는 다른것 맞나요? 그리고 viewmodel 의 counter와 다르다면 어떤걸 뜻하는지 알고싶습니다.
-
미해결스프링 기반 REST API 개발
부트 + jupiter 인 경우 설정법
@SpringBootTest @AutoConfigureMockMvc @ExtendWith(RestDocumentationExtension.class) class EventControllerTest { private MockMvc mockMvc; private WebApplicationContext webApplicationContext; private final ObjectMapper objectMapper; private final EventRepository eventRepository; @Autowired public EventControllerTest(WebApplicationContext webApplicationContext, ObjectMapper objectMapper, EventRepository eventRepository) { this.webApplicationContext = webApplicationContext; this.objectMapper = objectMapper; this.eventRepository = eventRepository; } @BeforeEach public void setUp(RestDocumentationContextProvider restDocumentation) { this.mockMvc = MockMvcBuilders.webAppContextSetup(this.webApplicationContext) .apply(documentationConfiguration(restDocumentation)).build(); } //..... 이하 생략 }
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
질문드립니다
항상 친절한 강의와 답변 모두 감사드립니다! 강의듣다가 두 가지 질문이있는데요. MemberService.update Method 에서 return 값으로 Member를 넘기게 되면 영속성이 끊긴다고 하셨는데 그러면 Controller 쪽에서 Member updateMember = memberService.update(id, name); 라고 하면 이 updateMember 는 준영속 상태인가요 ? 그리고 일단 기본적으로 독립된 트랜잭션마다 각각 다른 영속성 컨텍스트가 생성되는 게 맞죠? (OSIV 는 추후 듣도록 하겠습니다!)