基于SSM的求职招聘系统设计

2024-12-31 00:00:00杨晟
科技创新与应用 2024年21期
关键词:身份认证

作者简介:杨晟(1988-),男,硕士,助教。研究方向为计算机应用技术。

DOI:10.19981/j.CN23-1581/G3.2024.21.026

摘" 要:针对企业招聘和毕业生求职的需要,设计一款在线求职管理系统。该系统基于SSM技术进行开发,设计用户信息模块、招聘信息模块、简历信息模块、院校信息模块、招聘公告模块和岗位信息模块等功能。用人单位可以使用系统发布招聘公告信息,求职者可以使用系统进行招聘信息的筛选并投递简历,管理员可以进行系统信息的维护。系统能够打通用人单位和求职者时间和空间之间的壁垒,让招聘和求职需求在平台中进行无缝对接,节约用人单位和求职者的时间成本和人力成本。同时,系统加入安全管理进行用户身份的验证和权限的管控,防止越权操作;数据库访问使用MyBatis作为对象关系映射(ORM)工具,采用参数化查询及最小化数据库操作权限防止SQL注入,确保系统的安全性。

关键词:求职招聘;SSM;ORM;身份认证;权限管控

中图分类号:TP311" " " 文献标志码:A" " " " " 文章编号:2095-2945(2024)21-0111-04

Abstract: An online job search management system has been designed to meet the needs of enterprise recruitment and graduate job seeking. The system is developed based on SSM technology and includes functions such as user information module, recruitment information module, resume information module, college information module, recruitment announcement module, and job information module. Employers can use the system to publish recruitment announcements, job seekers can use the system to filter recruitment information and submit resumes, and administrators can maintain system information. The system is able to break down the barriers between the time and space of employers and job seekers, allowing for seamless integration of recruitment and job seeking needs on the platform, saving employers and job seekers time and labor costs. At the same time, the system has added security management for user identity verification and permission control to prevent unauthorized operations; And use MyBatis as the ORM tool, using parameterized queries and minimizing database operation permissions to prevent SQL injection and ensure system security.

Keywords: job search and recruitment; SSM; ORM; identity authentication; authority control

随着大学毕业人数的日益增加以及企业对人才的需求日益增长[1],如何建立起毕业生和用人单位之间的沟通桥梁,让人力资源和企业需求进行有效对接成为了社会普遍关注的热点问题[2]。传统的求职招聘需要用人单位申请并参加定期举办的招聘会。用人单位在急需用人的情况下也需要等待招聘会举办时才能进行招聘[3];而且由于信息传播及沟通不便,无法吸引足够多求职者的注意,导致招聘所面向的对象有限,招聘效率往往不高。而求职者为了获得适合自己的岗位信息,往往需要在多个招聘会地点来回奔波,大大增加了求职成本[4]。而且在反复的舟车劳顿之下,往往还会影响求职者后续面试的临场表现。因此实现求职者和用人单位需求的高效整合,让求职者能精准地找到心仪的岗位,同时让用人单位获得高素质的人才,已成为求职者和用人单位的迫切需求[5-6]。文章选用SSM(Spring+Spring MVC+MyBatis)为技术基础设计了一个在线求职招聘管理平台。求职者通过该平台可以查询心仪的岗位并进行简历的投递;用人单位可以使用平台进行招聘公告的发布,便捷地获得人力资源信息;系统管理员可以对用户、院校、专业、岗位等信息进行管理。通过信息化管理降低求职招聘的时间和人力成本[7-8]。

1" 需求分析

1.1" 可行性分析

