门户安全管理(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批量分发管理

JPA常用的关闭流的方式是啥?事务管理?还是手动关闭?

SSH框架的搭建+JPA接口

ssh(sturts2_spring_hibernate) 框架搭建之JPA代替hibernate

[ SSH框架 ] Hibernate框架学习之四(JPA)

SSH框架JPA基于注解的多数据源