스프링이 기본으로 사용하는 in-memory 세션 저장소에 대한 자료를 얻고 싶습니다.
미해결
스프링의 기본 세션 저장소에 대해 깊게 이해하려 조사하던 도중 공식 문서만으로는 이해하기 쉽지 않아 질문글을 올려봅니다. 참고하기 좋은 자료가 있을까요?
- spring
- springsecurity
- session
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
스프링의 기본 세션 저장소에 대해 깊게 이해하려 조사하던 도중 공식 문서만으로는 이해하기 쉽지 않아 질문글을 올려봅니다. 참고하기 좋은 자료가 있을까요?
미해결
스프링 시큐리티
안녕하세요. 댓글로 다시 질문드렸는데 못보시는것 같아서 한번 더 질문드립니다. 인증을 받은 상태라서 로그인 유저 정보를 가져오는데는 어려움이 없습니다. 그럼 작성한 게시글의 작성자 id는 어떻게 가져오는가가 문제입니다. @ PreAuthorize ( "isAuthenticated() and (( #board.createdBy == principal.userId ) or hasRole('ROLE_ADMIN'))" ) @ RequestMapping ( value = "/{id}" , method = RequestMethod . PUT ) public ResponseEntity < Message > updateUser ( Board board , @Pathvariable String id ) { messageService . updateMessage ( id ) ; return new ResponseEntity < Message > ( new Message ( "수정성공" ) , HttpStatus . OK ) ; } 구글링을 해보니 바디에 삭제 혹은 수정할 글의 정보를 담아서 위 코드와 같이 요청을 보내더라구요.. 그럼 의미가 없는게 아닌가 싶습니다. 해당 글쓴이의 id(pk)를 제 id와 같게 담아서 보내면 삭제할수 있는 권한만 있으면 다른 글도 삭제 혹은 수정이 되지 않는가? 라는 생각이 들더라구요.. 제가 이상하게 생각하는건가요??ㅎㅎ;;
미해결
스프링 시큐리티
안녕하세요. 강사님 좋은 강의해주셔서 감사합니다. 제가 시큐리티에 jwt를 사용해서 rest api 를 개발중인데요.제가 강의를 아직 덜 보았지만 DB를 통해서 권한 관리하는 방법을 사용중입니다..아래 처럼 사용중입니다. 개발중 문제가 하나 있는데 게시판 같은 글을 삭제 할때 보통 해당 url과 method까지 추가해서 권한을 부여 하고있거든요. 예를 들어 /api/posts/*, DELETE를 추가하고 권한은 ROLE_ADMIN, 과 ROLE_USER를 설정 했습니다. 그럼 해당 url의 method는 권한을 체크하여 허용하거나 불허 합니다. 다만 이 글이 작성자 혹은 관리자만 삭제 할수 있어야 하는데 매번 컨트롤러에서 유저 체크하고 권한 체크하는 코드를 넣어줘야 하는가 궁금증이 생겨 찾아보니 인터셉터에서 url과 method 를 체크하는 벙법이 있었고 아래 처럼 다른 분의 질문에 이런식으로 예시를 들어주셨더라구요. 그런데 아래 메소드의 파라미터의 user는 로그인한 user객체일텐데 제가 지우거나 수정 해야 할 글의 생정자id는 어떻게 가져와 비교를 하시는건가요? @PeAuthorize에 있는걸로는 잘 이해가 안되더라구요. rest api로 개발 하다보니 url은 /api/posts/1 과 같이 게시글 id만 보내는 상황입니다., 답변 부탁드리겠습니다. 감사합니다. // 로그인한 사용자이고 본인인 경우나 혹은 전체 관리자인 경우 수정 메서드가 실행되고 그렇지 않을 경우엔 // 403 에러 발생함 @PreAuthorize ( "isAuthenticated() and (( #user.name == principal.name ) or hasRole('ROLE_ADMIN'))" ) @RequestMapping ( value = "" , method = RequestMethod. PUT ) public ResponseEntity<Message> updateUser (User user ){ messageService.updateMessage( "메시지 저장") ; return new ResponseEntity<Message>( new Message( "수정성공" ) , HttpStatus. OK ) ; }
미해결
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
안녕하세요. 좋은 강의 감사드립니다 :) 강의 19:23초경에 엔드포인트를 /health_check로 두고 get 요청을 날리셨는데, user-service의 WebSecurity에서 권한을 막아놓은 요청아닌가요? 어떻게 access denied가 발생하지 않았는지 궁금합니다.
미해결
스프링 시큐리티
안녕하세요! 좋은 강의 해주셔서 감사드립니다! 다름이아니라 리액트+스프링부트+스프링시큐리티 환경에서 로그인api 연동중에 CORS 이슈가 발생하여 구글링을 계속하였지만 결국 문제점을 해결하지 못하였습니다.. 죄송스럽지만 이렇게 질문 요청드립니다!! 질문요청드릴 내용은 스프링 시큐리티에서 CORS 설정 부분입니다. 우선 제가 적용한 코드는 아래와 같습니다! @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Bean public CorsConfigurationSource corsConfigurationSource(){ CorsConfiguration configuration = new CorsConfiguration(); configuration.addAllowedOriginPattern("*"); configuration.setAllowedMethods(Arrays.asList("*")); configuration.setAllowedHeaders(Arrays.asList("*")); configuration.setAllowCredentials(true); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", configuration); return source; } @Override protected void configure(HttpSecurity http) throws Exception { http .csrf().disable() .cors().and() .authorizeRequests() .antMatchers("/","/api/register","/api/login","/h2-console/**","/api/email","/api/verify","/api/matching/**").permitAll(); http.addFilterBefore(loginProcessingFilter(), UsernamePasswordAuthenticationFilter.class); //ajax 인증방식 사용 http.headers().frameOptions().disable(); //h2 console 접근 } } 이후 talend API Tester를 이용해서 api 테스트를 해본 결과 GET방식에는 문제가 없었으나 POST방식에서 403 에러 가 발생하였고 확인해본결과 preflight 요청에 대한 응답을 보내지못하는 문제로 판단되었습니다. 문제점을 해결하기 위해 configure 메소드에 아래와 같이 preflight 요청을 허가하는 코드를 작성 해보았지만 결과는 동일 하였으며 http.authorizeRequests() .requestMatchers(CorsUtils::isPreFlightRequest).permitAll( 스프링부트에서 configuration.allowCredentials(true) 와 configuration.allowedOrigins("*") 는 동시에 설정 못하도록 하였다고 해서 configuration.allowCredentials(true) 대신 .allowedOriginPatterns("*") 으로 변경해보았지만 역시 결과는 동일했습니다. 추가로 fliter의 순서가 문제인것같아 Filter를 상속받는 CORSFilter를 만들어서 적용해보았지만 결과는 동일 하였습니다. (해당부분은 https://sas-study.tistory.com/298 이 블로그를 참조했습니다.) 현재 어느 부분에서 해결점을 찾아야 할지 갈피를 못집고 있는 상황이라 이렇게 질문 요청드립니다..ㅜㅜ 답변해주시면 정말 감사드리겠습니다!