Web-MVC
spring
- Web MVC
- Spring MVC 를 통해 CORS 을 처리할 수 있다.
- Test
- Mission
- 톰캣을 이용해 브라우저에서 hello world 를 호출한다.
- 톰캣 query param 을 받아 출력
- sample/trevari.jsp 접속 시 Hello Trevari 출력
- WAS 가 무엇인가
- sample에 두개의 링크가 있는데, smaple/trevari.jsp를 검색했을 때 저 페이지가 나오면 됨
- http://localhost:8080/sample/trevari 이렇게 쳤을 때 sample/hello가 나오도록 해라
- http://localhost:8080/sample/trevari 이렇게 쳤을 떄 Hello Trevari가 나오게 한다.
- conf를 까봐라.
Web MVC
Spring MVC 를 통해 CORS 을 처리할 수 있다.
- 현재 보안상 브라우저는 속해있는 origin 을 제외한, 외부의 origin resource 에 대한 호출을 금지한다.
- 그렇기에 허용된 도메인 간 요청의 종류를 지정할 수 있도록 가능하다.
Processing
Spring MVC HandlerMapping 은 CORS 에 대한 내장 지원을 제공한다.
@CrossOrigin
@RestController
@RequestMapping("/account")
public class AccountController {
@CrossOrigin
@GetMapping("/{id}")
public Account retrieve(@PathVariable Long id) {
// ...
}
@DeleteMapping("/{id}")
public void remove(@PathVariable Long id) {
// ...
}
}
- All origins
- All headers
- All http methods to which the controller method is mapped
Global Configure
Default
- All origins
- All headers
- GET, HEAD, POST
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("https://domain2.com")
.allowedMethods("PUT", "DELETE")
.allowedHeaders("header1", "header2", "header3")
.exposedHeaders("header1", "header2")
.allowCredentials(true).maxAge(3600);
// Add more mappings...
}
}
CORS filter
CorsFilter
CorsConfiguration config = new CorsConfiguration();
// Possibly...
// config.applyPermitDefaultValues()
config.setAllowCredentials(true);
config.addAllowedOrigin("https://domain1.com");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
CorsFilter filter = new CorsFilter(source);
Test
- Servlet API Mocks: Unit Test Controller
- TestContext Framework
- Spring MVC Test: Annotation 이 달린 Controller 를 테스트하기 위한 프레임워크.
- Client side REST
- WebTestClient
MockMvc
- Spring MVC Application Test 지원
- 자체적으로 요청을 수행하고, 응답을 확인하는 데 사용
Mission
톰캣을 이용해 브라우저에서 hello world 를 호출한다.
공식 문서 -> fist web application -> download example application
-> 톰캣 다운로드
-> sample war 를 webapps 폴더로 이동
-> 권한 이슈 시 chmod 777 부여
톰캣 query param 을 받아 출력
request.getParameter(param);
sample/trevari.jsp 접속 시 Hello Trevari 출력
sample/trevari.jsp 파일 생성 후 Hello Trevari 를 html 태그로 적용
WAS 가 무엇인가
Web Application Server
sample에 두개의 링크가 있는데, smaple/trevari.jsp를 검색했을 때 저 페이지가 나오면 됨
Hello Trevari가 나오면 됨
http://localhost:8080/sample/trevari 이렇게 쳤을 때 sample/hello가 나오도록 해라
http://localhost:8080/sample/trevari 이렇게 쳤을 떄 Hello Trevari가 나오게 한다.
conf를 까봐라.
자바 파일 만들고 이걸 클래스파일로 만들고 web.xml을 건드러야 마지막 미션을 수행할 수 있을 것이다~