Bảo mật mạng máy tính và hệ thống nghiên cứu giải pháp đảm bảo an toàn cho restful api với spring boot trên cơ sở dữ liệu mongodb

30 2 0
Bảo mật mạng máy tính và hệ thống nghiên cứu giải pháp đảm bảo an toàn cho restful api với spring boot trên cơ sở dữ liệu mongodb

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ TÀI NGUYÊN VÀ MÔI TRƯỜNG TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG KHOA HỆ THỐNG THÔNG TIN VÀ VIỄN THÁM  ĐỒ ÁN MÔN HỌC BẢO MẬT MẠNG MÁY TÍNH VÀ HỆ THỐNG NGHIÊN CỨU GIẢI PHÁP ĐẢM BẢO AN TOÀN CHO[.]

BỘ TÀI NGUYÊN VÀ MÔI TRƯỜNG TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG KHOA: HỆ THỐNG THÔNG TIN VÀ VIỄN THÁM  ĐỒ ÁN MÔN HỌC BẢO MẬT MẠNG MÁY TÍNH VÀ HỆ THỐNG NGHIÊN CỨU GIẢI PHÁP ĐẢM BẢO AN TOÀN CHO RESTFUL API VỚI SPRING BOOT TRÊN CƠ SỞ DỮ LIỆU MONGODB ……………………………………………………………………………………………… Giảng viên hướng dẫn: ThS Phạm Trọng Huynh Sinh viên thực hiện: Hà Thị Thùy Trang Phạm Lê Nhật Quang Lớp: 08_DHCNPM Khóa: 08 TP Hồ Chí Minh, tháng 10 năm 2022 BỘ TÀI NGUYÊN VÀ MÔI TRƯỜNG TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG KHOA: HỆ THỐNG THÔNG TIN VÀ VIỄN THÁM  ĐỒ ÁN MƠN HỌC BẢO MẬT MẠNG MÁY TÍNH VÀ HỆ THỐNG NGHIÊN CỨU GIẢI PHÁP ĐẢM BẢO AN TOÀN CHO RESTFUL API VỚI SPRING BOOT TRÊN CƠ SỞ DỮ LIỆU MONGODB ……………………………………………………………………………………………… Giảng viên hướng dẫn: ThS Phạm Trọng Huynh Sinh viên thực hiện: Hà Thị Thùy Trang Phạm Lê Nhật Quang Trần Bá Thiện Lớp: 08_DHCNPM Khóa: 08 TP Hồ Chí Minh, tháng 10 năm 2022 MỞ ĐẦU LỜI CẢM ƠN Em xin chân thành cảm ơn thầy Phạm Trọng Huynh, Giảng viên môn bảo mật mạng máy tính hệ thống trường Đại học Tài nguyên Mơi trường Thành phố Hồ Chí Minh cung cấp cho kỹ kiến thức cần thiết để hoàn thành nhiệm vụ dự án Tuy nhiên, trình làm đề tài, kiến thức chun mơn cịn hạn chế em, chắn khơng tránh khỏi thiếu sót việc nêu đánh giá vấn đề Em mong đóng góp ý kiến, đánh giá thầy giáo mơn để khóa luận em hoàn thiện Chân thành cảm ơn! NHẬN XÉT ĐIỂM Chương Giới thiệu đồ án 1.1 Định nghĩa vấn đề Ngày hệ thống Internet ngày phát triển, phần mềm sử dụng hệ thống internet ngày nhiều Các phần mềm đa dạng dẫn đến có nhiều yêu cầu cần đáp ứng Một số phần mềm địi hỏi lượng thơng tin lớn, liệu lớn… lưu liệu thiết bị sử dụng, số loại yêu cầu cập nhật realtime (theo thời gian thực) để đảm bảo đắn thơng tin (chứng khốn, tiền tệ ), số phần mềm đòi hỏi xử lý nhanh mạnh, mà thiết bị lại thực cấu hình khơng đủ Thơng thường, để sử dụng dịch vụ người dùng cần dùng trình duyệt, truy cập website thực Nhưng người dùng sử dụng giao diện mà nhà cung cấp thiết kết sẵn nhiên chúng không đáp ứng mong muốn người dùng Để giải vấn đề cần xây dựng ứng dụng có tính dịch vụ giao diện thân thiện Vì cần phải sử dụng dịch vụ riêng biệt để tương tác với hệ thống cung cấp dịch vụ nói Một hệ thống gọi API 1.2 Phạm vi đồ án 1.3 Mục tiêu, cần thiết đề tài, lại chọn đề tài này? Chương Tìm hiểu JDK 8, Gradle, Spring Boot, Spring data mongodb 2.1 JDK gì? Java Development Kit (JDK) ba gói cơng nghệ cốt lõi sử dụng lập trình Java, với JVM (Máy ảo Java - Java Virtual Machine) JRE (Java Runtime Environment - Môi trường Java Runtime) Việc phân biệt ba công nghệ này, hiểu cách chúng kết nối với quan trọng JVM thành phần Java tảng để chạy chương trình JRE phần on-disk Java, phần tạo JVM JDK cho phép developer tạo chương trình Java, chương trình JVM JRE xử lý chạy Các developer sử dụng Java thường dễ nhầm lẫn Java Development Kit với Java Runtime Environment Để phân biệt, ta cần nhớ JDK gói công cụ phát triển phần mềm dựa Java, JRE gói cơng cụ sử dụng để chạy Java code JRE sử dụng thành phần độc lập để chạy chương trình Java, dù vậy, JRE phần JDK JDK địi hỏi cơng cụ JRE chạy chương trình Java phần việc phát triển chúng Chia sẻ JDK theo cách sau: Định nghĩa chuyên ngành: JDK hệ tiêu chuẩn việc triển khai tảng Java, bao gồm trình thông dịch dịch thư viện lớp Định nghĩa thông thường: JDK gói phần mềm bạn tải xuống để tạo ứng dụng dựa Java 2.2 IDK Java Development Kit (JDK – Bộ công cụ cho người phát triển ứng dụng ngơn ngữ lập trình Java) tập hợp công cụ phần mềm phát triển Sun Microsystems dành cho nhà phát triển phần mềm, dùng để viết applet Java hay ứng dụng Java – công cụ phát hành miễn phí gồm có trình biên dịch, trình thơng dịch, trình giúp sửa lỗi (debugger, trình chạy applet tài liệu nghiên cứu) Kể từ ngôn ngữ Java đời, JDK phát triển phần mềm thông dụng cho Java Ngày 17 tháng 11 năm 2006, hãng Sun tuyên bố JDK phát hành giấy phép GNU General Public License (GPL), JDK trở thành phần mềm tự Việc thực phần lớn ngày tháng năm 2007 mã nguồn đóng góp cho OpenJDK Java Development Kit bao gồm công cụ cần thiết trình phát triển ứng dụng Java + JRE Các cơng cụ là: javac.exe, java.exe, applet viewer,… vai trị cơng cụ sau: Javac.exe – giúp biên dịch file nguồn viết ngôn ngữ Java (*.java) thành mã máy (byte code) Java.exe – gọi tới JRE, tải nạp file mã máy biên dịch gọi tới method main để thực thi mã Applet Viewer – để chạy ứng dụng viết applet Như JDK cung cấp tới bạn cơng cụ trọn gói để phát triển ứng dụng Java bao gồm: phát triển (kết file java) –> biên dịch (kết file class) –> thực thi ứng dụng Yêu cầu phần mềm / Cấu hình: Windows XP/Vista/7/8 Tất điều tạo nên sức lôi vô lớn cộng đồng developer khắp giới, công ty dần chuyển sang dùng Spring Boot cho dự án Lựa chọn học Spring Boot thời điểm định đắn thị trường việc làm nhiều Khơng vậy, có nhiều công ty dần chuyển từ Spring qua Spring Boot cho dự án cũ dự án dùng hẳn Spring Boot Khởi tạo project spring boot Để khởi tạo project Spring Boot nhanh chóng bạn truy cập vào trang Spring Initializr lựa chọn thơng số cấu hình cho dự án, dependency cần thiết khởi tạo project maven với dependency sau: Lưu ý: Nếu dùng Spring Initializr, bạn thêm dependency cách chọn “Add dependencies” tab “Dependencies” Cấu trúc project Spring Boot Trong project Spring Boot thường có layer chính: Domain: chứa ánh xạ database – entity Repository: định nghĩa DAO (Data access object) class dùng để làm việc với database Service: chứa business logic class Controller: nhận request từ client Mapper: dùng để convert qua lại entity dto (khơng có được) Exception Hanlder: xử lý exception xảy trình thực thi yêu cầu client Dự án sau hoàn thành có cấu trúc Bây giờ, bắt đầu phần Domain layer Đối với hầu hết dự án, thường bắt đầu với domain layer trước, sau phân tích thiết kế sở liệu xong, đến bước định nghĩa entity ánh xạ table tương ứng database Trong viết này, dùng H2 database, bạn linh hoạt sử dụng database khác SQL, MySQL, Mariadb tùy ý Vì sử dụng JPA JPA provider bên Hibernate nên dễ dàng chuyển đổi qua lại database mà code không bị ảnh hưởng Trong khuôn khổ viết này, định nghĩa User entity làm sau: Các entity class phải thích với @Entity annotation, ngồi annotation khác lombok sử dụng để giảm thiểu việc triển khai method getter, setter, constructor, … Repository Layer Đây layer định nghĩa DAO class dùng để thao tác với database Tuy nhiên, phần này, không cần phải triển khai method findById (), findAll, save (), delete(), update() chúng triển khai thơng qua tầng abstraction đặt JPA implementation Để sử dụng tính này, cần khai báo Repository class thừa kế từ CrudRepository Service Layer Như đề cập trước đó, Service layer nơi chứa business dự án, cầu nối Controller layer Repository layer Với ứng dụng CRUD cần method dùng cho việc thêm, sửa, xóa, cập nhật tìm kiếm Trước tiên, cần định nghĩa UserService Interface UserServiceImpl class dùng để triển khai method định nghĩa UserService Các bạn thấy cách làm có “kỳ cục” khơng? Tại không tạo UserService class triển khai code đó? Điều hồn tồn được, nhiên bạn cần phải biết cách làm giúp tăng tính mở rộng code Giả sử, có UserService UserServiceImpl hoạt động ổn Về sau này, cần chỉnh sửa số tính UserServiceImpl để tăng performance adapt cho phù hợp với business Nhưng UserServiceImpl phát triển qua thời gian dài, nên việc sửa code khó khăn, lúc đó, tạo UserServiceImplNew implement UserService triển khai code tách bạch khỏi UserServiceImpl Sau đó, cần thay đổi việc sử dụng UserServiceImplNew thay UserServiceImpl mà khơng cần chỉnh sửa code chỗ khác

Ngày đăng: 04/04/2023, 10:02

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan