Xstream 관련 ForbiddenClassException 또는 CannotResolveClassException 해결방법
미해결
스프링 배치
XStream 버전이 올라가면서 보안 관련 문제로 실습이 제대로 안되는 문제가 있었습니다. 간단하게 실습 자체만 하고 싶으신 분들은 XStream 모듈 버전을 낮추시면 됩니다. implementation 'com.thoughtworks.xstream:xstream:1.4.16' 저의 경우 그렇게 하기는 싫어서 다른 방식으로 문제를 해결했습니다. public Unmarshaller itemUnmarshaller() { final Map<String, Class<?>> aliases = new HashMap<>(); aliases.put("customer", Customer.class); aliases.put("id", Long.class); aliases.put("name", String.class); aliases.put("age", Integer.class); final XStreamMarshaller xStreamMarshaller = new XStreamMarshaller(); final XStream stream = xStreamMarshaller.getXStream(); stream.alias("customer", Customer.class); // CannotResolveClassException 해결방안 stream.addPermission(AnyTypePermission.ANY); // ForbiddenClassException 해결방안 xStreamMarshaller.setAliases(aliases); return xStreamMarshaller; } 와 같이 진행했을 때 저의 경우 문제 없이 작동했습니다.
- staxeventitemreader
- spring-boot
- xstream
- spring-batch





