2012-07-12 2 views
4

SOA의 라인을 따라 Symfony2 (간단한 편집 : Symfony2는 놀라움)에서 웹 애플리케이션을 개발 중입니다. 모든 데이터는 jQuery로 구동되는 프론트 엔드와 Symfony2 백엔드 사이에서 앞뒤로 튕겨져 있으며 JSON 형식으로되어 있습니다.SOA 스타일을 안전하게하는 방법 Symfony2 Application

Symfony2는 강력한 보안 시스템을 제공하지만 양식 제출을 가로 채고 "폼 인코딩 된 POST 데이터를 사용하여 인증 시도를 처리하는"보안 계층 ​​"과 관련이있는 것처럼 보입니다. JSON을 독점적으로 사용하기 때문에 문제가됩니다. 내가 서있는 곳에서, 모든 요청과 응답마다 JSON을 사용하여 인증을 제외하고는 ... 솔직히 말해서 bool의 시트입니다. 나쁜 냄새, 나쁜 주주, 뭐라 부르든지.

이제 Symfony2는 요청의 라이프 사이클 및 소비 응답과 관련된 일련의 이벤트를 연결하는 이벤트 리스너를 만들 수 있습니다. 우리는 이러한 훅 중 하나를 사용하여 모든 POST 요청과 함께 제공되는 JSON을 디코딩하므로 관련 컨트롤러 만 PHP 배열을 직접 작업하고 디코딩 또는 비 직렬화 등을하지 않아도됩니다.

"보안 계층"은 양식 제출 (일반적으로 첫 번째 위치에서 제공 한 페이지에서)에서 폼 인코딩 된 POST 데이터를 가져올 것으로 기대합니다. 우리는 JSONified 데이터에서 생성 된 PHP 배열을 제공하도록 설정되었습니다. 그래서 무엇을합니까? 해야 할 일 :

  • le JSON으로 만든 배열을 처리하기 위해 작성된 사용자 정의 인증 서비스를 만드시겠습니까?
  • 우리 요청 훅을 조정하여 각 요청의 대상 URI를 확인한 다음 요청의 JSON을 "보안 계층"이 기대하는 양식 인코딩 문자열로 마사지하십시오.
  • "보안 레이어"를 조정하여 JSON이 PHP 배열을 사용할 수 있도록 하시겠습니까?
+0

+1 안녕하세요. 견고한 시스템을 더욱 발전시키려는 이러한 질문을 좋아합니다. 게다가, 나는 너의 'bool'줄을 좋아한다. –

+0

Symfony가 "폼 인코딩 된 POST"를 기대하는 곳은 어디입니까? sf2에는 모든 종류의 인증 메커니즘이 구현되어 있으며, post는 그 중 하나 일뿐입니다. – MDrollette

+0

@Arms Word! 감사. – nothankyou

답변

1

고유 한 인증 공급자를 만드는 것이 매우 간단합니다. cookbook article을 따라 가며이 예제에서 사용 된 WSSE 대신 JSON 요청을 처리하도록 약간 수정할 수 있습니다.

+0

나는이 아이디어를 점점 더 좋아합니다. 건강한 _and_ 만족. 우리는 그것을 굴려서 무슨 일이 일어나는지 보게 될 것입니다! – nothankyou

+0

완전히 작동했습니다! 팁 고마워! – nothankyou