就业一直是社会普遍关注的问题,城市化的发展使得大量的劳动人口涌入城市,就业大军日益庞大,对就业岗位的需求也日益增加。同时人才的招聘是企业日常管理的重要一环,而高质量人才的获取也是影响企业竞争力的决定性因素。因此求职招聘已成为经济社会运转中的重要一环。相比于传统的线下招聘方式需要申请并等待特定的时间才能举办的限制,在线求职招聘系统可以打破时间和空间的限制,让用人单位根据生产经营需要随时发布招聘需求,节约了企业的时间成本和人力成本;在线求职招聘系统以网络为媒介,跨越地理空间的局限,使得信息发布和交流更为畅通,吸引城市各个角落的求职者甚至是不同城市的求职者进行参与应聘。能够扩大企业进行人才招聘的基本面,获得更为丰富的人力资源信息。同时对于求职者来说,在线招聘系统能为其提供全面广阔的招聘信息,还能让其通过信息检索在一众招聘信息中快速找到对应岗位,求职者在不需要去招聘会现场的情况下即可轻松地进行简历投递,等待面试邀约。在线招聘平台能够满足求职者和用人单位的双向需求,使得招聘流程更加便捷高效,解决了传统企业招聘和人才应聘过程流程繁琐、多地奔波、沟通不畅的问题。因而设计并实现一款操作简单、使用流畅的在线求职招聘系统成了人们的普遍期望。

1.2" 功能需求分析

为了满足用人单位发布招聘公告、获取人力资源以及求职者寻求工作岗位的需要,系统总体功能包含用户信息模块、院校信息模块、专业信息模块、岗位信息模块、招聘公告模块、候选人信息模块和简历信息模块7个部分的内容。其中,管理员主要负责用户信息模块、院校信息模块、专业信息模块和岗位信息模块的操作和管理;用人单位主要负责招聘公告模块、候选人信息模块的操作和管理;求职者主要包含了简历信息模块的操作和管理。

1.3" 安全需求分析

系统首先应该提供有效的身份认证机制,并将用户的权限控制在最小范围内,确保只有经过授权用户才能访问特定的数据和功能。为了控制用户的访问权限,首先需要枚举出系统中涉及的所有权限信息和角色信息,然后为不同的角色分配不同的权限,并为不同的用户分配特定的角色,建立起由用户到角色再到权限的关联关系,最终实现对不同用户拥有不同操作权限的控制。当用户具有某项权限时,系统才允许其执行对应的操作,反之则禁止其操作,并强制其退出系统。其次是对敏感数据的保护,系统应当使用适当的加密机制来保护传输中的数据以及存储在系统中的敏感数据,防止数据被非法访问。

2" 系统设计

2.1" 系统功能设计

2.1.1" 用户信息管理模块设计

为了实现基于角色的访问控制(Role-Base Access Control,RBAC),系统首先设计了3种不同的角色编码,分别是用人单位(EMPLOYER)、求职者(EMPLOYEE)和管理员(ADMIN),通过将不同的角色编码赋予不同的用户来标识用户身份。其中,管理员账户由系统拥有者直接在数据库创建,并在创建完成后为其分配管理员身份;用人单位和求职者均需先在系统中进行注册,求职者在注册时需要进行实名认证并继续完善自己的基本信息,包括真实姓名、出生日期、电话、邮箱、住址和求职状态等。用人单位在注册时需要进行法人认证并完善自己的机构信息,包括机构名称、统一社会信用代码、营业执照和法人代表等。管理员可对用人单位和求职者等用户信息进行维护,包括对用人单位和求职者信息的查询、冻结和封禁等功能。

2.1.2" 院校信息管理模块设计

管理员可以在院校信息模块中对院校信息进行管理,包括对院校信息的添加、修改、查询和删除等操作。院校信息添加成功后,求职者在填写自己的教育经历时即可选择对应的院校信息。在求职者简历公开的情况下,用人单位也可以根据院校信息筛选求职者的简历。

2.1.3" 专业信息管理模块设计

管理员可以在专业信息模块中对专业信息进行管理,包括对专业信息的添加、修改、查询和删除等操作。专业信息添加成功后,求职者在填写自己的教育经历时即可选择对应的专业。在求职者简历公开的情况下,用人单位也可以根据专业信息筛选求职者的简历。

2.1.4" 岗位信息管理模块设计

管理员可以对系统中的岗位信息进行管理,包括对岗位信息的添加、修改、查询和删除等功能。岗位信息添加成功后,用人单位在发布招聘公告时即可选择对应的岗位信息,方便求职者后续根据岗位信息精准地对招聘公告进行筛选,快速找到所需要的招聘信息。

2.1.5" 招聘公告信息管理模块设计

