打了几盘农药后,就升一颗心,赛季初水真深,心累。继续上一篇说的内容,进去server的模块,server模块的里面有个admin的模块,这部分基本是前端的内容,不做解释。按照工程上结构从上到下进行梳理吧。
1. Controller
但多多少少了解和使用过SpringMVC的都知道这是干嘛的, Controller 把各种用户的请求进行业务的处理,封装成Model,返回给对应的View,这就是MVC!通过看注解,我们可以看到,在安全上,这个项目主要用到了shiro。同时提供了Swagger2作为一个测试框架(方便后端的开发者进行测试使用,不太在乎的也可以用postman这个利器)。
1.1 shiro
其实我也有点虚,不是身体上的虚,是心虚,不敢去讲太多,因为,我也不是太懂。就把我看到和知道的写写。先不用看代码,先去找shiro的配置文件,这么多配置文件,呵呵,没找到,原来藏在了client的模块里面-applicationContext-shiro.xml.特别要注意和学习的地方其实看client模块我们应该就知道了(顺便背两个单词:Auth**entic**ation:身份验证 Auth**oriz**ation:授权)
http://jinnianshilongnian.iteye.com/blog/2018936/ shiro科普
http://www.sojson.com/shiro
- 1
- 2
1.1.1 filter
过滤器? 这里应该称之为拦截器吧?,主要是为了身份认证 anon:所有的人都可以访问,authc:需要认证 user:表示用户不一定已通过认证,只要曾被shiro记住过登录状态的用户就可以正常发起请求,比如rememberMe。
<property name="filters">
<util:map>
<entry key="authc" value-ref="upmsAuthenticationFilter"/>
</util:map>
</property>
<property name="filterChainDefinitions">
<value>
/manage/** = upmsSessionForceLogout,authc
/manage/index = user
/druid/** = user
/swagger-ui.html = user
/resources/** = anon
/** = anon
</value>
</property>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
1.1.2 listener
会话监听器,没什么可以讲的,可以参考:
http://jinnianshilongnian.iteye.com/blog/2028675
- 1
1.1.3 realm
安全管理器,这块主要是授权和验证。extends AuthorizingRealm 来重写doGetAuthorizationInfo(授权)和doGetAuthenticationInfo(认证)的方法。
1.1.4 session
主要是这块的session的存储使用了redis
1.2 swagger2
项目启动后输入ip:port/swagger-ui.html进行接口的测试使用,工具很好用的。注意:/swagger-ui.html = user
applicationContext-dubbo-consumer
消费服务中心中的服务
<!-- 用户 -->
<dubbo:reference id="upmsUserService" interface="com.zheng.upms.rpc.api.UpmsUserService" mock="true"/>
- 1
- 2
以上,基本的umps的就大概看完了,细节的地方和登录的地方验权的地方还是需要仔细点。基本上,一个菜鸟对这个框架的初步认识就差不多了,一下阶段就是仿写了,如法炮制一个类似的。
国际惯例,原项目地址:
https://github.com/shuzheng/zheng