반응형

Spring Security 5의 새로운 비밀번호 저장

1. 소개 최신 Spring Security 릴리스에서는 많은 것이 변경되었습니다. 이러한 변경 사항 중 하나는 응용 프로그램에서 암호 인코딩을 처리하는 방법입니다. 이 사용방법(예제)에서는 이러한 변경 사항 중 일부를 살펴보겠습니다. 나중에 새 위임 메커니즘을 구성하는 방법과 사용자가 인식하지 못하는 사이에 기존 암호 인코딩을 업데이트하는 방법을 살펴보겠습니다. 2. Spring Security 5.x 관련 변경 사항 Spring Security 팀 은 org.springframework.security.authentication.encoding 의 PasswordEncoder 를 더 이상 사용되지 않는 것으로 선언했습니다 . 이전 인터페이스는 임의로 생성된 솔트용으로 설계되지 않았기 때문에 이는 논리..

Spring 2022.11.29

스프링 Security이 적용된 스프링 데이터

1. 개요 Spring Security는 Spring Data와의 통합을 위한 훌륭한 지원을 제공합니다. 전자는 애플리케이션의 Security 측면을 처리하는 반면 후자는 애플리케이션 데이터가 포함된 데이터베이스에 대한 편리한 액세스를 제공합니다. 이 기사에서는 Spring Security가 Spring Data와 통합되어 더 많은 사용자별 쿼리를 가능하게 하는 방법에 대해 설명합니다 . 2. 스프링 시큐리티 + 스프링 데이터 구성 Spring Data JPA 소개에서 Spring 프로젝트에서 Spring Data를 설정하는 방법을 살펴보았습니다. 평소와 같이 스프링 Security 및 스프링 데이터를 활성화하기 위해 Java 또는 XML 기반 구성을 채택할 수 있습니다. 2.1. 자바 구성 Spring..

Spring 2022.11.29

Spring Security의 커스텀 AccessDecisionVoters

1. 소개 대부분의 경우 Spring 웹 애플리케이션 또는 REST API를 보호할 때 Spring Security에서 제공하는 도구로 충분하지만 때로는 보다 구체적인 동작을 찾고 있습니다. 이 사용방법(예제)에서는 사용자 지정 AccessDecisionVoter 를 작성하고 이를 사용하여 웹 애플리케이션의 권한 부여 논리를 추상화하고 애플리케이션의 비즈니스 논리에서 분리하는 방법을 보여줍니다. 2. 시나리오 AccessDecisionVoter 가 어떻게 작동하는지 보여주기 위해 USER 와 ADMIN 이라는 두 가지 사용자 유형으로 시나리오를 구현합니다 . 여기서 USER 는 짝수 분에만 시스템에 액세스할 수 있고 ADMIN 은 항상 액세스 권한이 부여됩니다. 3. AccessDecisionVoter ..

Spring 2022.11.29

Spring Security – 화이트리스트 IP 범위

