728x90 반응형 SMALL Spring공부41 Spring Legacy MVC Project 만들 수 없을 때 해결 방법 안녕하세요. 2024년 중반이 되어서도 스프링 부트가 아닌 Spring Legacy MVC Project를 통해당장이라도 작게 토이프로젝트라던가 잠깐 협업을 해야하는 경우가 있을 수 있습니다.그러나 요즘 STS-3에서부터는 MVC 프로젝트 생성을 지원하지 않더군요.뭐 이클립스에 Spring플러그를 설치하녜 마녜 그렇게 조치했고들 하나 이제는 정책이 변경되어 안되는것 같습니다.그래도 수동으로 셋팅하는 방법이 있어 그 방법을 공유하고자 이 포스팅을 올립니다. 2024년 5월 1일 기준으로 여러 블로그, 티스토리, 챗지피티 따라했으나 다들 마켓플레이스에서 다운받아라 그러는데 ... 수동으로 직접 진행하는 방법입니다. 소요시간 5분 이내입니다. 꼭 진행해주시기 바랍니다.누구나 따라할 수 있으니 천천히 따라하시면.. 2024. 5. 2. 파일 formData와 String 서버에 보내기 / 파일 업로드 다른 정보도 같이 보내기 웹에서 파일을 서버로 보내는 방법과 파일 외에도 다른 정보를 서버로 보내는 방법 파일을 서버로 보내다 보면 이런저런 어노테이션과 그럴싸한 소스들을 붙이는데 이 포스팅은 담백하게 깔끔하게 진행하는 소스이다. 테스트 환경 내가 업로드할 파일 과학기술정보통신부공고 제2022-0980호_우주항공청설립추진단의 설치 및 운영에 관한 규정 제정안 행정예고.hwp JSP 소스 VIEW 우선 put, patch 방식은 그냥 넣어봤다. :: 조건 :: 1. $Ajax 를 사용할 것 2. 서버로 파일이 도달하는지만 확인할 것 3. 다른 조잡한 어노테이션 사용 X 4. 특별하게 METHOD 방식을 XML이나 Config파일을 수정하여 올리지 않기 Post 매서드를 이용한 @RequestParam(" ") MultipartF.. 2022. 12. 12. @DeleteMapping 값 넘기기 / delete 값 보내기 / Rest API delete 값 / Rest api delete 파라미터 / Rest api delete 헤더 / Rest api delete 사용하는 방법 / @DeleteMapping 해더 / @DeleteMapping 파라미터 / @DeleteMapping body REST API Method 중 Get / Post에 대해서는 일반적인 프로젝트에서 많이 사용한다. 그런데 delete 관련되어서 정보가 많이 없다. REST API 에 대해 엄격하게 사용하려한다면 참고될 만한 포스팅 @DeleteMapping 서버단으로 값을 넘기는 3가지 방법 Paramiter (파라미터) 로 넘기기 PathVariable (패쓰배리어블) 로 넘기기 헤더에 정보를 담아 보내기 각 방법에 대한 설명 (파라미터 - > 패쓰배리어블 -> 헤더 순으로 진행) 테스트 환경 내가 보낼 데이터 var inData = { name : 'kimeunho' }; 나의 개인정보를 보낼 것이다. 최소 이름정도로 하자. 내 이름 또는 이에 준하는 ID라던가 Primary - Key값 정도되는 정보가 되어야한.. 2022. 12. 11. 프로젝트(2) AJax와 스프링 시큐리티 처리 태그를 이용하는 방식 외에 많이 사용되는 Ajax를 이용하는 경우 약간의 추가적인 설정이 필요하다. 해당 Ajax부분을 로그인한 사용자만이 해당 기능들을 사용할 수 있도록 수정해주어야 한다. 스프링 시큐리티가 적용되면 POST, PUT, PATCH, DELETE와 같은 방식으로 데이터를 전송하는 경우 추가적으로 X-CSRF-TOKEN와 같은 헤더 정보를 추가해서 CSRF토큰값을 전달하도록 수정해야한다. Ajax는 JS를 이용하기 때문에 브라우저에서는 CSRF토큰과 관련된 값을 변수로 선언하고, 전송 시 포함 시켜주는 방식으로 수정하자. 게시물등록 시 첨부파일의 처리 스프링 시큐리티가 적용된 후에는 게시물에 파일첨부가 정상적으로 동작하지 않는다. 게시물의 등록이 POST로 .. 2021. 10. 21. 프로젝트(1) 기존 프로젝트에 그동안 공부했던 스프링 시큐리티를 접목하는 작업을 진행하도록 하겠다. 그전에 해당 기능은 -로그인과 회원 가입 페이지의 작성 - 기존 화면과 컨트롤러에 시큐리티 관련 내용 추가 - Ajax부분의 변경 로그인 페이지 처리 기존의 로그인화면은 정말 끔찍하다.. 어쩌면 스프링에서 기본으로 주는화면급이었다. 똑같았다 그냥 그럼 조금 이쁘게 부트스트랩을 적용하고, 아까의 로그인의 화면의 태그라던가 id는 동일하게 설정한뒤 생성해보았다. Please Sign In Remember Me Login 폼태그가 붙고, 거기에 컨테이너 div가 붙고 해서 뭔가 복잡해 보이는데 화면으로보면 크게 달라진것은 없다. 귀찮다면 그전의 화면을 계속사용해도 문제는 없다. 하지만 JSTL이나 스프링 시큐리티의 태그를 사.. 2021. 10. 21. 자동 로그인 현재 웹페이지들은 자동 로그인이나 로그인 기억하기 라는 이름으로 한 번 로그인하면 읠정 시간 동안 다시 로그인을 하지 않아도 되는 기능을 가지고 있다. 스프링 시큐리티의 경우 로그인기억 기능을 메모리상에서나 처리하거나, 데이터베이스를 이용하는 형태로 약간의 설정만으로 구현이 가능하다. security-context.xml에는 태그를 이용해서 기능을 구현할 수 있다.! 해당 태그에는 아래와 같이 여러 속성값을 지정할 수 있다. key 쿠키에 사용되는 값을 암호화하기 위한(key)값 data-source-ref DataSource를 지정하고 테이블을 이용해서 기존 로그인 정보를 기록(옵션) remember-me-cookie 브라우저에 보관되는 쿠키의 이름을 지정한다. 기본값은 remember-me이다. re.. 2021. 10. 21. 스프링 시큐리티와 JSP JSP에서 로그인한 사용자 정보를 보여주기 /sampl/admin 과 같은 경로는 로그인한 사용자만이 접근할 수 있고, 만일 권한이 적당하지 않으면 볼수 없는 페이지이므로 로그인한 사용자가 접근 했을 때에는 해당 사용자의 여러 정보를 보여줄 필요가 있다. 스프링 시큐리티와 관련된 정보를 출력하거나 사용하려면 JSP상단에 스프링 시큐리티 관련 태그 라이브러리 사용을 선언하고, 태그와 principal이 라는 이름의 속성을 사용한다. 지금현재 있는 JSP파일에 해당 태그를 추가한다. 그리고 해당 사용자의 이름과 아이디, 권한들을 나타날 수 있도록 하기위해 각각의 태그들을 넣어주어 불러온 정보를 화면단에 나타나게 해줄 수 있다. /sample/admin page principal : MemberVO : 사용자.. 2021. 10. 19. 커스텀 UserDetailsService JDBC를 이용하는 방식을 DB를 처리해서 편리하게 사용할 수 있기는 하지만, 제한적인 내용만만을 이용한다는 단점이있다. 스프링 시큐리티에서 username이라고 부르는 사용자의 정보만을 이용하기 때문에 충분하지 실제 프로젝트에서 사용자 의 이름이나 이메일등의 자세한 정보를 이용할 경우에는 부족하다. 이런문제를 해결하기 위해서 직접 UserDeatilasService를 구현하는 방식을 이용한다. 흔히 커스텀 UserDetailsService를 구현하는데, 원하는 객체를 인증과 권한 체크에 활용 할 수 있다. 스프링 시큐리티의 UserDetailsService 인터페이스는 단 하나의 메서드만이 존재한다. loadUserByUsername()이라는 메서드의 반환 타입인 UserDetails 역시 인터페이스로.. 2021. 10. 19. JDBC를 이용하는 간편 인증/ 권한처리 현실적으로 JDBC를 이용하는 방식을 공부해보자 스프링 시큐리티에서는 사용자를 확인하는 인증과 권한 등을 부여하는 인가 과정으로 나누었다. 인증과 권한에 대한 처리는 크게 보면 Authenitacation Manager를 통해서 이루어진다. 이때, 인증이나 권한 정보를 제공하는 존재가 필요하고, 다시 이를 위해서 UserDetailsService라는 인터페이스를 구현한 존재를 활용한다. 유저 상세서비스는 스프링 시큐리티 API내에 이미 CahingUserDeatilsService, InmemoryIserDetailsmanager, jdbcDaoImpl, jdbcUserDetailManager, LdapUserDetailsManager, LdapUserDetailsService와 같은 구현 클래스들을 제공.. 2021. 10. 18. 로그인과 로그아웃처리(2) 커스템 로그인 페이지 앞서 언급했듯이 스프링 시큐리티에서 기본적으로 로그인페이지를 제공하긴한다. 현실적으로 화면 디자인등의 문제로 사용하기 불편하고 안예쁘다. 때문에 거의 대부분 경우 별도의 URI를 이용해서 로그인 페이지를 제작해서 사용한다. 이를 이용하는 방식은 접근 제한 페이지와 유사하게 직접 특정 URI를 지정할 수 있다. 보이는 바와같이 한줄을 수정 추가해주었다. 이제 로그인화면은 customLogin으로 이동하게 될것이다. login-page속성의 Uri는 get방식으로 접근하는 uri로 지정한다. 그리고 CommonController에 /customLogin에 해당하는 매서드를 추가해준다. @GetMapping("/customLogin") public void loginInput(String.. 2021. 10. 18. 로그인과 로그아웃 처리 스프링 시큐리티의 내부 구조는 상당히 복잡하지만, 실제 사용은 약간의 설정만으로도 처리가 가능하다. 앞에서 설계한 몇 개의 URI에 대한 접근 제한을 통해서 간단히 스프링 시큐리티의 적용 방법을 알아보자 접근 제한 설정 security-context.xml에 아래와 같이 접근 제한을 설정한다.; 특정한 URI에 접근할 때 인터셉터를 이용해서 접근을 제한하는 설정은 를 이용한다. pattern이라는 속성과 access라는 속성을 지정해야만 한다. pattern속성은 말 그대로 uri의 패턴을 의미하고, access의 경우는 권한을 체크한다. 이경우 /sample/member라는 uri는 role_member라는 권한이 있는 사용자만이 접근가능하게 된다. access의 속성값으로 사용되는 문자열은 1. 표현.. 2021. 10. 18. Spring Web Security 직접 프로젝트를 통해서 스프링 시큐리티의 동작을 먼저 살펴보자 스프링 시큐리티 스프링의 여러 하위 프로젝트 중에 하나이므로,https://spring.io/projects/spring-security Spring Security Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements spring.io 그리고 다양한 처리를 위.. 2021. 10. 18. 이전 1 2 3 4 다음 728x90 반응형 LIST