병합 중 security 에러발생.
일단 컨트롤러에서 @Resource 지워주고 @Autowired 적용하니 500에러로 변경.
mapper를 인식 못함.
boardList를 찾아오라고 했으나 찾지 못하고 NullPointException발생.
xml내의 id와 동일하게 mapper를 바꿔주니 해결.
단 mapper에 @Repository 를 적용하면 다시 500에러.
@Mapper만 정상 작동.
insert페이지에서 에디터 출력 안되는 에러 발생.
크롬 개발자 콘솔 창에서 X-Frame-Options to 'deny' 에러가 발생.
X-Frame-Options HTTP 응답 헤더는 해당 페이지를 <frame> 또는 <iframe>,<object>에서
렌더링 할 수 있는지 여부를 나타내는데 사용한다.
사이트 내 콘텐츠들이 다른 사이트에 포함 되지 않도록 하여 ClickJacking 공격을 막기 위해
이 헤더를 사용한다.
이 설정은 사용자가 X-Frame-Options를 지원하는 브라우저를 통해 페이지에 접근할 경우에만
보안된다.
즉, 보안을 security에서 제공하는 기능이고 이것 때문에 외부 콘텐츠인 에디터가 출력이 되지 않았던 것이다.
오류 해결 방법으로는 SecurityConfig.java에 있는 configure(HttpSecurity httpSecurity) 메소드 내에
httpSecurity
.and()
.headers()
.frameOptions().disable()
이렇게 추가해주었다.
자료가 굉장히 부족한 편이어서 이것저것 다 해봤고 view에서
<meta http-equiv="X-Frame-Options" content="deny">
이것도 작성 해봤으나 전혀 의미없었다.
다른 블로그에서는 이 meta태그는 전혀 아무런 영향도 끼치지 않으니 쓰지 말라고 한다.
처음에 configure에 작성할때는
httpSecurity
.and()
.headers()
.addHeaderWriter(new StaticHeadersWriter("X-Content-Security-Policy", "script-src 'self'"))
.frameOptions().disable()
이렇게 작성했었는데 4번째 라인인 .addHeaderWriter는 지워줘도 정상 작동한다.
이게 X-Frame-Options의 보안을 깨고 에디터를 출력해주는 것인 듯 하다.
하지만 보안을 위해 넣어둔 기능인 만큼 다른 방법이 있거나 아니면 안쓰는 쪽으로 하는게 낫지 않을지....라는 생각
에디터 이미지 경로 설정에서 에러 발생.
처음 샘플 게시판을 만들때는 webapp에서 html을 만들고 thymeleaf를 사용하며 이미지폴더도 webapp에 넣어뒀으나
팀 프로젝트 구조는 resources/img/...로 경로를 잡아주었다.
하지만 경로 설정이 전혀 안되는 오류가 발생.
계속 C:\Users\palyo\AppData\Local\Temp\tomcat-docbase.6798108938226834884.8080\.....
이 경로로만 입력이 됨.
해결방법으로는 .getRealPath("resources/board/"); 를 잡아주고
File file = new File("src\\main\\resources\\board");
이렇게 강제적으로 경로를 다 잡아줌.
에디터에 정보출력 해주는 sb.append에는
.append("http://localhost:8080/board/")
로 board에서 이미지값을 불러오도록 설정함.
강사님께서 절대 추천하는 방식이 아니라고 하셨고 현재 정 방법이 없으니 이렇게라도 만들었다.
기본 경로가 webapp으로 잡히기때문에 webapp에 저장하는게 편한 방법이고
실제로는 보통 서버 혹은 서버 컴퓨터 내의 폴더에 저장하기 때문에 사실상 거의 안쓰는 방식이라고 생각하면 될듯하다.
'Project&문제해결' 카테고리의 다른 글
6월 17일 에러 (thehouseProject) (0) | 2020.06.18 |
---|---|
6월 10일 에러 (thehouseProject) (0) | 2020.06.10 |
6월 5일 에러 (thehouseProject) (0) | 2020.06.05 |
6월 4일 에러 (thehouseProject) (0) | 2020.06.05 |
6월 3일 에러 (thehouseProject) (0) | 2020.06.03 |