Tƣơng tự hệ thống xe tại cổng chính, tại đây ngƣời gửi xe thực hiện quẹt thẻ tại vị trí quẹt thẻ, nếu đèn báo hiệu thành công nhân viên bảo vệ sẽ đống ý cho phép gửi xe, ngƣợc lại họ không thể gửi xe tại bãi. Yêu cầu gửi gửi tới CTTĐT bảo gồm thông tin thẻ của ngƣời gửi xe, kết quả trả về là trạng thái có/không và đƣợc hiện thị thành đèn tín hiệu.
Url: dbnCarPark/checkCarNo?person_id_no=99D12345 Parameter type: String
Example para: person_id_no =01236587746 Type: GET
Result: Json Type Content {
result: "ok", msg: "success", record: {
40
car_type:"motor", sort:"normal" }
}
3.1.4 Quản lý đào tạo
Đào tạo là vấn đề quan trọng hàng đầu trong các công ty, đặc biệt là các công ty tập đoàn lớn. Nhân viên là tài sản của doanh nghiệp, chú trọng đến nhân viên và đào tạo chính là đảm bảo cho doanh nghiệp một tƣơng lai vững chắc. Ở những công ty vừa và nhỏ việc đào tạo thƣờng bị xem nhẹ thậm chí là không đào tạo, tuyển dụng không qua đào tạo. Họ chủ yếu tuyển dụng nhân viên có kinh nghiệm, có thể làm đƣợc việc ngay, vô tình điều đó đã tạo ra một văn hóa không tốt trong tuyển dụng và văn hóa nhân viên sau này. Tại những tập đoàn lớn, họ không chỉ đào tạo cho mình mà còn xây dựng một thế hệ cho cả đất nƣớc họ kinh doanh, những cá nhân hôm nay còn làm việc cho công ty, ngày mai họ chuyển đổi công ty, nghề nghiệp nhƣng những con ngƣời ấy dù làm gì đi nữa cách tiến hành công việc luôn ở một tầm cao nhất định so với khu vực. Đối tƣợng đào tạo: nhân viên mới, nhân viên lâu năm, đối tƣợng đƣợc thăng chức. Loại hình đào tạo: đào tạo định kỳ, đào tạo kỹ năng mềm, đào tạo ngoại ngữ, đào tạo chuyên môn, đào tạo trƣớc phỏng vấn. Ngƣời sử dụng: toàn bộ nhân viên công ty, ở đây nhân viên công ty đóng vai trò nhƣ ngƣời dùng cuối, họ sử dụng các chứng năng đăng ký khóa học, xem kết quả khóa học, điểm, thƣởng, phạt, xem tổng quan các khóa học của công ty. Nhóm ngƣời dùng thứ hai là nhóm nhân viên phòng đào tạo, họ tạo ra các khóa học trên hệ thống, thông báo tới các phòng ban và nhân viên, phê duyệt nhân viên vào khóa học, xem tổng kết khóa học, tính điểm trung bình, tỷ lệ đạt yêu cầu, không đạt yêu cầu. Ngoài ra họ còn có thể đƣa dữ liệu cũ từ hệ thống lên hệ thống. Giáo viên, ngƣời trực tiếp giảng dạy, tƣơng tác với hệ thống thông qua chức năng điểm danh, cho điểm từng ngày, điểm giữa kỳ, điểm cuối kỳ. Ngƣời sử dụng là khách (cụ thể là nhà thầu vào làm việc trong công ty). Khi nhà thầu vào làm việc, ngoài việc phải đăng ký dƣới dạng khách (loại nhà thầu), nhân viên còn phải đăng ký cho họ tham dự các khóa học để đƣợc cấp chứng chỉ theo một vài quy chuẩn của công ty: chứng chỉ an toàn lao động, chứng chỉ tuân thủ quy định, cam kết không tiết lộ bí mật thông tin của công ty. Ngoài ra còn các khóa đào tạo cho nhân viên mới, nhân viên tuyển định kỳ. Các đợt đào tạo thăng tiến hàng năm.
41
công ty yêu cầu tổ chức thi năng lực tiếng anh và năng lực tiếng nhật, nhân viên phụ trách cần xuất báo cáo danh sách những ngƣời chƣa đạt yêu cầu, thời gian hết hạn cần phải tham dự kỳ thi đợt này theo phòng ban. Cuối khóa học, giáo viên cần biết kết quả của cả lớp, phòng ban theo dõi kết quả của nhân viên mình. Kháo sát khóa học: sau khi kết thúc khóa học, nhân viên phòng đào tạo có thể tạo một cuộc khảo sát các câu hỏi, loại câu hỏi, và tổng hợp kết quả có bao nhiêu ngƣời chọn, mô tả chi tiết lý do và mục đích. Các chức năng: tạo khóa học, đăng ký khóa học, phê duyệt tham gia khóa học, điểm danh theo từng buổi, tính điểm khóa học, khảo sát khóa học, nhập dữ liệu cũ lên hệ thống, quản lý điểm thi năn lực tiếng anh và năng lực tiếng nhật.
3.2 Tích hợp đăng nhập với Active Dricectory
Công nghệ Active Directory (AD) đƣợc biết tới là sản phẩm độc quyền của Microsoft. Nó là một chức năng sẵn có trong Windows Server để quản lý xác thực và phân quyền tài khoản trong hệ thống, ta có thể hiểu đơn giản nó là một dịch vụ thƣ mục. AD hỗ trợ tối đ khả năng quản trị phân quyền về ngƣời dùng cũng nhƣ các nguồn tài nguyên sử dụng chung trong một hệ thống mạng nội bộ/ trong một vùng xác lập. Active Directory đƣợc thiết kế và sử dụng theo chuận kiến trúc máy chủ- khách. Hiện tại, nó đã phát triển dùng cho việc lƣu dữ liệu của các domain nhƣ các tài khoản đăng nhập, máy tính, nhóm, và còn hỗ trợ cung cấp thêm những dịch vụ (directory services) tìm kiếm, đảm bảo chặt chẽ kiểm soát truy cập, ủy quyền. Ngoài ra nó còn hỗ trợ chức năng single sign-on, cho phép các tài khoản chỉ cần thực hiện xác thực một lần khi đăng nhập vào hệ thống để thực hiện truy cập tất cả những tài nguyên và dịch vụ chia sẻ của hệ thống.
Hệ thống sử dụng Spring Framework để tích hợp việc xác thực đăng nhập với AD, dƣới đây mô tả việc tích hợp AD vào quá trình xác thực của hệ thống. Thƣ việc
của Spring hỗ trợ việc xác thực bởi AD bao gồm nhóm các thƣ viện sau: spring-
ldap-core-1.3.1.RELEASE.jar, spring-security-ldap-3.1.0.RELEASE.jar. Đầu tiên cần thực hiện cấu hình trong vms-security.xml nhƣ sau<!-- LDAP server details -->
<security:authentication-manager> <security:authentication-provider
ref="ldapActiveDirectoryAuthProvider" /> </security:authentication-manager>
<!-- add in your permissions -->
<beans:bean id="customDetailsMapper"
class="vn.vms.services.CustomUserDetailsMapper"/> <beans:bean id="ldapActiveDirectoryAuthProvider"
class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthen ticationProvider">
42
<beans:constructor-arg value="vms.asia.vn" />
<beans:constructor-arg value="ldap://10.79.113.8:966" /> <beans:property name="userDetailsContextMapper"
ref="customDetailsMapper"/>
<beans:property name="useAuthenticationRequestCredentials" value="true" /> <beans:property name="convertSubErrorCodesToExceptions" value="true"
/></beans:bean>
Cấu hình thông tin LDAP đƣợc sử dụng trong tệp tin xml, trong Spring các đối tƣợng đƣợc khai báo dƣới dạng các bean, chúng sẽ đƣợc khởi tạo và gọi tới khi cần thiết. Trong trƣờng hợp này bean customDetailsMapper đƣợc khai báo và thực thi lại để tùy biến cho trƣờng hợp các tài khoản cần xác thực của CTTĐT nhƣ sau:
public class CustomUserDetailsMapper extends LdapUserDetailsMapper { // @Override
public UserDetails mapUserFromContext(DirContextOperations para_ctx, String para_username,
Collection<? extends GrantedAuthority> para_authorities) { Set<SecurityContextAuthority> rolse_list_of_account = EnumSet.noneOf(SecurityContextAuthority.class);
//Tuy bien kiem tai khoan if (para_ctx!=null) {
//Kiem tra tai khoan trong he thong
IAdminUserService service = new AdminUserService();
if (service.checkExistsAdminUser(para_username)) {// tai khoan admin rolse_list_of_account.add(SecurityContextAuthority.ROLE_ADMIN); } rolse_list_of_account.add(SecurityContextAuthority.ROLE_USER); } rolse_list_of_account.add(SecurityContextAuthority.ROLE_ADMIN); rolse_list_of_account.add(SecurityContextAuthority.ROLE_USER); UserDetails user = super.mapUserFromContext(para_ctx, para_username, rolse_list_of_account);
return user; }
Tài khoản para_username đƣợc kiểm tra xem có tồn tại trong hệ thống hay không, sau đó đƣợc thiết lập quyền và xác thực cụ thể, thông tin đƣợc liên kết với tài khoản của LDAP.
43