SpringBoot OA办公系统

SpringBoot OA办公系统功能介绍

登录 首页面板 日程管理 个人便签 通讯录 请假记录 会议室管理 预约记录 员工管理 部门管理 角色管理 菜单管理 岗位管理 公告管理 工作时间管理 文件管理 流程审批管理 审批记录 日志管理 考勤记录 考勤统计

一个办公企业管理OA系统

使用技术

  • SpringBoot框架

  • Mysql数据库

  • activiti

  • shiro

  • thymeleaf(前端)

功能展示








activiti.cf.xml配置文件

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"><property name="dataSource" ref="dataSource" /><!-- Database configurations 自动生成20 多张表 --><property name="databaseSchemaUpdate" value="true" /><!-- job executor configurations --><property name="jobExecutorActivate" value="false" /><property name="transactionManager" ref="transactionManager"/><!-- font --><property name="activityFontName" value="宋体"/><property name="labelFontName" value="宋体"/></bean><bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean"><property name="processEngineConfiguration" ref="processEngineConfiguration"/></bean><!--连接数据库--><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://127.0.0.1:3306/oa"/><property name="username" value="root"/><property name="password" value="root"/></bean><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean>
</beans>

UserRealm权限代码

/*** 登录验证reaml*/
@Component("uReaml")
public class UserRealm extends AuthorizingRealm{private final static Logger logger = LoggerFactory.getLogger(UserRealm.class);@AutowiredIUserService loginService;/**** @描述: 登陆认证** @params:* @return:*/protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException{//拿到封装好账户密码的tokenUsernamePasswordToken u_pTaken = (UsernamePasswordToken) authenticationToken;String loginName = u_pTaken.getUsername();//用户校验User user = loginService.login(loginName);if (user == null){throw new UnknownAccountException("用户不存在!");}String status = user.getStatus().toString();if (status.equals(CsEnum.user.USER_USER_BLOCKED.getValue())){throw new LockedAccountException("用户被锁定!");}/**  用户存在密码交给 realm 比对* 1).principal: 认证的实体信息,可以使username 也可以是数据表对应的用户实体类对象* 2).credentials:  密码* 3).realmName: 当前reaml 对象的name. 丢奥用父类的getName() 方法即可**//** 数据库的密码是进行过MD5盐值加密的,表单传过来的密码 进行md5加密后对比*hashAlgorithmName**///加盐 计算盐值 保证每个加密后的 MD5 不一样ByteSource credentialsSalt = ByteSource.Util.bytes(user.getUid());SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, user.getPwd(), credentialsSalt,this.getName());return info;}/*** 授权逻辑**/protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection){//1.从PrincipalCollection 中获取登陆用户的信息,获取登陆者的idUser principal = (User) principalCollection.getPrimaryPrincipal();//2.利用当前用户的信息用户当前用户的角色或权限Set<String> roles = new HashSet<>();Set<String> menus = new HashSet<>();//从用户中取出权限Role role = principal.getRole();List<Permission> permissionList = role.getPermissionList();if (permissionList != null){for (Permission p : permissionList){if (p.getCode() != null && !p.getCode().equals("")){menus.add(p.getCode());}}}roles.add(role.getRoleName());logger.info("### 登录授权,用户=[{}],角色=[{}]", principal.getName(), role.getRoleName());//3.创建 SimpleAuthenticationInfo 对象,设置角色SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();info.setRoles(roles);info.setStringPermissions(menus);return info;}/*** 清理缓存权限*/public void clearCachedAuthorizationInfo(){this.clearCachedAuthorizationInfo(SecurityUtils.getSubject().getPrincipals());}
}

运行

创建数据库, 然后修改数据库连接相关信息。

启动 Springboot 类的main方法

访问地址:http://localhost:8880/oa

管理员 账号:admin 密码:admin

领导角色演示账号/密码:manager/123456

员工角色演示账号/密码:employee/123456

SpringBoot OA办公系统相关推荐

  1. 基于Springboot实现OA办公系统

    项目编号:BS-XX-062 一个完整的OA办公系统应该来说功能模块较多,工程浩大,涉及到企业内部的人.财.务和相关资源的管理,已经早己脱离了原先早期的OA办公方面的狭隘范畴.但是如果是用做毕业设计或 ...

