集成方案.txt
4.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
0. 说明:
0.1 本文档默认使用Velocity模板文件
0.2 默认使用diligrp-website-util-x.x.x.jar中的public class BaseController extends VelocitySupport
0.3 默认存在default.vm
1. 引用依赖
<dependency>
<groupId>com.diligrp.manage</groupId>
<artifactId>diligrp-manage-sdk</artifactId>
<version>0.0.2-SNAPSHOT</version>
</dependency>
2.引入Redis(已有Redis情况下)
增加:
<bean id="manageRedisUtil" class="com.diligrp.website.util.redis.impl.RedisUtilImpl">
<property name="shardedJedisPool" ref="shardedJedisPool" />
<!-- <property name="keyRule" value="(.*)+" /> -->
</bean>
3.添加无头菜单的Velocity模板文件
3.1 复制default.vm,建议命名为onlyContent.vm
3.2 删除#parse("layout/header.vm")
3.3 删除#parse("layout/navigation.vm")
3.4 删除class: main-content
4. 替换无头菜单的Velocity模板
4.1 BaseController继承自VelocitySupport, 里面有个velocityDefaultLayout参数, 用来控制使用主模板.
4.2 在spring-mvc.xml中添加:
<bean id="velocityDefaultLayout" class="java.lang.String">
<constructor-arg value="${project.view.VMDefault}"/>
</bean>
4.3 为了使用之前的default.vm自定义菜单进行开发, 所以建议在pom中配置属性project.view.VMDefault, 配置值为onlyContent.vm
5. 引入拦截器
5.1 删除0.0.1中添加的拦截器配置
5.2 在web.xml中添加servletFilter拦截器. 加强了权限的拦截, 所以调整了实现
<!--权限拦截-->
<filter>
<filter-name>sessionFilter</filter-name>
<filter-class>com.diligrp.manage.sdk.session.SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sessionFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
5.3 添加配置文件manage.properties, 填充内容:
#后台权限系统域名
manage.domain = ${conf.manage.domain}
#是否开启过滤
manage.enable = ${conf.manage.enable}
#包含列表
manage.includes = ${conf.manage.includes}
#排除列表
manage.excludes = ${conf.manage.excludes}
#当前系统的标记
manage.system = ${conf.manage.system}
#是否开启权限接入点爬取
mange.spider = ${conf.manage.spider}
5.4 在spring配置文件中引入manage.properties. 例:
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:db.properties</value>
<value>classpath:manage.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true" />
</bean>
5.5 在pom.xml的各个properties节点中引入配置
<!--权限相关配置-->
<conf.manage.enable>true</conf.manage.enable>
<conf.manage.spider>true</conf.manage.spider>
<conf.manage.system>manage</conf.manage.system>
<conf.manage.domain>http://manage.nong12.com/</conf.manage.domain>
<conf.manage.includes>^/.*\.do</conf.manage.includes>
<conf.manage.excludes>^/noAccess.do$,^/welcome.do$,^/loginControl/.*,^/api/.*</conf.manage.excludes>
注: conf.manage.system一定要配置成权限系统中分配给各系统的编码
conf.manage.spider开关用于抓去系统中的资源点, 如URL, 片段. 建议在测试环境中开启,
6. 获取用户信息
6.1 在需要用户信息的地方调用以下代码. 当关闭拦截时将会提供一个默认的测试帐户
SessionContext sessionContext = SessionContext.getSessionContext();
UserTicket user = sessionContext.getUserTicket();
注: sessionContext保存于ThreadLocal中
7. fragment级别权限控制.
7.1 首先在各个需要加入权限控制的页面元素结点上加入两个属性:
diliAnchor="manage_resource_add" diliAnchorTxt="添加资源"
diliAnchor为权限的KEY, diliAnchorTxt为权限的中文备注.
例:
<div diliAnchor="manage_resource_add" diliAnchorTxt="添加资源">
<a href="$url_save" class="btn btn-success btn-sm ">添加</a>
</div>
权限锚点加入后, 权限SDK会自动的去扫描. 然后需要去认领后才会起作用
8. 配置后台管理系统Host
开发环境:192.168.1.203 manage.nong12.com
测试环境:192.168.1.12 manage.nong12.com