casGenericSuccess.jsp 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. <%@page import="com.jsjty.sso.util.DesPasswordEncoder"%>
  2. <%@page import="net.sf.json.JSONArray"%>
  3. <%@page import="com.jsjty.user.mapper.UserMapper"%>
  4. <%@page import="com.jsjty.common.Constants"%>
  5. <%@ page language="java" contentType="text/html; charset=UTF-8"
  6. pageEncoding="UTF-8"%>
  7. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  8. <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
  9. <%@ page import="java.util.ArrayList"%>
  10. <%@ page import="java.util.Arrays"%>
  11. <%@ page import="com.jsjty.sso.common.SystemConfig"%>
  12. <%@ page import="org.jasig.cas.ticket.registry.DefaultTicketRegistry"%>
  13. <%@ page import="org.springframework.context.ApplicationContext"%>
  14. <%@ page
  15. import="org.springframework.web.context.support.WebApplicationContextUtils"%>
  16. <%@ page import="org.jasig.cas.ticket.registry.TicketRegistry"%>
  17. <%@ page import="org.jasig.cas.ticket.TicketGrantingTicket"%>
  18. <%@ page import="java.util.List"%>
  19. <%@ page import="org.jasig.cas.authentication.Authentication"%>
  20. <%@ page import="org.jasig.cas.authentication.principal.Principal"%>
  21. <%@ page import="com.jsjty.sp.dao._SpDao"%>
  22. <%@ page import="com.jsjty.sp.entity.SpEntity"%>
  23. <%@ page import="com.jsjty.menu.entity.MenuEntity"%>
  24. <%@ page import="com.jsjty.user.entity.UserEntity"%>
  25. <%@ page import="org.springframework.webflow.execution.RequestContext"%>
  26. <%@ page import="com.jsjty.menu.dao.MenuDao"%>
  27. <c:set var="basePath" value="${pageContext.request.contextPath}" />
  28. <%
  29. String tgtid="";
  30. //管理用户按钮权限
  31. String isUserManageAppear = "0";
  32. //cookie里获取到TGT
  33. Cookie cookie = org.springframework.web.util.WebUtils.getCookie(request, "CASTGC");
  34. if(cookie != null)
  35. tgtid=cookie.getValue();
  36. //上下文中拿到TGT,优先级高于cookie,因为cookie可能失效,
  37. if(request.getAttribute("ticketGrantingTicketId")!=null&&request.getAttribute("ticketGrantingTicketId").toString()!=""){
  38. tgtid=request.getAttribute("ticketGrantingTicketId").toString();
  39. }
  40. DefaultTicketRegistry registry=(DefaultTicketRegistry) WebApplicationContextUtils.getWebApplicationContext(request.getServletContext()).getBean("ticketRegistry");
  41. //通过获取tgt对象
  42. TicketGrantingTicket ticketGrantingTicket = (TicketGrantingTicket) registry.getTicket(tgtid, TicketGrantingTicket.class);
  43. //根据tgtid获取tgt对象
  44. if(ticketGrantingTicket!=null){
  45. final List<Authentication> chainedAuthenticationsList = ticketGrantingTicket.getChainedAuthentications();
  46. final Authentication authentication = chainedAuthenticationsList.get(chainedAuthenticationsList.size() - 1);
  47. final Principal principal = authentication.getPrincipal();
  48. /* uname=principal.getAttributes().get("username"); */
  49. //获取用户访问权限
  50. _SpDao spDao = (_SpDao) WebApplicationContextUtils.getWebApplicationContext(request.getServletContext()).getBean("_spDao");
  51. List<MenuEntity> list = new ArrayList<MenuEntity>();
  52. list = spDao.queryList(principal.getId());
  53. session.setAttribute("username", principal.getId());
  54. if(session.getAttribute(Constants.USER_KEY)==null){
  55. UserMapper userMapper=WebApplicationContextUtils.getWebApplicationContext(request.getServletContext()).getBean(UserMapper.class);
  56. session.setAttribute(Constants.USER_KEY,userMapper.findByUname(principal.getId()));
  57. }
  58. if(session.getAttribute("sso_menuList")==null){
  59. //获取用户可访问菜单
  60. MenuDao menuService = (MenuDao) WebApplicationContextUtils.getWebApplicationContext(request.getServletContext()).getBean("menuDao");
  61. List<MenuEntity> sso_menuList = menuService.queryMenusByUser(principal.getId());
  62. session.setAttribute("sso_menuList", sso_menuList);
  63. }
  64. /* //外部url特殊处理
  65. String CREDENTIAL_ID = SystemConfig.readValue("CREDENTIAL_ID");//"xxxxx";
  66. String external_sp = SystemConfig.readValue("EXTERNAL_SP"); */
  67. ServletContext context = request.getSession().getServletContext();
  68. session.setAttribute("menuList", list);
  69. //将menuList转换成json格式
  70. JSONArray tableArray = JSONArray.fromObject(list);
  71. request.setAttribute("list", tableArray);
  72. String allow_users = SystemConfig.readValue("ALLOW_MANAGE_USERS");
  73. if(!"".equals(allow_users)){
  74. List<String> allow_users_List = Arrays.asList(allow_users.split(","));
  75. if(allow_users_List.contains(principal.getId())){
  76. isUserManageAppear = "1";
  77. }
  78. }
  79. }else
  80. {
  81. session.setAttribute("username", "");
  82. session.setAttribute(Constants.USER_KEY, null);
  83. //注销cookie中的TGT
  84. response.sendRedirect(response.encodeURL(request.getContextPath()+"/logout"));
  85. }
  86. session.setAttribute("isUserManageAppear", isUserManageAppear);
  87. String rtx_server_ip = SystemConfig.readValue("RTX_SERVER_IP");
  88. %>
  89. <!DOCTYPE html>
  90. <html lang="en">
  91. <head>
  92. <meta charset="utf-8">
  93. <title>江苏港口智能监管信息平台</title>
  94. <meta name="viewport" content="width=device-width, initial-scale=1">
  95. <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
  96. <%@ include file="../../common.jsp"%>
  97. <script src="${app}/static/js/base64.js"></script>
  98. <style type="text/css">
  99. footer {
  100. width: 100%;
  101. height: 34px;
  102. background-color: #054fa2;
  103. text-align: center;
  104. position:absolute;
  105. bottom:0;
  106. /* filter:alpha(opacity=90);
  107. -moz-opacity:0.9;
  108. opacity:0.9; */
  109. }
  110. #footer {
  111. color: #f2f1f1;
  112. line-height: 34px;
  113. margin-right: 1%;
  114. display: inline;
  115. }
  116. </style>
  117. <link href="${basePath}/css/logout.css" rel="stylesheet">
  118. <link rel="icon" href="${app}/pt_logo.png" type="image/x-icon" />
  119. <link rel="shortcut icon" href="${app}/pt_logo.png" type="image/x-icon" />
  120. <script type="text/javascript" src="${app }/static/biz/js/sys/main.js"></script>
  121. <script type="text/javascript">
  122. $(document).ready(function() {
  123. sys.main.init();
  124. sys.main.clear();
  125. });
  126. function openValidateExternalAccount(url,p,n,o){
  127. //console.log(arguments);
  128. //window.open('${menu.menuUrl}${user_key.passWord},${user_key.userName}')
  129. var m=isNotBlank(o)?o:n;
  130. var url=url+p+','+m;
  131. //console.log(url);
  132. window.open(url);
  133. /*
  134. $.ajax({
  135. type : 'post',
  136. datatype : 'json',
  137. //contentType : 'application/json;charset=utf-8',
  138. //timeout : 10000, //超时时间设置,单位毫秒
  139. cache : false,// 不从缓存中去数据
  140. async : true,
  141. url : "${basePath}/user/validateExternalAccount.do",
  142. data : {credential:p},
  143. //headers:headinfo,
  144. success : function(data) {
  145. alert(data);
  146. },
  147. error : function(jqXHR, textStatus, errorThrown) {
  148. //alert(jqXHR.responseText);
  149. }
  150. });
  151. */
  152. }
  153. function isNotBlank(value){
  154. if(typeof(value)!='undefined'&&value!=null){
  155. value=value+"";
  156. for(var i=0; i<value.length; i++) {
  157. var c = value.charAt(i);
  158. if ((c!=' ')&&(c!='\n')&&(c!='\t')) return true;
  159. }
  160. }
  161. return false;
  162. }
  163. </script>
  164. <style>
  165. </style>
  166. </head>
  167. <body style="hieght: 100%; margin: 0px; padding: 0px;">
  168. <!-- 上 -->
  169. <div class="navbar navbar-default" role="navigation" style="border:none;margin-bottom: 0px;z-index: 1000;">
  170. <div class="navbar-inner" style="padding-top:0px;">
  171. <div id='header' class="container-fluid" >
  172. <img src="${app}/static/image/bar.png" />
  173. <div>
  174. <img id="logo" alt="平台LOGO" src="${app }/static/image/logo_portal.png" />
  175. <p id="chinese">江苏港口智能监管信息平台</p>
  176. <p id="spell">JIANG SU GANG KOU ZHI NENG JIAN GUAN XIN XI PING TAI</p>
  177. <!-- user dropdown starts -->
  178. <div class="btn-group pull-right" style="margin: 15px 10px 0 0">
  179. <button class="btn btn-default dropdown-toggle"
  180. data-toggle="dropdown">
  181. <i class="glyphicon glyphicon-user"></i> <span class="caret"></span>
  182. </button>
  183. <ul class="dropdown-menu" >
  184. <c:forEach var="sso_menu" items="${sso_menuList}">
  185. <li><a
  186. href="javascript:addTab('${sso_menu.menuPic}','${app }${sso_menu.menuUrl}','${sso_menu.menuName }');">${sso_menu.menuName }</a>
  187. </li>
  188. <li class="divider"></li>
  189. </c:forEach>
  190. <li><a href="#" data-toggle="modal" data-target="#logout">注销</a></li>
  191. <li class="divider"></li>
  192. <li><a href="#" data-toggle="modal"
  193. data-target="#UpdatePassword" onclick="sys.main.clear()">
  194. 修改密码</a></li>
  195. </ul>
  196. </div>
  197. <p id="welcome">${user_key.uname} , 欢迎您!</p>
  198. </div>
  199. </div>
  200. </div>
  201. </div>
  202. <!-- 上结束 -->
  203. <!--<spring:eval expression="T(com.jsjty.sso.util.DesPasswordEncoder).encrypt('ddd','yjpt_gkj')" />-->
  204. <div class="container-fluid" id="cent1" style="hieght: 100%; padding-left: 1px;margin-left: -1.5px;">
  205. <div class="row-fluid" style="hieght: 100%">
  206. <div id="leftmenu">
  207. <div class="mysidebar-menu" id="cont1">
  208. <c:forEach var="menu" items="${menuList}">
  209. <c:if test="${menu.pid==0}">
  210. <a target="_blank" href="#${menu.id}"
  211. class="nav-header mymenu-first collapsed "
  212. data-toggle="collapse" onclick="hidden_menu(this)"
  213. <c:if test="${menu.menuCode=='tjxt'}">
  214. window.open('${menu.menuUrl}${user_key.passWord},${user_key.userName}')
  215. ondblclick="openValidateExternalAccount('${menu.menuUrl}','<spring:eval expression="T(com.jsjty.sso.util.DesPasswordEncoder).encrypt('{userName:\"'+user_key.userName+'\",passWord:\"'+user_key.passWord+'\"}','yjpt_gkj')" />','${user_key.userName}','${user_key.otherName}')"
  216. </c:if>
  217. <c:if test="${menu.menuCode!='tjxt'}">
  218. ondblclick="window.open('${menu.menuUrl}')"
  219. </c:if>
  220. >
  221. <img id="${menu.menuPic}" name="menu_img"
  222. src="${basePath}/images/${menu.menuPic}_gray.png"
  223. class='navigation_page_icon1' />
  224. <p >${menu.shortName}</p>
  225. <img name="arrow" class="navigation_page_icon2" src="${basePath}/images/arrow_gray.png" />
  226. </a>
  227. <ul id="${menu.id}" class="nav mynav-list collapse mymenu-second">
  228. <c:forEach var="mu" items="${menuList}">
  229. <c:if test="${mu.pid==menu.id}">
  230. <li><a href="javascript:void(0)"
  231. onclick="addTab('${mu.menuPic}','${app }${mu.menuUrl}','${mu.shortName}');"><span style="font-weight:bold;">·</span>&nbsp;&nbsp;${mu.menuName}</a></li>
  232. </c:if>
  233. </c:forEach>
  234. </ul>
  235. </c:if>
  236. </c:forEach>
  237. </div>
  238. </div>
  239. <!-- 中 -->
  240. <div id="colright">
  241. <div id="tab"></div>
  242. </div>
  243. </div>
  244. </div>
  245. <!-- 修改密码弹窗 -->
  246. <div class="modal fade" id="UpdatePassword" tabindex="-1" role="dialog"
  247. aria-labelledby="myModalLabel" aria-hidden="true">
  248. <div class="modal-dialog">
  249. <div class="modal-content">
  250. <div class="modal-header">
  251. <button type="button" class="close" data-dismiss="modal">×</button>
  252. <h3>修改密码</h3>
  253. </div>
  254. <div class="modal-body">
  255. <form id="updatepasswordform" method="post">
  256. <input type="hidden" id="editid" name="id">
  257. <table class="add_table">
  258. <tr>
  259. <td width="20%" style="text-align: right;">原密码:</td>
  260. <td width="80%"><input type="password" class="form-control"
  261. id="editoldPassword" name="oldPassword"
  262. style="display: inline; width: 300px"
  263. onblur="sys.main.validation1()"><span
  264. id="backpassword1" style="color: red;"></span></td>
  265. </tr>
  266. <tr>
  267. <td width="20%" style="text-align: right;">新密码:</td>
  268. <td width="80%"><input type="password" class="form-control"
  269. id="editnewPassword" name="newPassword"
  270. style="display: inline; width: 300px"
  271. onblur="sys.main.validation2()"><span
  272. id="backpassword2" style="color: red;"></span></td>
  273. </tr>
  274. <tr>
  275. <td width="20%" style="text-align: right;">确认新密码:</td>
  276. <td width="80%"><input type="password" class="form-control"
  277. id="editconfirmNewPassword" name="confirmNewPassword"
  278. style="display: inline; width: 300px"
  279. onblur="sys.main.validation3()"><span
  280. id="backpassword3" style="color: red;"></span></td>
  281. </tr>
  282. </table>
  283. </form>
  284. </div>
  285. <div class="modal-footer">
  286. <a href="#" class="btn btn-default" data-dismiss="modal">取消</a> <a
  287. href="#" class="btn btn-default" data-dismiss="modal"
  288. onclick="sys.main.updatepassword()">保存</a>
  289. </div>
  290. </div>
  291. </div>
  292. </div>
  293. <!-- 注销面板 -->
  294. <div class="modal fade" id="logout" tabindex="-1" role="dialog"
  295. aria-labelledby="myModalLabel" aria-hidden="true">
  296. <div class="hide_div">
  297. <div id="quit">
  298. <div class="table_th">
  299. <p style="font-weight: bold;">提示</p>
  300. <a href="#"> <img title="取消"
  301. src="${app}/static/image/x_white.png"
  302. onmouseover="this.src='${app}/static/image/x_hover.png'"
  303. onmousedown="this.src='${app}/static/image/x_down.png'"
  304. onmouseout="this.src='${app}/static/image/x_white.png'"
  305. data-dismiss="modal" aria-hidden="true" "/></a>
  306. </div>
  307. <div id="quit_main">
  308. <p>是否注销?</p>
  309. <button title="确认退出" class="button_style" style="left: 60px;"
  310. onclick="logout()">是</button>
  311. <button id="1" title="取消" class="button_style"
  312. style="right: 60px; background-color: #93a9bd;"
  313. data-dismiss="modal" aria-hidden="true">否</button>
  314. </div>
  315. </div>
  316. </div>
  317. </div>
  318. <footer>
  319. <p id="footer"
  320. style="font-size: 12px; font-family: SimSun, sans-serif; color: #fff; line-height: 30px; margin-left: 10%; margin-top: -1px;">Copyright 2015 江苏省新通智能交通科技发展有限公司版权所有</p>
  321. </footer>
  322. <script type="text/javascript">
  323. $(document).ready(function() {
  324. var list = ${list};
  325. var isfirst = true;
  326. var firsturl = "";
  327. var firstName = "";
  328. var firstPic="";
  329. for ( var i = 0; i < list.length; i++) {
  330. var code = list[i];
  331. if (code.isDefaultShow == 1) {
  332. if (isfirst) {
  333. firsturl = '${app }' + code.menuUrl
  334. firstName = code.shortName;
  335. firstPic=code.menuPic;
  336. isfirst = false;
  337. }
  338. addTab(code.menuPic,'${app }'+code.menuUrl, code.shortName);
  339. }
  340. }
  341. if (firsturl != "") {
  342. addTab(firstPic,firsturl, firstName);
  343. //$('#'+firstName).css('margin-left','0px');
  344. }
  345. });
  346. </script>
  347. </body>
  348. </html>