Thanks for sharing. Có code demo thì sẽ tuyệt vời hơi. Với lại nêu bạn giữ được từ thuật ngữ bằng English sẽ tốt hơn là translate sang tiếng việt, theo ý kiến cá nhân của mình
Tất cả mọi thứ đều ổn cho đến khi undefined xuất hiện
Mình cứ ngỡ là mình hiểu sai, cho đến khi mình test 1 câu console.log("hello") thì thấy rằng sau khi print-> hello thì nó sẽ dính theo 1 cái undefined
Mình ngay lật tức nghĩ đến "tính năng của console" và search thì kết quả ntn: https://sobitprasad.hashnode.dev/why-do-browser-consoles-return-undefined-explained
đại ý là khi ta hoàn thành 1 nhóm câu lênh(bằng việc ấn enter) thì trình duyệt sẽ in ra kết quả của nhóm câu lệnh đó.( console.log("hello") ko trả về gì cả thì mặc định là underfined, ai code API mà lâu lâu quên return như mình sẽ hiểu)
ok, vậy tóm lại underfined sau "Third" là do console của trình duyệt,
nếu ta test bằng node thì sẽ ko bị như vậy
Bonus: nếu bạn thử 2+2 trên console thì nó sẽ log kết quả luôn thay vì undefined, ok vậy nên mình thêm 2+2 vô cuối để nó in ra số thay vì undefined
Hi vọng những bạn đọc bài viết này sẽ hiểu vì sao undefined
@wiliamfeng Cái này liên quan đến việc tổ chức code thôi cũng như assign task, nếu mà có code liên quan nhiều như thế, nên checkout ra 1 nhánh common, để xử lý phần code chung trước. Sau đó ưu tiên merge vào trước để cả team dùng. Với cả mình thấy việc rebase k mất nhiều thời gian thế đâu
@simple1805 Thank bạn, nhưng ví dụ mình có nhiều nhánh con, giả dụ thêm: dev-3, dev-4, dev-5, vv.... checkout nối tiếp nhau (cần code liên quan từ nhánh trước)
Như thế mình phải rebase hơi nhiều à bạn
Nếu dev2 không cần code của dev1, bạn nên checkout dev2 từ dev và merge vào dev bất cứ lúc nào.
Nếu cần thiết phải checkout dev2 từ dev1, vẫn merge dev2 vào dev thay vì dev1. Thứ tự sẽ là merge dev1 trước ->Checkout về nhánh dev ->pull code dev về->Checkout về nhánh dev2-> rebase dev ở nhánh dev 2 -> push lại dev2-> merge dev2 vào dev
2/ Tickets, session keys and Service Name (SPN) trong Kerberos:
--- Trích:
"
6.2. Cách thức hoạt động của Kerberos
Xác thực Client với KDC:
Client gửi yêu cầu xác thực (Authentication Service Request - AS-REQ) đến KDC, bao gồm tên người dùng và tên dịch vụ mà người dùng muốn truy cập.
"
--- Hết trích
AS-REQ không chứa tên dịch vụ (SPN). Giai đoạn này chỉ là xác thực người dùng nên AS-REQ chỉ có tên định danh người dùng Principal Name (Username, domainName, ...) và có thể có thêm thông tin xác thực ban đầu (pre-authentication).
Thông tin thêm:
Nếu user có thuộc tính pre-authentication bị disable, user có thể bị giả mạo để yêu cầu TGT. Đây là cơ sở để tấn công kiểu ASRoasting.
Tên dịch vụ được yêu cầu trong TGS-REQ message, không phải AS-REQ.
--- Trích:
" KDC kiểm tra thông tin xác thực của người dùng dựa trên cơ sở dữ liệu bên trong.........TGT được mã hóa bằng khóa bí mật chung giữa KDC và Client."
--Hết trích:
TGT được mã hoá bằng khoá bí mật của KDC (cụ thể hơn là krbtgt user), khoá này không được chia sẻ với bất cứ clients nào cũng như server (Tuy vậy khoá này có thể bị trích xuất bởi user có đặc quyền đặc biệt, những users này thường là member của Domain Admins hay Enterprise Admins group, ). Do vậy ở đây không có khoá bí mật CHUNG giữa KDC và clients.
-- Trích:
"
Yêu cầu Ticket Granting Service (TGS) từ KDC:
........ Service Ticket được mã hóa bằng khóa bí mật chung giữa KDC và Service.
Xác thực Client với Service
Client giải mã Service Ticket bằng khóa bí mật của nó và gửi yêu cầu dịch vụ (Service Request - S-REQ) đến Service, kèm theo Service Ticket. ...
"
--- Hết trích
Client không thể giải mã Service Ticket vì Service ticket được mã hoá bằng khoá của Service. Client chỉ giải mã một phần bản tin TGS_REP để lấy khoá phiên (session key) giữa client và service
THẢO LUẬN
Thanks for sharing. Có code demo thì sẽ tuyệt vời hơi. Với lại nêu bạn giữ được từ thuật ngữ bằng English sẽ tốt hơn là translate sang tiếng việt, theo ý kiến cá nhân của mình
👍️
👍️
👍️
Hơi tò mò về phần tạo nội dung bài viết mong tác giả có phần sau
👍️
👎️
hix. mình không xem được ảnh
@angular-builders/custom-webpacklà để extend cấu hình webpack của Angular nhé b,mình vẫn dùng module chính thức, nhưng "extend" nó và thêm phần cấu hình cho ModuleFederation vào
👍️
e chào bác, em thấy bác có cài thêm @angular-builders/custom-webpack, mục đích để làm gì bác nhỉ? tại sao lại không dùng module chính thức vậy bác
Tất cả mọi thứ đều ổn cho đến khi undefined xuất hiện
Mình cứ ngỡ là mình hiểu sai, cho đến khi mình test 1 câu
Mình ngay lật tức nghĩ đến "tính năng của console" và search thì kết quả ntn: https://sobitprasad.hashnode.dev/why-do-browser-consoles-return-undefined-explained
đại ý là khi ta hoàn thành 1 nhóm câu lênh(bằng việc ấn enter) thì trình duyệt sẽ in ra kết quả của nhóm câu lệnh đó.( console.log("hello") ko trả về gì cả thì mặc định là underfined, ai code API mà lâu lâu quên return như mình sẽ hiểu)
ok, vậy tóm lại underfined sau "Third" là do console của trình duyệt,
nếu ta test bằng node thì sẽ ko bị như vậy
Bonus: nếu bạn thử 2+2 trên console thì nó sẽ log kết quả luôn thay vì undefined, ok vậy nên mình thêm 2+2 vô cuối để nó in ra số thay vì 
console.log("hello")thì thấy rằng sau khi print-> hello thì nó sẽ dính theo 1 cái undefinedundefinedHi vọng những bạn đọc bài viết này sẽ hiểu vì sao undefined
@wiliamfeng Cái này liên quan đến việc tổ chức code thôi cũng như assign task, nếu mà có code liên quan nhiều như thế, nên checkout ra 1 nhánh common, để xử lý phần code chung trước. Sau đó ưu tiên merge vào trước để cả team dùng. Với cả mình thấy việc rebase k mất nhiều thời gian thế đâu
Chúng mình sẽ lên bài nói những điều hay ho ít người biết về Java trong thời gian sớm nhất nha 🤩🤩🤩
@simple1805 Thank bạn, nhưng ví dụ mình có nhiều nhánh con, giả dụ thêm: dev-3, dev-4, dev-5, vv.... checkout nối tiếp nhau (cần code liên quan từ nhánh trước) Như thế mình phải rebase hơi nhiều à bạn
@wiliamfeng
Đóng góp với bác chủ thớt một chút về Kerberos Authentication (Mục 6):
1/ SSO và Delegation:
--- Trích: "6. 1. ...Mặc dù Kerberos không cung cấp các tính năng SSO hay ủy quyền như OAuth2 và SAML,...." --- Hết trích
2/ Tickets, session keys and Service Name (SPN) trong Kerberos:
--- Trích: " 6.2. Cách thức hoạt động của Kerberos
Xác thực Client với KDC: Client gửi yêu cầu xác thực (Authentication Service Request - AS-REQ) đến KDC, bao gồm tên người dùng và tên dịch vụ mà người dùng muốn truy cập. " --- Hết trích
AS-REQ không chứa tên dịch vụ (SPN). Giai đoạn này chỉ là xác thực người dùng nên AS-REQ chỉ có tên định danh người dùng Principal Name (Username, domainName, ...) và có thể có thêm thông tin xác thực ban đầu (pre-authentication).
Thông tin thêm:
Nguồn tham khảo: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/b4af186e-b2ff-43f9-b18e-eedb366abf13
--- Trích: " KDC kiểm tra thông tin xác thực của người dùng dựa trên cơ sở dữ liệu bên trong.........TGT được mã hóa bằng khóa bí mật chung giữa KDC và Client." --Hết trích:
TGT được mã hoá bằng khoá bí mật của KDC (cụ thể hơn là krbtgt user), khoá này không được chia sẻ với bất cứ clients nào cũng như server (Tuy vậy khoá này có thể bị trích xuất bởi user có đặc quyền đặc biệt, những users này thường là member của Domain Admins hay Enterprise Admins group, ). Do vậy ở đây không có khoá bí mật CHUNG giữa KDC và clients.
-- Trích: " Yêu cầu Ticket Granting Service (TGS) từ KDC: ........ Service Ticket được mã hóa bằng khóa bí mật chung giữa KDC và Service.
Xác thực Client với Service
Client giải mã Service Ticket bằng khóa bí mật của nó và gửi yêu cầu dịch vụ (Service Request - S-REQ) đến Service, kèm theo Service Ticket. ... " --- Hết trích
Client không thể giải mã Service Ticket vì Service ticket được mã hoá bằng khoá của Service. Client chỉ giải mã một phần bản tin TGS_REP để lấy khoá phiên (session key) giữa client và service
Cảm ơn chủ thớt đã chia sẻ bài viết!
@sangnuce mình có file views/pages/error.php nhưng vẫn bị ERR_TOO_MANY_REDIRECTS
viết về java nhiều nữa ad ơi.