luận văn về công nghệ Sping Web service
NHẬN XÉT CỦA GVHD KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE i NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN LỜI CẢM ƠN KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE ii LỜI CÁM ƠN Chúng em xin bày tỏ lòng biết ơn chân thành nhất ñến thầy ðặng Thanh Dũng, người thầy ñã tận tâm giúp ñỡ, hướng dẫn chúng em thực hiện luận văn này. Chúng con xin gửi lòng biết ơn và kính trọng sâu sắc ñến gia ñình, những người ñã nuôi dạy chúng con trưởng thành. Chúng em chân thành cảm ơn quý thầy cô trong khoa Công nghệ thông tin trường ðại học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh ñã tận tình giảng dạy, hướng dẫn, giúp ñỡ chúng em trong suốt quá trình học cũng như hoàn thành luận văn này. Mặc dù ñã cố gắng hết sức nhưng chắc chắn luận văn còn nhiều thiếu sót, chúng em mong nhận ñược sự thông cảm, chỉ bảo của quý thầy cô cùng các bạn. Tp.HCM ngày 31/12/2007 Lương Nguyễn Hải ðăng-ðoàn Huỳnh Cẩm Duyên MỤC LỤC KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE iii MỤC LỤC NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN i LỜI CÁM ƠN . ii MỤC LỤC . iii DANH MỤC CÁC HÌNH VẼ . v DANH MỤC CÁC BẢNG vii 1. CHƯƠNG 1 – MỞ ðẦU 1 1.1. Tính cấp thiết của ñề tài 1 1.2. Mục tiêu của ñề tài . 1 2. CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT 4 2.1. Web Services 4 2.1.1. Tổng quan về Web Service 4 2.1.2. Các thành phần chính của Web Service . 7 2.1.3. Tính bảo mật Web Service 12 2.2. Spring Web Service .13 2.2.1. Giới thiệu về Spring Framework và Spring Web Service 13 2.2.2. Contract-first 15 2.2.3. Tạo một web service trong Spring 44 MỤC LỤC KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE iv 2.2.4. Bảo mật web service trong Spring Web Service .70 2.3. Acegi Security .91 2.3.1. Giới thiệu .91 2.3.2. Authentication 92 2.3.3. Authorization 104 2.4. Kết luận . 125 3. CHƯƠNG 3 – THIẾT KẾ VÀ CÀI ðẶT . 127 3.1. Thực tế 127 3.2. Sơ ñồ chuyển trang 127 3.3. Cài ñặt giao diện 128 4. CHƯƠNG 4 – KẾT LUẬN 132 4.1. Tóm tắt các kết quả ñạt ñược . 132 4.2. Hướng phát triển 132 TÀI LIỆU THAM KHẢO 133 DANH MỤC CÁC HÌNH VẼ KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE v DANH MỤC CÁC HÌNH VẼ Hình Nội dung Trang 1.1 Use case diagram của chương trình 2 2.1 Kiến trúc Web service 8 2.2 Cấu trúc của một message theo dạng SOAP 12 2.3 Cấu trúc các module trong Spring Web Service 16 2.4 Quá trình xử lý luồng ñi của MessageDispatcher 47 2.5 Những lớp liên quan ñến quá trình Pre-Invocation Handling 110 2.6 After Invocation Handling 114 3.1 Sơ ñồ chuyển trang 127 3.2 Màn hình ñăng nhập 128 3.3 ðăng nhập thành công 128 3.4 Xem danh sách áo dài 129 3.5 Xem chi tiết áo dài 129 3.6 Xem thông tin liên hệ 130 3.7 Xem danh sách ñơn ñặt hàng 130 DANH MỤC CÁC HÌNH VẼ KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE vi 3.8 Xóa khách hàng 131 3.9 Cấm/cho phép khách hàng 131 DANH MỤC CÁC BẢNG KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE vii DANH MỤC CÁC BẢNG Bảng Nội dung Trang 1.1 Mô tả các use case 2 2.1 Bảng sử dụng KeyStore 74 CHƯƠNG 1 MỞ ðẦU KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 1 1. CHƯƠNG 1 – MỞ ðẦU 1.1. Tính cp thit ca ñ tài Cách ñây vài năm, khi nói tới thế kỷ 21, người ta khẳng ñịnh ñó sẽ là thời ñại của “nền kinh tế số” với “thương mại ñiện tử” là then chốt. Thông tin và các giao dịch ñược số hóa sẽ làm ñảo lộn nền kinh tế thế giới . Làm sao ñể có thể tận dụng Internet mở rộng thị trường, tìm thêm cơ hội cho sản phẩm, dịch vụ của mình ñã trở thành ñiều mà các doanh nhân, doanh nghiệp Việt Nam không thể không quan tâm. Có thể trước mắt, khi phần lớn các Website thương mại ñiện tử ở Việt Nam chưa thực hiện giao dịch trực tuyến thì bảo mật chưa thật sự quan trọng, nhưng về lâu dài, khi các giao dịch thương mại ñiện tử trở thành xu thế tất yếu thì nếu ít quan tâm ñến bảo mật sẽ rất khó ñể tự bảo vệ mình. Web service ra ñời ñã mở ra một hướng mới trong việc phát triển các ứng dụng trên Internet. Chính vì thế sự an toàn của web service trên mạng cũng không thể nằm ngoài vấn ñề này, có thể nói ngày nay ngoài việc nghiên cứu làm sao ñể tạo ra một web services tốt mang lại nhiều lợi ích thì việc nghiên cứu ñể làm sao mang lại sự an toàn cho web services cũng là một trong những vấn ñề quan trọng nhất. Chính vì thế, cần thiết phải có nhiều ñề tài nghiên cứu về bảo mật mạng và những công cụ thực hiện bảo mật ñể có thể áp dụng chúng cho thực tế nước ta hiện nay. 1.2. Mc tiêu ca ñ tài Mục tiêu chính của ñề tài gồm: • Nghiên cứu về web service và công nghệ Spring Web service. CHƯƠNG 1 MỞ ðẦU KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 2 • Nghiên cứu về các ứng dụng Acegi Security ñể bảo mật web service trong Spring. • Viết một ứng dụng web nhỏ bán hàng trên mạng bằng web service mô phỏng việc dùng Acegi Security ñể bảo mật. Các tính năng của chương trình mà chúng tôi ñang xây dựng có thể ñược biểu diễn trong use case diagram sau (Xem hình 1.1): Xoa User Xem don dat hang Disable User Enable User Admin Xem san pham Dat hang Xem thong tin lien he Dang nhap vao he thong User Dang ky thanh vien Hình 1.1 – Use case diagram của chương trình Nội dung chi tiết của các use case ñược cho trong bảng 1.1 CHƯƠNG 1 MỞ ðẦU KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 3 Bảng 1.1: Mô tả các use case Tên use case Mô tả Actor Admin Xoa User Xóa một User trong danh sách User Disable User Loại bỏ các quyền của User. Enable User Khôi phục các quyền cho User Xem don dat hang Xem ñơn ñặt hàng của khách Dang nhap vao he thong Dang nhap vao he thong Actor user Xem san pham Xem sản phẩm áo cưới hiện có ở cửa hàng Dat hang ðặt hàng áo cưới Xem thong tin lien he Xem thông tin liên h ệ của cửa hàng Dang ky thanh vien Dang ky thanh vien Dang nhap vao he thong Dang nhap vao he thong [...]... o m t cũng yêu c u Java 5 Spring web service bao g m m t s module sau: • XML module (spring-xml.jar) ch a nh ng class h tr XML cho Web service Module này có m c ñích chính cho Spring Web Service Framwork, và không ph i là Web service developer • Gói Core (spring -Web Service- core.jar và spring -Web Service- coretiger.jar) là ph n trung tâm c a c a ch c năng Spring web service Nó cung c p nh ng interfaces... ng mô t d ch v (Service Description) v i công ngh chu n là WSDL và XML WSDL (Web Services Description Language) là m t ngôn ng d a trên cú pháp XML dùng ñ mô t m t web service WSDL như m t file ng d ng trung gian ñ ng gi a web service và web service client • T ng d ch v ( Service) : cung c p các ch c năng c a service • T ng ñăng ký d ch v (Service Registry) v i công ngh chu n là UDDI (Universal Description,... nghiên c u, nhóm ñã có m t s ki n th c nh t ñ nh v Web Service, Spring Web service và Acegi Security ðây là cơ s lý thuy t n n t ng cho ng d ng 2.1 Web Services 2.1.1 T ng quan v Web Service 2.1.1.1 Gi i thi u Web Service là m t công ngh cho phép nh ng ng d ng có th giao ti p v i nhau trong nh ng h ñi u hành và nh ng ngôn ng l p trình ñ c l p v i nhau M t Web Service là m t giao di n ph n m m (software interface)... server-side, v i s WebserviceMessage và phân ph i thông ñi p r t m nh, và nh ng class h tr vi c ñ nh nghĩa endpoint c a Web service; cu i cùng là client-side WebServiceTemplate • Gói Security (spring -Web Service- security.jar) cung c p ñ nh nghĩa c a Web Service- Security mà h p nh t v i gói Core Nó cho phép b n thêm KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 14... n thông tin khi s d ng service Hình 2.1 - Ki n trúc c a Web Service 2.1.2 Các thành ph n chính c a Web Service 2.1.2.1 WSDL 2.1.2.1.1 T ng quát WSDL là m t tài li u d a trên cú pháp XML dùng ñ mô t m t web service nó ñóng vai trò trung gian gi a web service và web service client Trong tài li u WSDL chúng ta s ñ nh nghĩa các phương th c ñư c web service h tr , các ki u d li u ñư c s d ng trong các phương... vàng - Yellow pages: ch a thông tin mô t web services theo nh ng ch ng lo i khác nhau Nh ng thông tin này cho phép các ñ i tư ng th y web services theo t ng ch ng lo i c a nó • Trang xanh - Green pages: ch a thông tin k thu t mô t các hành vi và các ch c năng c a web services Các ñ i tư ng d a vào ñ c ñi m c a web services ñ tìm ki m 2.1.3 Tính b o m t Web Service 2.1.3.1 Gi i thi u WS - Security là... module trong Spring -Web Service và s ph thu c gi a chúng Mũi tên di n t s ph thu c, ví d như Spring -Web Service core ph thu c vào Spring-XML và Spring-OXM Hình 2.3-C u trúc các module trong Spring Web Service 2.2.2 Contract-first 2.2.2.1 Gi i thi u Khi t o Web service, có 2 d ng phát tri n: Contract Last và Contract First Khi s d ng Contract-last, b n b t ñ u v i Java code, và ñ cho Web service contract... Contract-first web service 2.2.2.4.1 Gi i thi u Sau ñây là cách vi t m t contract-first Web Service, có nghĩa là phát tri n web service b t ñ u v i XML Shema/WSDL ti p theo là mã Java Trong ph n này, chúng tôi xin gi i thi u m t web service, client có th g i yêu c u kỳ ngh lên server ñ ñ t trư c 2.2.2.4.2 Thông ñi p Trong ph n này, chúng ta s t p trung vào thông ñi p XML ñư c g i ñi và nh n t Web service. .. và ñăng ký web service KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 6 CHƯƠNG 2 CƠ S LÝ THUY T • Bên c nh ñó ñ cho các service có tính an toàn, toàn v n và b o m t thông tin trong ki n trúc web service chúng ta có thêm các t ng Policy, Security, Transaction, Management giúp tăng cư ng tính b o m t, an toàn và toàn v n thông tin khi s d ng service Hình... services là m t s n ph m c a Spring community t p trung vào vi c t o nh ng s n ph m Web Service Spring web service nh m vào vi c làm nh nhàng s phát tri n contract-first SOAP services Cho phép t o ra nh ng web service linh ñ ng s d ng nh ng cách khác nhau ñ ñi u khi n XML payload 2.2.1.3 Môi trư ng runtime Spring Web Services ch y v i Java 1.3 Nó cũng h tr Java 5.0, m c dù lo i Java ñư c ñ c t cho phiên . về Web Service, Spring Web service và Acegi Security. ðây là cơ sở lý thuyết nền tảng cho ứng dụng. 2.1. Web Services 2.1.1. Tổng quan về Web Service. cố hoặc yêu cầu sai. 2.1.1.3 Kiến trúc của công nghệ Web Service Hình 2.1 mô tả kiến trúc của công nghệ Web Service. Trong ñó bao gồm các tầng: • Tầng