最近在寻找开源的JavaWEB框架及源码进行学习。发现jeesite不错,所以做一下研究记录。
jeesite 网址:http://jeesite.com/
使用技术:Spring MVC +Hibernate4 +BootStrap 权限验证框架采用Apache Shrio
系统分析首先需要看 Web.xml配置文件里面配置的信息
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在web.xml里面主要的配置信息应该看这些信息
filter-name 属性的shiroFilter应该与
spring-context-shiro.xml
配置文件中的bean id 一致
<!-- 安全认证过滤器 -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="${adminPath}/login" />
<property name="successUrl" value="${adminPath}" />
<property name="filters">
<map>
<entry key="authc" value-ref="formAuthenticationFilter"/>
</map>
</property>
<property name="filterChainDefinitions">
<value>
/static/** = anon /* 这个属性的意思static路径下的资源是可以直接访问**/
/userfiles/** = anon /* 这个属性的意思userfiles路径下的资源是可以直接访问**/
${adminPath}/login = authc /* 这个属性的意思这个路径下的资源是用来登录**/
${adminPath}/logout = logout
${adminPath}/** = user
</value>
</property>
</bean>
最关心的东西其实是在这里配置
<!-- 定义 Shiro 主要业务对象 -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<!-- <property name="sessionManager" ref="sessionManager" /> -->
<property name="realm" ref="systemAuthorizingRealm" />
<property name="cacheManager" ref="shiroCacheManager" />
</bean>
这个配置说明 SystemAuthorizingRealm是主要的登录验证的
jeestie 自带的有简单的代码生成器,可以自动的根据分层生成 Dao ,Service ,以及相关的jsp页面。
代码生成器生成的Bean 继承自IdEntity 而 IdEntity 又继承自DataEntity 并且实现了Serializable接口
IdEntity自带的有id属性;
DataEntity自带的有
这些属性
所以要确保这些属性在数据库中确实存在。
thinkgem 是系统自带的权限最全的管理员
登录系统后可以看到
系统中的组织权限结构
表名称:sys_user_role 用户角色关联表 | ||||||
字段名称 | 数据类型 | 长度 | 描述 | 主键(是/否) | 非空(是/否) | 备注 |
User_id | varchar | 64 | 用户编号 | 否 | 是 |
|
Role_id | Varchar | 64 | 角色编号 | 否 | 是 |
|
|
|
|
|
|
|
|
表名称:sys_user 用户表 | ||||||
字段名称 | 数据类型 | 长度 | 描述 | 主键(是/否) | 非空(是/否) | 备注 |
Id | varchar | 64 | 用户编号 | 是 | 是 |
|
company_id | Varchar | 64 | 归属公司 | 否 | 是 |
|
Office_id | varchar | 64 | 归属部门 | 否 | 是 |
|
Login_name | Varchar | 100 | 登录名 | 否 | 是 |
|
Password | varchar | 100 | 密码 | 否 | 是 |
|
No | Varchar | 100 | 工号 | 否 | 否 |
|
Name | Varchar | 100 | 姓名 | 否 | 是 |
|
Varchar | 200 | 邮箱地址 |
|
|
| |
Phone | Varchar | 200 | 电话 | 否 |
|
|
Mobile | Varchar | 200 | 手机 |
|
|
|
User_type | Char | 1 | 用户类型 |
|
|
|
Login_ip | Varchar | 100 | 最后登录IP |
|
|
|
Login_date | Datetime |
| 最后登录时间 |
|
|
|
Create_by | Varchar | 64 | 创建者 |
|
|
|
Create_date | Datetime |
| 创建时间 |
|
|
|
Update_by | Varchar | 64 | 修改者 |
|
|
|
Update_date | Datetime |
| 修改时间 |
|
|
|
Remarks | Varchar | 255 | 备注信息 |
|
|
|
Delete_flag | Char | 1 | 删除标记 |
| 是 |
|
表名称:sys_role角色表 | ||||||
字段名称 | 数据类型 | 长度 | 描述 | 主键(是/否) | 非空(是/否) | 备注 |
Id | varchar | 64 | 编号 | 是 | 是 |
|
Office_id | Varchar | 64 | 归属机构 | 否 | 是 |
|
Name | varchar | 100 | 角色名称 | 否 | 是 |
|
Data_scope | Char | 1 | 数据范围 | 否 | 是 |
|
Create_by | varchar | 64 | 创建者 | 否 | 是 |
|
Create_date | Datetime |
| 创建时间 |
|
|
|
Update_by | Varchar | 64 | 修改者 |
|
|
|
Update_time | Datetime |
| 修改时间 |
|
|
|
Remarks | Varhcar | 255 | 备注信息 |
|
|
|
Del_flag | Char | 1 | 删除标记 |
|
|
|
表名称:sys_menue菜单表 | ||||||
字段名称 | 数据类型 | 长度 | 描述 | 主键(是/否) | 非空(是/否) | 备注 |
Id | varchar | 64 | 编号 | 是 | 是 |
|
Parent_id | Varchar | 64 | 父级编号 | 否 | 是 |
|
Parent_ids | varchar | 2000 | 所有父级编号 | 否 | 是 |
|
Name | Varchar | 100 | 菜单名称 | 否 | 是 |
|
Href | varchar | 255 | 连接 | 否 | 是 |
|
Target | Varchar | 20 | 目标 |
|
|
|
Icon | Varchar | 100 | 图标 |
|
|
|
Sort | Int | 11 | `排序(升序) |
|
|
|
Id_show | Char | 1 | 是否在菜单中显示 |
|
|
|
Is_activiti | Char | 1 | 是否同步工作流 |
|
|
|
Permission | Varchar | 200 | 权限标识 |
|
|
|
Create_by | Varchar | 64 | 创建者 |
|
|
|
Update_by | Varchar | 64 | 修改者 |
|
|
|
Update_time | Datetime |
| 修改时间 |
|
|
|
Remarks | Varhcar | 255 | 备注信息 |
|
|
|
Del_flag | Char | 1 | 删除标记 |
|
|
|
表名称:sys_role_menue菜单角色关联表 | ||||||
字段名称 | 数据类型 | 长度 | 描述 | 主键(是/否) | 非空(是/否) | 备注 |
Role_id | varchar | 64 | 角色编号 | 否 | 是 |
|
Menu_id | Varchar | 64 | 菜单编号 | 否 | 是 |
|
表名称:sys_office机构表 | ||||||
字段名称 | 数据类型 | 长度 | 描述 | 主键(是/否) | 非空(是/否) | 备注 |
Id | varchar | 64 | 编号 | 是 | 是 |
|
Parent_id | Varchar | 64 | 父级编号 | 否 | 是 |
|
Parent_ids | varchar | 2000 | 所有父级编号 | 否 | 是 |
|
Area_id | Varchar | 64 | 归属区域 | 否 | 是 |
|
code | varchar | 100 | 区域编码 | 否 | 是 |
|
Name | Varchar | 100 | 机构名称 |
|
|
|
Type | Char | 1 | 机构类型 |
|
|
|
Grade | Char | 1 | 机构等级 |
|
|
|
Address | Varchar | 255 | 联系地址 |
|
|
|
Zip_code | Varchar | 100 | 邮政编码 |
|
|
|
Master | Varchar | 100 | 负责人 |
|
|
|
Phone | Varchar | 200 | 电话 |
|
|
|
Fax | Varchar | 200 | 传真 |
|
|
|
Varchar | 200 | 邮箱 |
|
|
| |
Create_by | Varchar | 64 | 创建者 |
|
|
|
Update_by | Varchar | 64 | 修改者 |
|
|
|
Update_time | Datetime |
| 修改时间 |
|
|
|
Remarks | Varhcar | 255 | 备注信息 |
|
|
|
Del_flag | Char | 1 | 删除标记 |
|
|
|
表名称:sys_log访问日志 | ||||||
字段名称 | 数据类型 | 长度 | 描述 | 主键(是/否) | 非空(是/否) | 备注 |
Id | varchar | 64 | 编号 | 是 | 是 |
|
Type | Char | 1 | 日志类型 | 否 | 是 |
|
Create_date | Datetime |
| 创建时间 | 否 | 是 |
|
Create_ by | Varchar | 64 | 创建者 | 否 | 是 |
|
Remote_addr | Varchar | 255 | 操作IP地址 |
|
|
|
User_agent | Varchar | 255 | 用户代理 |
|
|
|
Request_uri | Varchar | 255 | 请求URL |
|
|
|
Method | Varchar | 255 | 操作方式 |
|
|
|
Params | Text |
| 操作提交的数据 |
|
|
|
Exception | Text |
| 异常信息 |
|
|
|
表名称:sys_area区域表 | ||||||
字段名称 | 数据类型 | 长度 | 描述 | 主键(是/否) | 非空(是/否) | 备注 |
Id | varchar | 64 | 编号 | 是 | 是 |
|
Parent_id | Varchar | 64 | 父级编号 | 否 | 是 |
|
Parent_ids | varchar | 2000 | 所有父级编号 | 否 | 是 |
|
Code | Varchar | 100 | 区域编码 | 否 | 是 |
|
Name | varchar | 100 | 区域名称 | 否 | 是 |
|
Type | Char | 1 | 区域类型 |
|
|
|
Create_by | Varchar | 64 | 创建者 |
|
|
|
Update_by | Varchar | 64 | 修改者 |
|
|
|
Update_time | Datetime |
| 修改时间 |
|
|
|
Remarks | Varhcar | 255 | 备注信息 |
|
|
|
Del_flag | Char | 1 | 删除标记 |
|
|
|
表名称:sys_midc字典表 | ||||||
字段名称 | 数据类型 | 长度 | 描述 | 主键(是/否) | 非空(是/否) | 备注 |
Id | varchar | 64 | 编号 | 是 | 是 |
|
Parent_id | Varchar | 64 | 父级编号 | 否 | 是 |
|
Parent_ids | varchar | 2000 | 所有父级编号 | 否 | 是 |
|
Name | Varchar | 100 | 角色名称 | 否 | 是 |
|
Description | varchar | 100 | 描述 | 否 | 是 |
|
Sort | Int | 11 | 排序(升序) |
|
|
|
Create_by | Varchar | 64 | 创建者 |
|
|
|
Update_by | Varchar | 64 | 修改者 |
|
|
|
Update_time | Datetime |
| 修改时间 |
|
|
|
Remarks | Varhcar | 255 | 备注信息 |
|
|
|
Del_flag | Char | 1 | 删除标记 |
|
|
|