묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링부트 시큐리티 & JWT 강의
10강 시큐리티 로그인중 api 라이브 과정
처음에 기타가 아닌 걸로 했다가 다시 작성해봅니다.앱 라이브를 안할경우 페이스북 로그인시 뜨는 화면 라이브를 하려니 뜨는 에러개인정보처리방침 URL:https://www.facebook.com/privacy/policy/?entry_point=facebook_page_footer사용자 데이터 삭제 https://developers.facebook.com/docs/development/create-an-app/app-dashboard/data-deletion-callback 임의 작성 localhost:8080 에서 대충 www.naver.com으로 웹사이트 url 변경 앱 라이브 성공!! 일단 라이브 성공 상태에서 다시http://localhost:8080 로 웹사이트 url 변경 ??? 읭? 분명 비활성화에서 바뀌긴 했는데 페이스북 로그인이 안됨.. (개발자 계정과 다른 페북 아이디일경우) 개발자 페이스북 아이디 동일할경우. 여기까지 후 일단 페북 인증 잠정 중단.확인결과 비즈니스계정을 인증해야 api를 정상적으로 사용가능한데, 비즈니스계정 인증시 사업자 등록증 등 요구하는게 많아 포기.
-
해결됨[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기
Validation 관련해서 질문드립니다.
무료 강의임에도 굉장히 강의 퀄리티가 높은 것에 감탄을 하며 보고 있는 중입니다. 좋은 감사드립니다.Validation 처리와 관련해서 질문드릴 것이 있는데요. 강의에서 DTO에 해당하는 클래스의 프로퍼티에 백킹필드를 사용하시고 Custom Getter를 만들어서 처리를 하셨는데, 혹시 이렇게 하는 방법 말고 바로 프로퍼티만으로 하는 방법도 있을까요?
-
미해결스프링부트 시큐리티 & JWT 강의
스프링 부트 시큐리티 6강-구글 로그인 준비
6강을 시작하면서 구글 클라우드 api 화면에서 새 프로젝트를 만들려고 여러 번 시도를 하였으나 만들어지지 않습니다.왜 그런 걸까요
-
미해결스프링부트 시큐리티 & JWT 강의
안녕하세요 강사님 질문있습니다.
만약 이 네이버 로그인까지 진행하고 로그인을 완료하면 index 페이지로 이동을 하는데,jwt토큰을 생성하려면 어떻게 해야 되나요?Service 에서 생성하고 적용하면 되는 건가요?
-
미해결스프링 시큐리티
Remember me 쿠키에 대해서
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. remember me 쿠키에 대해 질문드리려 합니다remember-me 쿠키는 사용자아이디 + 비밀번호를 암호화 해서 가지고 있는걸로 이해했습니다. 그래서 인증 토큰이 만료된다면, remember-me 쿠키를 통해서 쿠키를 디코딩하여 다시 인증을 시도하는걸로 이해했구요!그러면, 마지막에 'remember-me 쿠키를 통해서 쿠키를 디코딩하여 다시 인증을 시도' 하기 전에, 사용자가 비밀번호를 변경한다면 remember-me 는 적용이 안되고 다시 로그인 페이지로 돌아가는 걸까요?강의 잘 듣고 있습니다. 감사드립니다!
-
미해결스프링부트 시큐리티 & JWT 강의
커스텀 필터 적용 안됨
강의를 다 수강하고 깃허브 코드 참조하여 작성했습니다.현재 SecurityConfig 코드는 다음과 같습니다.@Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig{ private final UserRepository userRepository; private final CorsConfig corsConfig; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http .csrf(AbstractHttpConfigurer::disable) .sessionManagement((sessionManagement) -> sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS) ) .formLogin(withDefaults()) .httpBasic(withDefaults()) .apply(new MyCustomDsl()) .and() .authorizeRequests(requests -> requests .requestMatchers("/user/**").authenticated() .requestMatchers("/admin/**").access("hasAuthority('ADMIN')") .anyRequest().permitAll() ) .build(); } public class MyCustomDsl extends AbstractHttpConfigurer<MyCustomDsl, HttpSecurity> { @Override public void configure(HttpSecurity http) throws Exception { AuthenticationManager authenticationManager = http.getSharedObject(AuthenticationManager.class); http .addFilter(corsConfig.corsFilter()) .addFilter(new JwtAuthenticationFilter(authenticationManager)) .addFilter(new JwtAuthorizationFilter(authenticationManager, userRepository)); } } } filterchain에서 and()에 오류가 발생합니다.'and()' is deprecated and marked for removal 로 나오는데 and가 deprecated된 거 같지는 않고 커스텀 필터를 적용하는 것에서 뭔가 문제가 있지 않을까 싶습니다만 이틀째 해결을 못하고 있어 문의남깁니다ㅠㅠ
-
미해결스프링부트 시큐리티 & JWT 강의
스프링에서도 JWT 구현가능한가요? (스프링 부트X)
안녕하세요 강사님.스프링 환경에서 작업 진행 중에 JWT를 구현하고자 하는데, 강사님 수업도 마찬가지이며 구글링해봐도 정보들 대부분이 스프링 부트 환경에서 JWT 구현하는 내용들이라 궁금합니다.스프링 부트가 아닌 스프링 환경에서도 JWT 구현이 가능한가요?가능하다면 스프링 부트에서 구현하는 방식을 따라도 될까요?
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
컨택스트패스 경로 질문이 있습니다.
경로를 지정해주지 않아도 잘 모든게 잘 동작하는데 혹시 사용하시는 이유가 있을까요??
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
pom.xml의 dependencies 관련 질문
안녕하세요 해당 프로젝트를 이클립스가 아닌 인텔리제이로 만들고 싶어 글을 올리게 되었습니다.SpringMVC12 프로젝트(이게 7강에서 11강까지 다 모여있는 거겠죠...?)의 pom.xml에 사용한 것들을 스프링 이니셜라이저의 gradle(build.gradle)로 하고 싶은데 dependencies에 각각 어떠한 것들이 들어가 있는지 알 수 있을까요?
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
E..dito...r에 대한 질문...
난독증이 있는건지 내용은 그대론데 읽을 때마다 내용이 달라지는 것 같아 질문을 남깁니다...다른 분들이 작성하고, 호돌맨님께서 남기신 답글들을 보고 나서 제가 이해한 것이 맞는지 확인 부탁드립니다... 1. 자판기 비유에 대한 내용1.1. request(edit), domain(editor)를 작성하셨는데, 말씀하시는 부분이 (결국 같은 내용이겠지만...) request(edit)에는 edit.title, edit.content(100원, 500원)(동전)뿐만 아니라 추후에 예를 들어 edit.name, edit.gender(1000원, 10000원)(지폐)가 넘어 올 수도 있는 상황이 발생할 수도 있는데, 지폐(name, gender)는 받고 싶지 않은 상황에서 domain(editor)(금액 투입구)를 사용하지 않으면, 지폐가 들어오는 것을 막을 수 없고, 추후에 불필요한 지폐를 걸러내는 작업이 발생하기 때문에 애초에 입구 자체를 동전만 넣을 수 있는 domain(editor) 금액 투입구를 만들게 되면, 들어온 모든 동전은 사용에 필요한 값이기 때문에 불필요하게 걸러내는 작업이 없어진다고 생각하는 것이 맞을까요...? (같은 말인 것 같은데... 예를 더 어렵게 만든 것 같아 죄송합니다...) 호돌맨님이 if를 통해 기존 값을 사용하는 방식2.1 이 말은 즉, 위 예를 연속해서 사용하자면 [사람 1]이 edit.title(100원)을 넣은 상태에서 [사람 2]가 edit.content(500원)짜리를 넣어도 [사람 2] 때문에 [사람 1]이 넣은 edit.title(100원)이 사라지면 안되기 때문에 사용한다는 말씀이 맞으실까요? (물론 위의 예는 [사람 2]가 edit.title(100원)을 넣게되면 금액이 추가되는 것이 아니라 동전이 변경되야 한다는 오류가 있긴 하지만... 그냥 사용하겠습니다...) 뭔가 작성하면서 또 이해가 된 것 같긴하지만... 틀린 부분이 있다면 지적 부탁드립니다... 또 예를 추가하고 글을 복잡하게 만들어 죄송합니다...
-
미해결스프링 시큐리티
SecurityConfig질문
안녕하세요 강의잘듣고 있습니다!. 해당 강의부터 엑셀에 작성해주신대로 05-01브랜치를 참고하여 강의를 진행하고 있습니다. SecurityConfig.java를 보면, ajax LOGIN방식을 DSL로 구현한게 Form방식과 합쳐져 있는데 이 설정하나로 form / ajax로그인 두 방식모두 지원하는건가요?
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
혹시 마프는 언제 오픈 되나요?
선생님 강의 정말 감사하게 잘 듣고 있는 학생입니다~선생님께서는 코딩 멍충이도 술술 이해 시키는 놀라운 마력을 가지고 계시는 거 같아요항상 감사하는 마음 가지고 수업에 임하고 있습니다. 많이 바쁘시겠지만 혹시 언제 마프가 오픈되는지 알 수 있을까요? 이번 강의 마무리하고 곧 마프로 선생님 강의 듣고 싶은 학생입니다. 존경합니다~ 박매일 선생님!!
-
미해결스프링 시큐리티
메소드방식 인가처리와 URL 방식 인가처리를 중첩으로 설정할 경우 메소드방식 인가처리가 적용되는 이유
메소드방식 인가처리와 URL 방식 인가처리를 중첩으로 설정할 경우 메소드방식 인가처리가 적용되더라고요추측이지만 메소드방식 인가처리가 URL인가처리 이후 실행되기 때문이라고 생각이 드는데 맞을까요?
-
해결됨스프링부트 시큐리티 & JWT 강의
시큐리티 2강 SecurityConfig 설정시 로그아웃 -로그인 납치증상
SecurityConfig 작성후 계속하여 로그아웃 시도시 로그인 화면으로 납치되어 정상적인 학습이 불가능합니다. --> 로그아웃 시도할경우 로그인 string 리턴
-
해결됨스프링 시큐리티
setSharedObject 메소드 질문있습니다!.
안녕하세요 강사님 강의 잘듣고 있습니다. 아래 코드가 필요한가요? 공유해야하는 이유를 잘모르겠구 주석해도 정상작동하는거 같아서 질문드립니다! 감사합니다!.http.setSharedObject(AjaxLoginProcessingFilter.class, getAuthenticationFilter());
-
미해결스프링부트 시큐리티 & JWT 강의
사용자 정보 변경 시 jwt 재발급
안녕하세요. jwt를 사용하다가 jwt의 subject는 email, 그 외에 사용자의 닉네임과 같은 정보를 claims 에 넣었습니다. 그런데 이렇게 사용자의 정보가 변경될 때 특히 email이 변경될 때는 토큰을 재발급 받아줘야 사용 가능한 토큰이 되는데 만약 claims에 없는 비밀번호와 같은 보안과 관련된 정보를 변경했을 때는 새 토큰을 발급 받아도 사용자가 이전에 발급 받은 토큰으로 서비스에 접근할 때 어떻게 불가능한 토큰이라고 알 수 있는지 모르겠습니다. 토큰의 유효성을 검사하는 코드에서 db에서 사용자의 정보 수정일 이전 발행된 토큰이면 유효하지 않은 토큰이라고 하는 편이 나을지 고민입니다. 만약 이렇게 한다면 사용자의 정보를 수정할 때마다 새로운 토큰을 발급해줘야 된다는 점이 신경쓰입니다.Date date = Date.from(user.getModifiedDate().atZone(ZoneId.systemDefault()).toInstant()); // 토큰 발행일이 유저 데이터 수정일 이전이면 유효하지 않은 토큰임 if(claims.getBody().getIssuedAt().before(date)) { throw new CustomException(ErrorCode.VALIDATION_ERROR, "유효하지 않은 토큰입니다."); }매번 새로운 토큰을 발급받게 하는 게 좋은 방법일까요?
-
미해결스프링부트 시큐리티 & JWT 강의
안녕하세요 강사님 핸들러 질문있습니다
현재 제 상황은 이러합니다Oauth2Service에서 검증을 하고여기서 회원 생성을 할 수 있습니다. (현재는 빼놓은 상태)그리고 successhandler까지 구현했습니다.이 상태입니다.근데 저는 로그인을 성공했을 경우,핸들러를 타지 않고 8080:/ 주소로 이동합니다. 이러한 경우에 어떻게 토큰을 발급하고 적용할 수 있는지 모르겠습니다.apply로 정의한 함수때문에 핸들러를 거치지 않는 걸까요?apply로 정의한 함수는 강사님 JWT 강의랑 똑같습니다.
-
미해결스프링 시큐리티
child_name,parent_name
계층권한에서 저 둘의 관계는 왜@ManyToOne로 설정 되어 있을까요 ??현재 프로젝트는 1:1로 해도 문제가 없지 않나요 ?!
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
WebSecurityCustomizer 와 SecurityFilterChain 차이점에 대해 여쭙고싶어요
@Configuration @EnableWebSecurity(debug = true) // 운용환경에서는 꼭 꺼야한다. public class SecurityConfig { @Bean // Spring Security 무시시키기 public WebSecurityCustomizer webSecurityCustomizer() { return new WebSecurityCustomizer() { @Override public void customize(WebSecurity web) { // /error -> spring에서 기본제공하는 것 web.ignoring().requestMatchers("/favicon.ico", "/error") // .requestMatchers(new AntPathRequestMatcher("/h2-console/**")); // 멍청한 우리들을 위해 스프링이 제공해주신 위으 코드를 대신하는 메서드 .requestMatchers(toH2Console()); } }; } @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { // and() 메서드가 deprecated되어 람다식으로 사용하라고 한다. return http.authorizeHttpRequests(authorizeHttpRequests -> { authorizeHttpRequests .requestMatchers("/auth/login").permitAll() .anyRequest().authenticated(); }).csrf(AbstractHttpConfigurer::disable).build(); } }안녕하세요 호돌맨님 위의 WebSecurityCustomizer에서 하는 일을 밑의 SecurityFilterChain에서도 할 수 있을것 같은데요 둘을 어떻게 사용방법을 구분해야할지 여쭙고 싶어요 30년차사수(ChatGPT) 에 물어보니 차이점:WebSecurityCustomizer는 주로 보안 구성을 조정하고 보안 설정을 사용자 정의하는 데 사용됩니다. 이를 통해 더 세부적인 보안 요구 사항을 처리할 수 있습니다.SecurityFilterChain은 주로 실제 보안 필터 체인을 구성하는 데 사용됩니다. 여러 보안 필터가 어떤 순서로 실행될지를 결정하며, 보안 관련한 요청 처리를 담당합니다.둘 다 Spring Security의 핵심 요소이며 보안 구성과 필터 체인의 다른 측면을 다룹니다. 일반적으로 SecurityFilterChain을 사용하여 필터 체인을 정의하고, 필요에 따라 WebSecurityCustomizer를 사용하여 더 많은 세부 설정을 적용할 수 있습니다.라는데.. 처음 Security를 접하다보니 감이 안잡히네용..
-
미해결스프링 시큐리티
SecurityContext 의 clear시점이 궁금합니다.
강의를 듣다가 궁금한점이 생겨 이렇게 질문 드립니다.SecurityContextPersistenceFilter에서 클라이언트의 최종 요청이 끝나면 SecurityContext를 클리어한다고 알고 있습니다.거기서 클라이언트의 최종요청 이라는것이 SecurityContext는 세션에 저장되어 있으니 세션만료 될때까지는 존재 하는것인지 아니면 요청이다보니 하나의 컨트롤러에서 하나의 작업을 수행 후 리턴해주고 끝났을때 마다 SecurityContext 를 클리어해주고 새로운 요청이오면 다시 만드는 것인지 궁금합니다.