1. 개요 이 예제에서는 Spring Security에서 IP 범위를 화이트리스트에 추가하는 방법에 대해 설명합니다 . Java 및 XML 구성을 모두 살펴보겠습니다. 또한 사용자 지정 AuthenticationProvider 를 사용하여 IP 범위를 화이트리스트에 추가하는 방법도 알아봅니다 . 2. 자바 구성 먼저 Java 구성을 살펴보겠습니다. hasIpAddress() 를 사용 하여 주어진 IP 주소를 가진 사용자만 특정 리소스에 액세스할 수 있도록 허용할 수 있습니다 . 다음은 hasIpAddress() 를 사용한 간단한 Security 구성 입니다 . @Configuration @EnableWebSecurity public class SecurityConfig { @Bean public Secu..

Spring 2022.11.29

Java HttpClient로 게시

1. 개요 Java HttpClient API는 Java 11에서 도입되었습니다. API는 최신 HTTP 표준의 클라이언트 측을 구현합니다 . 동기 및 비동기 프로그래밍 모델인 HTTP/1.1 및 HTTP/2를 지원합니다. 이를 사용하여 HTTP 요청을 보내고 응답을 검색할 수 있습니다. Java 11 이전에는 기본적인 URLConnection 구현이나 Apache HttpClient 와 같은 타사 라이브러리 에 의존해야 했습니다 . 이 사용방법(예제)에서는 Java HttpClient 를 사용하여 POST 요청을 보내는 방법을 살펴보겠습니다 . 동시 POST 요청뿐만 아니라 동기 및 비동기 POST 요청을 모두 보내는 방법을 보여줍니다. 또한 POST 요청에 인증 매개변수 및 JSON 본문을 추가하는 ..

Spring 2022.11.29

REST API의 HTTP PUT 대 POST

1. 개요 이 사용방법(예제)에서는 REST 아키텍처 내에서 자주 사용하는 두 가지 중요한 HTTP 메서드인 PUT 및 POST를 살펴봅니다. 개발자 가 RESTful 웹 서비스를 설계하는 동안 때때로 이 두 가지 방법 중 하나를 선택하는 데 어려움을 겪는다는 것은 비밀이 아닙니다 . 따라서 Spring Boot에서 RESTful 애플리케이션을 간단하게 구현하여 이 문제를 해결할 것입니다. 2. PUT 대 POST 딜레마 일반적인 REST 아키텍처 에서 클라이언트는 리소스를 생성, 검색, 수정 또는 삭제하기 위해 HTTP 메서드 형식의 요청을 서버에 보냅니다. PUT과 POST를 모두 사용하여 리소스를 생성할 수 있지만 의도된 애플리케이션 측면에서 둘 사이에는 상당한 차이가 있습니다. RFC 2616 표..

Spring 2022.11.29

JSON POST를 여러 Spring MVC 매개변수에 매핑

1. 개요 JSON 역직렬화에 대한 Spring의 기본 지원을 사용할 때 들어오는 JSON을 단일 요청 핸들러 매개변수에 매핑해야 합니다. 그러나 경우에 따라 보다 세분화된 메서드 서명을 선호합니다. 이 사용방법(예제)에서는 사용자 지정 HandlerMethodArgumentResolver 를 사용하여 JSON POST를 여러 강력한 형식의 매개 변수로 역직렬화하는 방법을 배웁니다. 2. 문제 먼저 JSON 역직렬화에 대한 Spring MVC의 기본 접근 방식의 제한 사항을 살펴보겠습니다. 2.1. 기본 @RequestBody 동작 예제 JSON 본문부터 시작하겠습니다. { "firstName" : "John", "lastName" :"Smith", "age" : 10, "address" : { "str..

Spring 2022.11.29

로그아웃은 GET 또는 POST여야 합니까?

1. 개요 기존의 웹 애플리케이션에서 로그인하려면 일반적으로 인증을 위해 서버에 사용자 이름과 암호를 보내야 합니다. 이러한 요소는 이론적으로 GET 요청의 URL 매개변수가 될 수 있지만 POST 요청으로 캡슐화하는 것이 훨씬 낫습니다. 하지만 GET 요청은 민감한 정보를 보낼 필요가 없기 때문에 로그아웃이 가능해야 할까요? 이 사용방법(예제)에서는 이 설계 고려 사항의 다양한 측면을 살펴보겠습니다. 2. 서버 측 세션 서버 측 세션을 관리할 때 해당 세션을 제거하기 위해 Endpoints을 노출해야 합니다. 단순성 때문에 GET 메서드를 사용하고 싶은 유혹을 느낄 수 있습니다. 물론 이것은 기술적으로는 작동하지만 일부 바람직하지 않은 동작을 유발할 수 있습니다. 사용자를 위해 GET 링크를 미리 가져..

Spring 2022.11.29

Spring Multipart POST 요청 테스트

1. 개요 이 빠른 사용방법(예제)에서는 MockMvc 를 사용하여 Spring에서 다중 파트 POST 요청을 테스트하는 방법을 볼 것 입니다. 2. 메이븐 의존성 시작하기 전에 최신 JUnit 및 Spring 테스트 의존성을 pom.xml 에 추가해 보겠습니다 . junit junit 4.13 test org.springframework spring-test 5.1.16.RELEASE test 3. 멀티파트 POST 요청 테스트 REST 컨트롤러에서 간단한 Endpoints을 만들어 보겠습니다. @PostMapping(path = "/upload") public ResponseEntity uploadFile(@RequestParam("file") MultipartFile file) { return fi..

Spring 2022.11.29

Apache HttpClient로 게시

1. 개요 이 예제에서는 HttpClient 4 를 사용하여 먼저 인증을 사용한 후 유창한 HttpClient API를 사용한 POST를 수행합니다 . 마지막으로 HttpClient를 사용하여 파일을 업로드하는 방법에 대해 설명합니다. 2. 기본 POST 먼저 간단한 예제를 살펴보고 HttpClient 를 사용하여 POST 요청을 보냅니다 . " username "과 " password " 라는 두 개의 매개 변수를 사용하여 POST를 수행합니다 . @Test public void whenSendPostRequestUsingHttpClient_thenCorrect() throws ClientProtocolException, IOException { CloseableHttpClient client = Ht..

Spring 2022.11.29
반응형