SpringBoot OA办公系统
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办公系统相关推荐
- 基于Springboot实现OA办公系统
项目编号:BS-XX-062 一个完整的OA办公系统应该来说功能模块较多,工程浩大,涉及到企业内部的人.财.务和相关资源的管理,已经早己脱离了原先早期的OA办公方面的狭隘范畴.但是如果是用做毕业设计或 ...
- OA办公系统(可用来做课设,结果展示及部分代码)
1.OA办公系统的介绍 办公自动化(Office Automation,简称OA),是将计算机.通信等现代化技术运用到传统办公方式,进而形成的一种新型办公方式.办公自动化利用现代化设备和信息化技术,代 ...
- 基于springboot2的开源OA办公系统
Active4j-oa是基于active4j-jsp快速开发框架构建而来的OA办公系统.基于springboot2.0,以Spring Framework为核心容器,Spring MVC为模型视图控制 ...
- java毕业设计OA办公系统mybatis+源码+调试部署+系统+数据库+lw
java毕业设计OA办公系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计OA办公系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S架构 开 ...
- Thinkphp5 开发 OA 办公系统 - 数据库设计
2019独角兽企业重金招聘Python工程师标准>>> 自从接触到用PowerDesigner做数据库建模后,喜欢它就停不下来了.我发现现在很多2-20人的团队在做数据库结构设计时, ...
- 基于JSP实现OA办公系统
项目编号:BS-XX-039 后台技术:JSP+Servlet+JDBC 前端技术:Ajax+Jquery 数据库:Mysql5.7 应用服务器:Tomcat8.5.31 开发工具:IDEA / Ec ...
- oa系统登录后几分钟自动退出_2020版OA办公系统正式上线运行!
关于2020版OA办公系统 正式上线运行的通知 各学院,校机关各部门.各直属单位: 2020版OA办公系统自10月7日上线试运行以来,广泛听取了学院部门的意见建议,经过功能调整优化,现已具备上线运行条 ...
- OA办公系统的核心-工作流
时至今天,谈到OA这个话题,OA办公系统的不断传播和全面发展,已经深入人心,虽然不能说是家喻户晓,但也被很多人所熟知,被很多企业所应用.JAVA已经成为主流技术尺度,而工作流引擎作为规范企业运营流程. ...
- .net oa 用到那些技术_一起来看看选择免费OA办公系统的难点
当今许多企业都引入了免费OA办公系统作为管理工具,免费OA软件对企业管理的帮助也是有目共睹,但也有很多企业不能挑选到心仪的免费OA办公系统,使得免费OA并没有充分发挥作用,今天跟小晴来一起探讨这个问题 ...
最新文章
- 多目标跟踪 | FairMOT:统一检测、重识别的多目标跟踪框架,全新Baseline
- WINCE下SOS驱动开发
- swift 适配的方法autolayout 和 masory===snapKit库
- 每天改變或學習一點點 終究聚沙成塔
- html:(19):单选框,复选框,下拉列表框
- 中医养生 选对方法就成功一半
- 俺也用一下mandriva,恩,KDE的效果的确不错
- js中引用类型赋值(拷贝)问题
- 如何用Python实现电影售票系统
- 浅析Minecraft直播弹幕模组BakaDanmaku源码
- 苹果白屏一直显示苹果_苹果手机白屏只显示苹果图标怎么回事?
- 操作系统小和尚挑水,老和尚喝水问题
- php 计算今天周几,php如何计算当前日期是周几
- Exp6 信息搜集与漏洞扫描 ——20164316张子遥
- 互联网架构的演进方向
- Linux下基于C++11的socket网络编程(线程版本)
- python爬虫检测ip是否有效
- 大商创是用哪种php柜架写的,大商创X二次开发基本规范与流程
- ActionScript 3.0权威指南
- android 友盟统计 简单上手
热门文章
- 【转载】Linux那些事儿系列
- Deepfakes教程及各个换脸软件下载
- 全球最大的Spark+AI峰会发放优惠码SAIS20TRAIN,培训费优惠20%!
- 巴比特 | 元宇宙每日必读:微软“工业元宇宙”业务再“开单”,川崎重工继亨氏、波音之后成为其新客户...
- 大学计算机专业可以用台式电脑吗,大学带台式机的人多吗 方便吗
- 什么是Google AdWords关键字广告?
- 19.2. /etc/shells
- Joshua Bloch
- 游戏开发新手入门之Windows编程
- 深度学习——day38 读论文:基于深度学习的数据竞争检测方法(DeleRace计算机研究与发展 2022)