关于申报系统存在问题的处理

来源:互联网 发布:网络层相关的协议 编辑:程序博客网 时间:2024/04/29 07:33


背景: 由于申报系统对申报企业用户即roleId=5的用户进行了平台验证所以有一些特殊的设置。
申报企业用户无法登陆:
原因1:本地密码和平台密码不一致的问题
原因2:在jinrui.properties中配置logurl的配置问题,IP后必须有/lhrh
原理:在申报企业用户登录时会对用户名,密码进行验证,并将这些信息和访问地址发送到平台,待平台验证后,根据提交的访问地址将跳转到相应的页面。

代码实例 :

//LoginAction.java 去云平台认证,关于用户名密码问题if (dept.getLevel().intValue() == 5 && CASUtils.CAS_OPEN) {logger.info("=== 去云平台认证...");session.setAttribute("userName", empl.getEmplId());session.setAttribute("password", empl.getPasswd());session.setAttribute("casUser", empltmp);return "cas";}//jinrui.properties中配置logurllogurl=192.168.21.62/lhrh

申报企业用户可以正常登录但如何登陆后若关闭页面,再次登录时报错:
原因:必须在login.jsp中凡是有重定向的设置之中必须加/lhrh;
原理:在用户登录时,系统首先会验证平台session中是否有用户登录,若有就根据此用户信息在本地查询,若找不到则重新登录,找到了则重定向到主页;若没有用户则返回即重新登录。

代码实例
//用户登录前的对平台用户的判断和验证String username_cas =(String)session.getAttribute("edu.yale.its.tp.cas.client.filter.user");//System.out.println("=== login page username_cas:" + username_cas);if ( username_cas != null ){WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(getServletContext());IEmplService emplService = (IEmplService) wac.getBean("EmplService");IDeptService deptService = (IDeptService) wac.getBean("DeptService");Empl empl = new Empl();empl.setEmplId(username_cas);List findByEntity = emplService.findByEntity(empl);if (findByEntity.isEmpty()) {response.sendRedirect(request.getContextPath()+ response.encodeRedirectURL("/lhrh/pages/login.jsp?erroruser=true"));return;}empl = (Empl)findByEntity.get(0);Dept dept = new Dept();dept.setDeptId(empl.getDeptId());dept = deptService.findByEntity(dept);//登录成功,将用户信息以及补贴年度信息、用户所属机构代码信息放入 session 中List list = emplService.findPriv(empl.getRoleId());ServletContext sc = request.getSession().getServletContext();List menus = null;if (null == sc.getAttribute(JinruiConstants.MENUALL)) {menus = emplService.findAllMenu();sc.setAttribute(JinruiConstants.MENUALL, menus);}session.setAttribute(JinruiConstants.USER_KEY, empl);session.setAttribute(JinruiConstants.DEPT_KEY, dept);session.setAttribute(JinruiConstants.PRIV_KEY, list);response.sendRedirect("/lhrh/pages/index.jsp");return;}

申报企业用户退出系统后,无法回到登录页面:
原因:在jinrui.properties中配置logurl的配置问题,IP后必须有/lhrh
原理:在申报企业用户退出时,会先将平台用户退出,退出后根据提交的访问地址将跳转到相应的页面。

代码实例 
//jinrui.properties中配置logurllogurl=192.168.21.62/lhrh

综上所述,配置域名时必须加/lhrh的根本原因:
在系统正式上线时我们一般将其打成war包然后放到root目录下,可以通过ip或绑定好的域名直接访问;但在实际开发中我们的部署路径一般在webapps目录下,访问时ip或域名后必须加上项目名称(如lhrh)。