본문 바로가기

Tip

[spring] security 적용시 iframe 안될때

spring security 를 적용하고

 

로그인으로 정상적인 권한 획득까지 이루어졌는데

 

일반적인 화면은 잘 나오는데 iframe 으로 같은 서버 내의 페이지를 호출해도 나오지 않을 경우

(아래와 같이 보안으로 접근이 안됨)

 

security-context.xml 에서 아래와 같이 설정을 해주면 iframe으로 페이지를 호출 할 수 있습니다.

 

<http auto-config="true">

....

<headers>
   <frame-options policy="SAMEORIGIN"/><!-- iframe 안되는걸 방지 -->
</headers>

....

</http>

 

위와 같이 풀어도 다른 사이트에서 iframe 으로 본인의 사이트를 iframe으로 호출하는 것은 막힙니다.

 

추가로 spring security 적용을 하고나니

ajax나 스크립트로 parent 함수 등을 호출해야 하는데 보안으로 작동이 안하는 경우,

security-context.xml 에서 csrf 가 지정되어 있을 것입니다.

 

이를 해결하기 위해서는 두가지 방법이 있는데

1) <csrf disabled="true"/> 설정을 하는 방법

2) 각 form 안에 <input type="hidden" name="${_csrf.parameterName}"   value="${_csrf.token}" /> 를 추가해주는 방법

 

2번 방법을 해도 parent 함수를 호출해야 한다거나 하는 처리는 안되는 것으로 보입니다.

전 1번 방법으로 막았습니다.

 

 

감사합니다.

출처 : http://blog.daum.net/hepidaum/80