用人单位可以对招聘公告信息进行管理,包括招聘公告信息的添加、修改、查询、删除和发布等操作。公告发布后,该公告即对求职者可见,求职者可以在招聘系统中搜寻到该招聘信息并投递简历。求职者可以在招聘公告列表页面中点击某个招聘公告,即可打开招聘公告详情页面。招聘公告详情页面内容主要由三大部分组成,分别是岗位描述内容、技能要求和薪资待遇。其中,岗位描述包含了岗位名称、工作地点、工作内容和招聘人数等基本信息。

2.1.6" 简历信息管理模块设计

简历作为求职者和用人单位沟通的媒介,在系统中承担着非常重要的作用。求职者可以对自己的简历信息进行管理,包含对个人简历信息的添加、修改、查询和删除等操作。求职者可以为自己添加多份不同的简历,以应对不同岗位的招聘需要。求职者在填写个人简历时,首先需要完善自己的基本信息(包含姓名、联系电话、出生日期、邮箱和住址等信息)。此外,求职者还可以在简历中补充若干段教育经历、工作经历、项目经历等能够反映求职者个人竞争力的信息。求职者投递简历后,用人单位即可在候选人列表中查看到该简历信息。

2.1.7" 候选人信息管理模块设计

求职者在招聘公告中点击投递按钮,即可一键将自己的简历信息投递到用人单位的候选人列表中。用人单位可以在候选人列表中查询到所有投递给指定岗位的简历信息,并可以对这些简历进行归类,筛选出合适的简历信息以进行下一步的面试邀约。对于不合格的简历信息,用人单位还可以将其从候选人列表中移除。为了防止求职者后续更新简历对已经投递的候选人信息造成影响,候选人信息中需要备份求职者的简历信息作为快照。

2.2" 安全性能设计

2.2.1" 用户登录控制

系统采用账号加密码再加验证码的方式来进行用户身份认证,除了使用SHA-256哈希算法对数据库中的密码进行加密,还在数据传输过程中使用RSA非对称加密方式进行加密,以防止传输中的数据被恶意访问或篡改。在用户身份认证过程中,若用户连续3次登录失败,系统将会暂停用户在半小时内的登录权限,若用户连续6次登录失败,则系统将会锁定该登录账户,以防止该账户密码被暴力破解。在进行用户身份认证时,系统首先将用户输入的明文密码通过SHA-256哈希算法转换为密文,然后将用户名及转换后的密码密文和数据库中存在的用户名及密码密文进行比对,若一致则登录成功,否则登录失败。

2.2.2" 用户操作权限控制

为了标识每个操作所需要的权限,本文设计了2个自定义注解,分别为@Permit和@Authority,用于标注在系统代码的控制层方法之上。若某个控制层方法(如登录、注册方法)前添加了@Permit注解,则表示该方法在任何情况下都可以被访问(不需要用户具有任何权限,甚至无须登录即可访问该方法);而如果某个方法前标注了@Authority注解,那么表示用户需要经过特定授权才能访问该方法,注解的value属性标识了访问该方法所应具备的权限编码。为了对用户的操作权限进行控制,需要在数据库中创建一个权限表,用来枚举系统中操作权限,每个权限都有一个唯一的权限编码,与@Authority注解中的value值对应;同时数据库中还包含一个角色权限关联表,包含每个角色对应的关系操作权限。根据用户、角色、权限的关联关系,即可获取用户对应的操作权限集合。系统在用户执行操作时,系统首先获取该操作所调用的控制层方法,并从方法的头部获取@Authority注解,从该注解中的value属性获取该操作对应的权限编码,然后判断用户的权限列表中是否包含该权限编码,若包含则允许用户进行当前操作,反之则禁止执行当前操作。

2.3" 数据库设计

本系统采用开源的MySQL数据库系统进行数据存储,使用MyBatis作为对象关系映射(Object Relational Mapping,ORM)工具,采用参数化查询及最小化数据库操作权限来防止SQL注入。系统包含的数据表有院校信息表、专业信息表、岗位信息表、简历信息表、学习经历表、工作经历表、项目经历表、招聘公告表、候选人信息表、用户信息表和权限信息表。

