004-Healthcheck, PreAuthorize và Swagger trong dự án Java Springboot API
HTML-код
- Опубликовано: 4 ноя 2024
- Giới thiệu với các bạn Khóa học Udemy: viết ứng dụng web bán hàng với Java Spring 6 + Angular 17:
Link khóa học, hướng dẫn dùng coupon ở đây bạn nhé:
docs.google.co...
Trong dự án Java Spring Boot API, việc sử dụng các công cụ như Healthcheck, @PreAuthorize, và Swagger có vai trò quan trọng, giúp tăng cường bảo mật, quản lý và tài liệu hóa API một cách hiệu quả.
Healthcheck
Chức Năng: Healthcheck trong Spring Boot thường được sử dụng để kiểm tra tình trạng "sức khỏe" của ứng dụng. Nó cung cấp thông tin cơ bản về trạng thái hoạt động của các thành phần như cơ sở dữ liệu, hệ thống file, và các dịch vụ ngoại vi khác mà ứng dụng phụ thuộc vào.
Cách Thực Hiện: Spring Boot Actuator là một phần mở rộng của Spring Boot giúp dễ dàng tạo các điểm cuối (endpoints) cho mục đích Healthcheck. Chỉ cần thêm phụ thuộc spring-boot-starter-actuator và cấu hình các điểm cuối thông qua application.properties hoặc application.yml.
@PreAuthorize
Chức Năng: @PreAuthorize là một annotation được sử dụng trong Spring Security để kiểm soát quyền truy cập vào các phương thức cụ thể trong API. Nó cho phép bạn định nghĩa các quy tắc bảo mật dựa trên biểu thức, chẳng hạn như kiểm tra vai trò hoặc quyền của người dùng.
Cách Thực Hiện: Để sử dụng @PreAuthorize, bạn cần kích hoạt hỗ trợ cho các annotation bảo mật ở mức phương thức bằng cách sử dụng @EnableGlobalMethodSecurity(prePostEnabled = true) trong cấu hình bảo mật. Sau đó, bạn có thể áp dụng @PreAuthorize trực tiếp lên các phương thức trong controller của bạn với các biểu thức phù hợp, như @PreAuthorize("hasRole('ROLE_ADMIN')").
Swagger (hiện nay thường được gọi là OpenAPI)
Chức Năng: Swagger (OpenAPI) được sử dụng để tạo tài liệu hóa cho API một cách tự động, giúp việc kiểm thử và giao tiếp giữa các nhà phát triển trở nên dễ dàng hơn.
Cách Thực Hiện: Bạn có thể tích hợp Swagger vào dự án Spring Boot bằng cách thêm phụ thuộc springfox-swagger2 và springfox-swagger-ui. Sau đó, tạo một cấu hình Swagger để chỉ định các thông tin cần thiết như tiêu đề API, phiên bản, các điều khoản sử dụng, v.v. Swagger UI sẽ tự động sinh ra và có thể truy cập qua trình duyệt, cung cấp một giao diện đồ họa để tương tác với API.
Kết hợp ba công cụ này vào trong một dự án Spring Boot API sẽ nâng cao khả năng quản lý, bảo mật và tương tác với API, giúp nó trở nên mạnh mẽ và dễ sử dụng hơn.
làm luôn khoá học liên quan đến K8s luôn đi anh
học khóa này bắt buộc nền tảng có gi vậy anh . Em biết mới spring boot, angular1 thôi sợ không theo nổi
Có nhóm zalo , video bổ xung liên tục, code share từng bài qua gg driver bạn nhé
Mk bt mỗi spring boot nè, khóa này cơ bản thôi, ko bt thì cứ chatgpt là ra
@@nguyenthang7805 bạn ơi mình cũng mỗi spring boot.
Bạn cho mình hỏi bạn học như vậy có hiểu phần frontend hông. Mình xem không hiểu mấy, đến mấy video sau cứ đến frontend là nản ghia :(((
@@phuongnamtran3623 mk cũng ko bt angular nên cứ gõ theo, 1 tgian cũng nản nên bỏ FE:)) làm mỗi BE, pvan họ bảo mk vẽ lại cái ERD r trình bày lại các chức năng, ko ổn lắm mà vẫn đỗ intern:)) tiếc là mk có việc khác nên reject.
Mk khuyên b nên học basic angular trc thì lm theo sẽ dễ thở hơn nhiều á. mà b dùng framework nào chả dc, nó là giao diện thôi
Thầy có thể hướng dẫn deploy dự án này được không ạ
Trong list này có hướng dẫn deploy lên Docker nè:
ruclips.net/p/PLWBrqglnjNl1Tuxc2KdLO5kte3hSm8voV
Em có ý tưởng nào khác hoặc có server cần chuột bạch ko gửi anh deploy thử(chat zalo 0964896239 nhé)
@@NguyenDucHoang chương trình coupon bao lâu vậy anh :(
@@monsieurpon1051 vẫn còn hướng dẫn ở phần mô tả đó em
😻
Thank you
lamf nhu video ma vẫn cứ báo 403 lạ thật a ơi
fix được chưa vậy bạn
@@duongvansinl7797 chua b oi @@
@@Chisdungnguyen đến phần swagger mình debugg thấy còn nhiều path vẫn chưa được bypass nên ko truy cập vào được
Bổ sung ở phần isByPassToken
// Swagger
Pair.of("/api-docs","GET"),
Pair.of("/api-docs/**","GET"),
Pair.of("/swagger-resources","GET"),
Pair.of("/swagger-resources/**","GET"),
Pair.of("/configuration/ui","GET"),
Pair.of("/configuration/security","GET"),
Pair.of("/swagger-ui/**","GET"),
Pair.of("/swagger-ui.html", "GET"),
Pair.of("/swagger-ui/index.html", "GET"),
Pair.of("/swagger-ui/swagger-ui-bundle.js", "GET"),
Pair.of("/swagger-ui/swagger-ui-standalone-preset.js", "GET"),
Pair.of("/swagger-ui/swagger-initializer.js", "GET"),
Pair.of("/swagger-ui/favicon-32x32.png", "GET"),
Pair.of("/swagger-ui/swagger-ui.css", "GET"),
Pair.of("/api-docs/swagger-config", "GET")