  2. OA办公系统(可用来做课设,结果展示及部分代码)

    1.OA办公系统的介绍 办公自动化(Office Automation,简称OA),是将计算机.通信等现代化技术运用到传统办公方式,进而形成的一种新型办公方式.办公自动化利用现代化设备和信息化技术,代 ...

  3. 基于springboot2的开源OA办公系统

    Active4j-oa是基于active4j-jsp快速开发框架构建而来的OA办公系统.基于springboot2.0,以Spring Framework为核心容器,Spring MVC为模型视图控制 ...

  4. java毕业设计OA办公系统mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计OA办公系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计OA办公系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S架构 开 ...

  5. Thinkphp5 开发 OA 办公系统 - 数据库设计

    2019独角兽企业重金招聘Python工程师标准>>> 自从接触到用PowerDesigner做数据库建模后,喜欢它就停不下来了.我发现现在很多2-20人的团队在做数据库结构设计时, ...

  6. 基于JSP实现OA办公系统

    项目编号:BS-XX-039 后台技术:JSP+Servlet+JDBC 前端技术:Ajax+Jquery 数据库:Mysql5.7 应用服务器:Tomcat8.5.31 开发工具:IDEA / Ec ...

  7. oa系统登录后几分钟自动退出_2020版OA办公系统正式上线运行!

    关于2020版OA办公系统 正式上线运行的通知 各学院,校机关各部门.各直属单位: 2020版OA办公系统自10月7日上线试运行以来,广泛听取了学院部门的意见建议,经过功能调整优化,现已具备上线运行条 ...

  8. OA办公系统的核心-工作流

    时至今天,谈到OA这个话题,OA办公系统的不断传播和全面发展,已经深入人心,虽然不能说是家喻户晓,但也被很多人所熟知,被很多企业所应用.JAVA已经成为主流技术尺度,而工作流引擎作为规范企业运营流程. ...

  9. .net oa 用到那些技术_一起来看看选择免费OA办公系统的难点

    当今许多企业都引入了免费OA办公系统作为管理工具,免费OA软件对企业管理的帮助也是有目共睹,但也有很多企业不能挑选到心仪的免费OA办公系统,使得免费OA并没有充分发挥作用,今天跟小晴来一起探讨这个问题 ...

最新文章

  1. 多目标跟踪 | FairMOT:统一检测、重识别的多目标跟踪框架,全新Baseline
  2. WINCE下SOS驱动开发
  3. swift 适配的方法autolayout  和 masory===snapKit库
  4. 每天改變或學習一點點 終究聚沙成塔
  5. html:(19):单选框,复选框,下拉列表框
  6. 中医养生 选对方法就成功一半
  7. 俺也用一下mandriva,恩,KDE的效果的确不错
  8. js中引用类型赋值(拷贝)问题
  9. 如何用Python实现电影售票系统
  10. 浅析Minecraft直播弹幕模组BakaDanmaku源码
  11. 苹果白屏一直显示苹果_苹果手机白屏只显示苹果图标怎么回事?
  12. 操作系统小和尚挑水,老和尚喝水问题
  13. php 计算今天周几,php如何计算当前日期是周几
  14. Exp6 信息搜集与漏洞扫描 ——20164316张子遥
  15. 互联网架构的演进方向
  16. Linux下基于C++11的socket网络编程(线程版本)
  17. python爬虫检测ip是否有效
  18. 大商创是用哪种php柜架写的,大商创X二次开发基本规范与流程
  19. ActionScript 3.0权威指南
  20. android 友盟统计 简单上手

热门文章

  1. 【转载】Linux那些事儿系列
  2. Deepfakes教程及各个换脸软件下载
  3. 全球最大的Spark+AI峰会发放优惠码SAIS20TRAIN,培训费优惠20%!
  4. 巴比特 | 元宇宙每日必读:微软“工业元宇宙”业务再“开单”,川崎重工继亨氏、波音之后成为其新客户...
  5. 大学计算机专业可以用台式电脑吗,大学带台式机的人多吗 方便吗
  6. 什么是Google AdWords关键字广告?
  7. 19.2. /etc/shells
  8. Joshua Bloch
  9. 游戏开发新手入门之Windows编程
  10. 深度学习——day38 读论文:基于深度学习的数据竞争检测方法(DeleRace计算机研究与发展 2022)