'WA 시스템'에 해당되는 글 2

  1. 2011.07.22 web.xml 에 EL 사용하기 4
  2. 2011.07.14 Spring Security에 SSL 적용 1

web.xml 에 EL 사용하기

시스템 프로퍼티를 web.xml 에서 EL 로 사용 가능하다.
동일한 소스를 사용하는 2대의 서버에서 처리한 예
- 요구사항
대외계에서는 security_outer.xml 을 로드하고 세션타임아웃을 30분으로 설정한다.
내부 시스템에서는 security_inner.xml 을 로드하고 세션이 끊기지 않도록 설정한다.

환경에 따라 web.xml 을 변경하지 않고 각 환경에 맞게 적용할 수 있다.
java -cp ... -Denv.type=outer -Dsession.timeout=30 xxx.HttpServer
java -cp ... -Denv.type=inner -Dsession.timeout=-1 xxx.HttpServer

- env.type 이 outer 인 경우 세션 타임아웃을 별도로 지정하지 않아도 30분으로 설정하고 싶은데 web.xml 에서 논리 표현을 지원하지 않는다.
(Resin 설정 파일에서는 가능함)

Spring Security에 SSL 적용

- 보통 SSL 적용시 로그인이나 중요한 구간만 적용하는데 여기서는 전체 시스템에 적용을 하려고 함.

- 방화벽에서 443 포트만 개방하고 80은 막는 것을 추천
대외기관과 연계하는 부분이 있는데, 이 곳은 방화벽에서 예외 정책을 두면 된다.
(80 포트가 노출된다고 하니 80이 아닌 다른 포트로 개방)

- 그런데 80 포트를 막으면 공지를 해도 사용자들이 혼란스러워 한다고해서 http로 접근한 사용자들을 자동으로 https로 전환시켜 달라고 함.

Spring Security가 적용되어 있어서 접근가능한 경로에 https로 설정했다. 처음에는 /board/list 로 접근시 http를 사용하면 접근이 거부되는 줄 알았지만 친절한 Spring Security가 https로 전환시켜 준다.             [todo] 이 원리 포스팅 글 연결

- 어떤 이유인지는 모르지만 첫 화면에서 http 로 접근시 javascript로 location을 https로 해서 이동시키자는 의견이 있었음.
어플리케이션에 변경이 생김.
그러나 이런 정책에 따라 어플리케이션이 변경되는 것은 바람직하지 않다.

Spring Security의 / 에 any로 적용되어 있는 것을 https로 해서 처리함.

- 보안에 관련된 다양한 요구사항을 Spring Security로 손쉽게 처리할 수 있어서 좋다. 적극적으로 도입하자.
인프라의 변화를 어플리케이션에서 처리하려고 하면 안됨.