인프런 커뮤니티 질문&답변

박수한님의 프로필 이미지

작성한 질문수

스프링 배치

XML StaxEventItemReader -예제

Xstream 관련 ForbiddenClassException 또는 CannotResolveClassException 해결방법

작성

·

450

2

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;
    }

와 같이 진행했을 때 저의 경우 문제 없이 작동했습니다.

답변 2

2

정수원님의 프로필 이미지
정수원
지식공유자

감사드립니다

0

감사합니다~