院校信息表包括院校ID、院校名称、院校编码、院校级别、院校类型、所在省编码、所在市编码、所在区/县编码、详细地址、院校简介、删除标志位、创建人ID、创建时间、修改人ID和修改时间等字段;专业信息表包括专业ID、专业名称、所在院校ID、专业编码、删除标志位、创建人ID、创建时间、修改人ID和修改时间等字段;岗位信息表包括岗位ID、父岗位ID、所在行业、岗位名称、删除标志位、创建人ID、创建时间、修改人ID和修改时间等字段;简历信息表包括简历ID、姓名、联系电话、出生日期、邮箱、住址、最高学历、毕业时间、工作年限、自我评价、删除标志位、创建人ID、创建时间、修改人ID和修改时间等字段;学习经历表包括学习经历ID、院校ID、专业ID、入学时间、毕业时间、绩点、关联简历ID、删除标志位、创建人ID、创建时间、修改人ID和修改时间等字段;工作经历表包括工作经历ID、公司名称、岗位、入职时间、离职时间、所获成绩、关联简历ID、删除标志位、创建人ID、创建时间、修改人ID和修改时间等字段;项目经历表包括项目经历ID、项目名称、参与人数、开始时间、结束时间、项目描述、个人贡献、删除标志位、创建人ID、创建时间、修改人ID和修改时间等字段;招聘公告表包括公告ID、岗位名称、工作地点、工作内容、技能要求、薪资待遇、招聘人数、发布状态、招聘截止日期、删除标志位、创建人ID、创建时间、修改人ID和修改时间等字段;用户信息表包括用户ID、用户名、密码、联系电话、邮箱、真实姓名/企业名称,身份证号码/统一社会信用代码、营业执照/身份证照片、性别、法人代表、角色编码、删除标志位、创建人ID、创建时间、修改人ID和修改时间等字段;权限信息表包括角色编码、权限编码等字段;候选人信息表包括候选人ID、姓名、联系电话、出生日期、邮箱、住址、最高学历、毕业时间、工作年限、自我评价、删除标志位、创建人ID、创建时间、修改人ID和修改时间等字段。

3" 结束语

本文设计了一款在线求职招聘管理系统,能够实现用人单位和求职者之间的无缝对接,架起快捷沟通的桥梁。既能满足求职者在平台中查询招聘信息,筛选心仪岗位并进行简历投递的需要,也能满足用人单位在平台中发布招聘公告,获得人力资源的需要。这打破了时间和空间的限制,使得招聘流程更加便捷高效,节约了用人单位和求职者的时间成本和人力成本。

参考文献:

[1] 殷凤梅,刘冠中.基于SSM框架的网上招聘系统设计与实现[J].长春大学学报,2022,32(4):1-5,62.

[2] 扶明亮,李刚.基于招聘网站大数据分析的求职者需求与企业需求匹配研究[J].统计与管理,2021,36(8):91-97.

[3] 吕洪林.网络招聘系统设计与实现[J].信息与电脑(理论版),2016(14):89-90.

[4] 王菊花,赵蔷,杜涛,等.基于JSP的网络求职招聘系统的设计与实现[J].价值工程,2016,35(35):95-97.

[5] 殷凤梅,刘冠中.基于SSM框架的网上招聘系统设计与实现[J].长春大学学报,2022,32(4):1-5,62.

[6] 唐韵清,王一诺,马瑞,等.基于Web的网上求职招聘系统[J].网络安全技术与应用,2021(6):29-31.

[7] 庄焕.网上人才招聘系统设计[J].电脑知识与技术,2018,14(29):92-94.

[8] 圣立明,李超,常京.基于微信小程序的求职招聘系统的设计[J].电脑知识与技术,2022,18(31):49-52.

猜你喜欢
身份认证
基于标识的动态口令系统
软件(2016年6期)2017-02-06 23:54:28
云电子身份管理与认证系统中的关键技术优化改进
校园网云盘系统存在的安全问题及对策
基于指纹身份认证的固定通信台站干部跟班管理系统设计
基于PKI与基于IBC的认证技术比较
基于PKI技术的企业级云存储出错数据证明的研究
信息系统身份认证的分析与研究
Kerberos身份认证协议的改进
科技视界(2016年11期)2016-05-23 08:31:38
基于USB存储设备的透明监控系统
科技视界(2016年9期)2016-04-26 12:25:25
基于鼠标行为的电子商务中用户异常行为检测