门户安全管理(ssh+jpa)
Posted FanZhe、FanZhe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了门户安全管理(ssh+jpa)相关的知识,希望对你有一定的参考价值。
Spring常用注解
Spring中的注解大概可以分为两大类:
1、spring的bean容器相关的注解,或者说bean工厂相关的注解。
spring的bean容器相关的注解,先后有:@Required, @Autowired, @PostConstruct, @PreDestory,还有Spring3.0开始支持的JSR-330标准javax.inject.*中的注解(@Inject, @Named, @Qualifier, @Provider, @Scope, @Singleton)
2、springmvc相关的注解。
springmvc相关的注解有:@Controller, @RequestMapping, @RequestParam, @ResponseBody等等。
- @Component :可以注解其他类注解(带有此注解的类看作组件、当使用基于此注解的配置和类路径扫描时,这些类会被实例化)把普通的pojo实例化到Spring容器中。不属于归类(@Controller、@Services等)可用该注解标注。
- @Resource:实现依赖注入(name(解析为bean名字)、type(解析为bean类型))默认使用byName自动注入
- @Override提示编译器(必须和Override父类或者java.lang.Object中一个方法同名)为我验证方法名、验证重写的方法名正确性、也可以当注解用
Interface接口中的注解: - @Path:描述跟资源、子资源方法或子资源位置(@Path("/queryById"))
- @Produces:转换返回数据格式(返回的内容类型)
- @Consumes:处理清的提交内容类型,与上者相反
- @Context、@WebParam、@QueryParam、@QueryParam
- Controller控制器(注入服务)
- service服务(注入dao)
- repository(实现dao访问)
doc数据库表及一些SQL文件
bonc-portal-core门户模块
src.java.com.bonc.portal
- bean
- dao
- entity
- factory
- service
- util
bonc-security-core门户模块
src.java.com.bonc.security
- api
- bean
- client
- common
- dao
- entity
- factory
- listener
- service
- util
cas 登录模块
security安全模块
1、 src-main-java(com.bonc.security 处理后端逻辑)
integration.accountCenter
- api
AccountRestApiImpl:syncDo(新增用户、添加用户、修改用户、删除用户) - utils
ResultMessage(api统一返回值类):code、msg、data
ResultCode(接口状态码):
/* 成功状态码 */
SUCCESS(1, "成功"),
/* 参数错误:10001-19999 */
PARAM_IS_INVALID(10001, "参数无效"),
PARAM_IS_BLANK(10002, "参数为空"),
PARAM_TYPE_BIND_ERROR(10003, "参数类型错误"),
PARAM_NOT_COMPLETE(10004, "参数缺失"),
/* 用户错误:20001-29999*/
USER_NOT_LOGGED_IN(20001, "用户未登录"),
USER_LOGIN_ERROR(20002, "账号不存在或密码错误"),
USER_ACCOUNT_FORBIDDEN(20003, "账号已被禁用"),
USER_NOT_EXIST(20004, "用户不存在"),
USER_HAS_EXISTED(20005, "用户已存在"),
/* 业务错误:30001-39999 */
SPECIFIED_QUESTIONED_USER_NOT_EXIST(30001, "某业务出现问题"),
/* 系统错误:40001-49999 */
SYSTEM_INNER_ERROR(40001, "系统繁忙,请稍后重试"),
/* 数据错误:50001-599999 */
RESULE_DATA_NONE(50001, "数据未找到"),
DATA_IS_WRONG(50002, "数据有误"),
DATA_ALREADY_EXISTED(50003, "数据已存在"),
DATA_HAS_BEEN_DELETED(50004,"数据已被删除"),
/* 接口错误:60001-69999 */
INTERFACE_INNER_INVOKE_ERROR(60001, "内部系统接口调用异常"),
INTERFACE_OUTTER_INVOKE_ERROR(60002, "外部系统接口调用异常"),
INTERFACE_FORBID_VISIT(60003, "该接口禁止访问"),
INTERFACE_ADDRESS_INVALID(60004, "接口地址无效"),
INTERFACE_REQUEST_TIMEOUT(60005, "接口请求超时"),
INTERFACE_EXCEED_LOAD(60006, "接口负载过高"),
/* 权限错误:70001-79999 */
PERMISSION_NO_ACCESS(70001, "无访问权限"),
/*租户错误: 80001-89999*/
TENANT_IS_INVALID(80001,"无效租户");
- cloudiip
CloudiipService(集成cloudiip用户中心):receiveDataFromCloudiip(根据kafka获得消息保存入库)
CloudiipSyncBody(cloudiip用户实体类)
2、 src-main-java-web(前端页面jsp):有一些什么功能
portal门户模块
1、 src-main-java(com.bonc 处理后端逻辑)
portal
-
api
impl
BaseApiImpl抽象类(queryById通过id查询、queryAll、queryList)
MenuinfoApi(@Commpontent)继承BaseApiImpl实现ImenuinfoApi接口:IMenuinfoService(@Resource(name = “menuinfoService”))、IBaseService父类方法、findParentMenu和findMenuinfos(根据菜单名称、菜单编码查询 菜单)
MessageApiImpl(@Commpontent)继承BaseApiIMpl实现ImessageApi:ImessageService(@Resource(name = “messageService”))name自动依赖注入、IBaseService父类方法、、queryMsgInfo方法(创建消息列表、从数据库中查询未读消息列表、获取未读消息条数、创建消息时间设置工具、设置未读消息列表的时间差、创建JSON数组对象 、消息大于十条只读取十条(创建JSON对象,发送到前台))、alreadyRead(通过id找到message,设置状态为1更新message)、sendMessage(发送公告)、privateSendMessage(发送私人公告,request无法获取用户,通过参数传递参数)
PortalLayoutApiImpl(@Component)继承BaseApiImpl实现IportalLayoutApi:portalLayoutService(@Resourse 通过name依赖注入)、IBaseService父类方法、findPortalPages(通过Id获取PortalPages)
PortalLayoutApiImpl:findPortalPages
PortalPageApiImpl:findLayout(布局)、findTheme(主题)
PortalPortletApiImpl:findSubscriptionEvent、findPortalPortletInstances、findPortletEvents、findPortalPortletConfigs
PortalPortletConfigApiImpl:findPortlet、findPortalPortletConfigInstances
PortalPortletConfigInstanceApiImpl:findPortlet、findConfigProp
PortalPortletThemeApiImpl:findPortalPortletInstances
PortalThemeApiImpl:findPortalPages
PortletEventApiImpl:findPortlet、findPortalPortlets
RestApiImpl:findAllMenus、findMenusByParent、querySysPropertyAtPortletConfig、saveHomePageAtPortletConfig、findMenuByCode、findMenuByProperty、menuSaveOrUpdate、menuDelete(删除菜单)、initPage(添加页面、取默认布局器)、deletePage(删除页面)、setHomePageAtPortletConfig、findMenus(查找菜单)、changeSecretKey(更新密钥)、setHomePage(设置主页面)、queryMessage(查询公告)、updateMsgStatus(更新消息已读/未读公告状态)、getRole(获取角色) -
util
util-designer
Designer:实体类
DesignerVo:Designer实体类
LoadPropertiesUtil:selectProperty、setProperties、getProperties
TestCurl:doGet、main
util
BasicApplication:getClasses、getSingletons
ChangeDataUtil:change(解密key、获取数据库连接信息、将数据库连接信息解密)、getNewDbConnection(解密secretKey、对数据库连接信息加密)、WriteDb(将加密后的数据库连接信息密文写入配置文件中)
ChangeSecretKeyUtil:getProperties(获取Properties对象)、setValue(新增/修改数据)
DESUtil:(通过三重DES算法,加密或解密数据)encrypt(加密)、decrypt(解密)、decrypt(DES数据解密)、encrypt(DES数据加密,使用默认的key)、encrypt(DES数据加密,参数不同)、byte2hex(二进制转字符串)
FileOprateUtil:( ZIP压缩文件操作工具类 支持密码)、delDirOrFile(删除文件)、unZipFiles(解压文件到指定目录)、imageToBase64(图片转BASE64)、base64ToImage(BASE转图片)、saveFileToPath(保存文件到指定路径)、getFileType(根据文件路径获取文件的文件头)
HtmlUtil:delhtmlTag(删除Html标签)、getTextFromHtml(过滤操作 )
HttpRequestDeviceUtils:(判定web请求的终端设备是手机吗)isMobileDevice(根据当前请求的特征,判断该请求是否来自手机终端,主要检测特殊的头信息,以及user-Agent这个header )、isIPadDevice(判断是否是Ipad 登录)
MyMenuinfoComparator:(菜单表比较器)
PatternTest:main(按照指定模式在字符串中查找)
PortletInitUtil:getTenantData(布局器初始化、主题初始化、页面初始化、组件主题初始化、获取配置文件路径、获取内容)、initWeather(门户组件初始化)、initCurrentUser(当前用户组件)、initCustomization(个性化定制组件)、initOnlineUser(在线用户组件)、initMessage(消息组件)、initHorizMenu(横向菜单组件)、initWorkspace(工作区间组件)、initTitleAndLogo(标题和和logo组件)、initColumMenu(列式菜单组件)、initPosition(地区组件)、queryIndex(查询数组中某一个元素的索引值)
QueryAnnounceUtil:(查询宣告)
ServletUtil:joinUriAndParms、getForwardRequestURI、getServletPath、getRequestValue、sendAsJson、sendAsText
TestUnicom:main(测试连通性)、ping(返回值为boolean,ture说明host是可用的,false为不可用)
Utils:getStringValue(根据key读取value)
WebClientUtil:baseRequest(rest方式获取网络资源) -
vo实体类
OnlineUserInfoVO:id(主键)、orderId(序号、数据库动态生成)、loginId(租户登录id)、username(登录用户)、appCode(登陆方式)、clientip(用户IP)、loginTime(登陆时间)、tenantId(登录id)、tenantId(租户id)
PortalMenuClickLogSumVO:menuCode(菜单编码)、menuName(菜单名称)、groupName(归属分组名称)、moduleName(归属模块名称)、clickSum(点击次数)、clickProportion(点击占比)、tenantName(租户名称)
PortalMenuClickLogVO:id、orderId(序号、数据库动态生成)、createDate(创建时间)、menuName(菜单名称)、moduleMenuName(模块菜单名称)、groupMenuName(组菜单名称)
PortletInstanceVO:portletName(组件名)、portletThemeId,portletId(组件id)、height,width(实例height,width)、portalLayoutData(布局器layoutType)、isFloat(是否悬浮)、id,name(实例id、name)、sizeStatus(大小状态:最小,最大,普通)、integrateMethod(集成方式)、layoutData(布局定位数据)、viewUrl(查看地址)、maxUrl(最大化界面地址)、configUrl(配置界面地址)、icon(图标文件)、theme(主题风格)、code(组件编码)、registeEvents(注册的事件名称)、subscriptEvents(订阅的事件名称列表)、propertyValues(可配置属性的值集合) -
web
action
filter
PortalTempletFilter实现Filter接口(处理url请示,读取真实的文件流,发到客户端)
listener
servlet
PortalServlet( * PortalServlet作用为拦截 *.page请求,取得页面的编码,然后到库里加载页面配置信息,然后再结合主题布局等模板, 最终縇染出html页面)
DecryptPropertyPlaceholderConfigurer:(配置文件数据源加密)
2、 src-webapp-WEB-INF(前端页面jsp):有一些什么功能
主要去看bonc-portal-core、bonc-security-core,需讲解有那儿写模块名,是干什么的,有什么功能,用了什么技术
以上是关于门户安全管理(ssh+jpa)的主要内容,如果未能解决你的问题,请参考以下文章
ssh(sturts2_spring_hibernate) 框架搭建之JPA代替hibernate