shimingxy 6 rokov pred
rodič
commit
83cbc2ae7f
25 zmenil súbory, kde vykonal 378 pridanie a 898 odobranie
  1. 45 2
      maxkey-webs/maxkey-web-maxkey/bin/main/messages/message.properties
  2. 0 124
      maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/ContactsController.java
  3. 4 4
      maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/OneTimePasswordController.java
  4. 6 58
      maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java
  5. 45 2
      maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message.properties
  6. 0 96
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/contact/contactList.jsp
  7. 0 64
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/contact/details.jsp
  8. 90 62
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/layout/nav_primary.jsp
  9. 5 1
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/layout/top.jsp
  10. 2 2
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/login.jsp
  11. 13 5
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/main/appList.jsp
  12. 0 204
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/orgs/orgsList.jsp
  13. 0 26
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/orgs/orgsSelect.jsp
  14. 6 6
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/otp/counterBased.jsp
  15. 6 6
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/otp/hotp.jsp
  16. 23 8
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/otp/timeBased.jsp
  17. 21 6
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/changeAppLoginPasswod.jsp
  18. 20 5
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/changePassword.jsp
  19. 0 57
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/email.jsp
  20. 0 58
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/mobile.jsp
  21. 0 79
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/question.jsp
  22. 62 14
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/setting.jsp
  23. 23 7
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/social/socialSignOnProvider.jsp
  24. 7 1
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/css/base.css
  25. 0 1
      maxkey-webs/maxkey-web-maxkey/src/main/webapp/css/menu.css

+ 45 - 2
maxkey-webs/maxkey-web-maxkey/bin/main/messages/message.properties

@@ -47,19 +47,62 @@ login.text.register=\u7528\u6237\u6CE8\u518C
 
 login.password.expired=\u5BC6\u7801\u8FC7\u671F
 login.password.expired.tip=\u5BC6\u7801\u8FC7\u671F\uFF0C\u8BF7\u4FEE\u6539\u5BC6\u7801
+login.password.oldPassword=\u539F\u5BC6\u7801
 login.password.newPassword=\u65B0\u5BC6\u7801
 login.password.confirmPassword=\u786E\u8BA4\u65B0\u5BC6\u7801
 login.password.initial.change.tip=\u9996\u6B21\u767B\u5F55\uFF0C\u8BF7\u4FEE\u6539\u521D\u59CB\u5316\u5BC6\u7801
+login.password.changepassword=\u5BC6\u7801\u4FEE\u6539
+login.password.applogin.changepassword=\u5E94\u7528\u767B\u5F55\u5BC6\u7801\u8BBE\u7F6E
 
-userinfo.displayName=\u7528\u6237
-userinfo.username=\u767B\u5F55\u540D
+login.social.link=\u7ED1\u5B9A
+login.social.unlink=\u89E3\u9664
+login.social.icon=\u56FE\u6807
+login.social.provider=\u4F9B\u5E94\u5546
 
+userinfo.displayName=\u7528\u6237\u540D
+userinfo.username=\u767B\u5F55\u8D26\u53F7
+userinfo.email=\u90AE\u7BB1\u5730\u5740
+userinfo.mobile=\u624B\u673A\u53F7\u7801
+userinfo.authnType=\u767B\u5F55\u65B9\u5F0F
+userinfo.authnType.authnType.1=\u666E\u901A\u767B\u5F55
+userinfo.authnType.authnType.2=\u624B\u673A\u4EE4\u724C
+userinfo.authnType.authnType.3=\u77ED\u4FE1\u9A8C\u8BC1
+userinfo.authnType.authnType.4=\u90AE\u4EF6\u9A8C\u8BC1
+userinfo.authnType.authnType.5=\u65F6\u95F4\u4EE4\u724C
+userinfo.authnType.authnType.6=\u8BA1\u6570\u5668\u4EE4\u724C
+userinfo.authnType.authnType.7=HOTP\u4EE4\u724C
+userinfo.authnType.authnType.8=RSA\u4EE4\u724C
+userinfo.authnType.authnType.9=\u6570\u5B57\u8BC1\u4E66
+userinfo.authnType.authnType.10=USB Key
+
+login.totp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
+login.totp.period=\u5468\u671F
+login.totp.digits=\u6570\u5B57
+login.totp.crypto=\u52A0\u5BC6\u65B9\u5F0F
+login.totp.generate=\u91CD\u65B0\u751F\u6210
+login.totp.title=TimeBased One Time Password
+
+login.hotp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
+login.hotp.period=\u5468\u671F
+login.hotp.digits=\u6570\u5B57
+login.hotp.crypto=\u52A0\u5BC6\u65B9\u5F0F
+login.hotp.generate=\u91CD\u65B0\u751F\u6210
+login.hotp.title=HOTP One Time Password
+
+login.counter.sharedSecret=\u5171\u4EAB\u5BC6\u7801
+login.counter.period=\u5468\u671F
+login.counter.digits=\u6570\u5B57
+login.counter.crypto=\u52A0\u5BC6\u65B9\u5F0F
+login.counter.generate=\u91CD\u65B0\u751F\u6210
+login.counter.title=Counter Based One Time Password
 
 apps.icon=\u56FE\u6807
 apps.name=\u5E94\u7528\u540D\u79F0
 apps.protocol=\u8BBF\u95EE\u534F\u8BAE
 apps.category=\u7C7B\u578B
+
 button.text.action=\u8BBF\u95EE
 button.text.visit=\u8BBF\u95EE
 button.text.save=\u4FDD\u5B58
+button.text.select=\u8BF7\u9009\u62E9
 

+ 0 - 124
maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/ContactsController.java

@@ -1,124 +0,0 @@
-package org.maxkey.web.contorller;
-
-import java.awt.image.BufferedImage;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import java.util.UUID;
-
-import org.apache.mybatis.jpa.persistence.JpaPageResults;
-import org.maxkey.dao.service.UserInfoService;
-import org.maxkey.domain.UserInfo;
-import org.maxkey.util.DateUtils;
-import org.maxkey.util.RQCodeUtils;
-import org.maxkey.web.WebContext;
-import org.maxkey.web.endpoint.ImageEndpoint;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.servlet.ModelAndView;
-
-
-@Controller
-@RequestMapping(value={"/contact"})
-public class ContactsController {
-	final static Logger _logger = LoggerFactory.getLogger(ContactsController.class);
-	
-	@Autowired
-	private UserInfoService userInfoService;
-	
-	@RequestMapping(value={"/list"})
-	public ModelAndView forward(){
-		return new ModelAndView("contact/contactList");
-	}
-	
-	@RequestMapping(value={"/grid"})
-	@ResponseBody
-	public JpaPageResults<UserInfo> forwardUserInfoList(@ModelAttribute("userinfo") UserInfo userinfo){
-		return userInfoService.queryPageResults(userinfo);
-		
-	}
-	
-	@RequestMapping(value={"/details/{id}"})
-	public ModelAndView details(@PathVariable("id") String id) {
-		ModelAndView modelAndView=new ModelAndView("contact/details");
-		UserInfo userInfo=new UserInfo();
-		userInfo.setId(id);
-		userInfo=userInfoService.load(userInfo);
-		WebContext.getSession().setAttribute(userInfo.getId(), userInfo.getPicture());
-		modelAndView.addObject("rqcode", RQVCard(userInfo));
-		modelAndView.addObject("model", userInfo);
-		return modelAndView;
-	}
-	
-	/*
-	 * BEGIN:VCARD
-	 * VERSION:3.0
-	 * N:Gump;Forrest;;Mr.
-	 * FN:Forrest Gump
-	 * ORG:Bubba Gump Shrimp Co.
-	 * TITLE:Shrimp Man
-	 * PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif
-	 * TEL;TYPE=WORK,VOICE:(111) 555-12121
-	 * TEL;TYPE=HOME,VOICE:(404) 555-1212
-	 * ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
-	 * LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America
-	 * ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
-	 * LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America
-	 * EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com
-	 * REV:2008-04-24T19:52:43Z
-	 * END:VCARD
-
-
-
-	 * BEGIN:VCARD
-	 * VERSION:4.0
-	 * N:Gump;Forrest;;;
-	 * FN:Forrest Gump
-	 * ORG:Bubba Gump Shrimp Co.
-	 * TITLE:Shrimp Man
-	 * PHOTO;MEDIATYPE=image/gif:http://www.example.com/dir_photos/my_photo.gif
-	 * TEL;TYPE=work,voice;VALUE=uri:tel:+1-111-555-1212
-	 * TEL;TYPE=home,voice;VALUE=uri:tel:+1-404-555-1212
-	 * ADR;TYPE=work;LABEL="100 Waters Edge\nBaytown, LA 30314\nUnited States of America"
-	 *   :;;100 Waters Edge;Baytown;LA;30314;United States of America
-	 * ADR;TYPE=home;LABEL="42 Plantation St.\nBaytown, LA 30314\nUnited States of America"
-	 *  :;;42 Plantation St.;Baytown;LA;30314;United States of America
-	 * EMAIL:forrestgump@example.com
-	 * REV:20080424T195243Z
-	 * END:VCARD
-	 */
-	public String RQVCard(UserInfo userInfo){
-		String strRQVCard = 
-				 "BEGIN:VCARD\n" +
-	        	 "VERSION:3.0\n" +
-	        	 "N:"+userInfo.getDisplayName()+"\n" +
-	        	 "ORG:"+userInfo.getOrganization()+"\n" +
-	        	 "TITLE:"+userInfo.getJobTitle()+"\n" +
-	        	 "TEL;TYPE=WORK,VOICE:"+userInfo.getMobile()+"\n" +
-	        	 "ADR;TYPE=WORK:"+userInfo.getWorkStreetAddress()+"\n" +
-	        	 "EMAIL:"+userInfo.getEmail()+"\n" +
-	        	 "URL:"+userInfo.getWebSite()+"\n" +
-	        	 "GENDER:"+(userInfo.getGender()==1?"F":"M")+"\n" +
-	        	 "REV:"+DateUtils.toUtc(new Date())+"\n" +
-	        	 "END:VCARD\n" ;
-		_logger.debug("RQVCard : \n"+strRQVCard);
-		BufferedImage bufferedImage;
-		try {
-			bufferedImage = RQCodeUtils.write2BufferedImage(new String(strRQVCard.getBytes("UTF-8"),"iso-8859-1"), "gif", 300, 300);
-			byte[] imageByte=ImageEndpoint.bufferedImage2Byte(bufferedImage);
-			String uuid=UUID.randomUUID().toString().toLowerCase();
-			WebContext.getSession().setAttribute(uuid, imageByte);
-			return uuid;
-		} catch (UnsupportedEncodingException e) {
-			e.printStackTrace();
-		}
-		
-		return null;
-	}
-
-}

+ 4 - 4
maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/OneTimePasswordController.java

@@ -27,7 +27,7 @@ import org.springframework.web.servlet.ModelAndView;
  *
  */
 @Controller
-@RequestMapping(value = { "/otp" })
+@RequestMapping(value = { "/safe/otp" })
 public class OneTimePasswordController {
 	final static Logger _logger = LoggerFactory.getLogger(OneTimePasswordController.class);
 
@@ -78,7 +78,7 @@ public class OneTimePasswordController {
 		userInfo.setSharedSecret(sharedSecret);
 		userInfoService.changeSharedSecret(userInfo);
 		WebContext.setUserInfo(userInfo);
-		return WebContext.redirect("/otp/timebased");
+		return WebContext.redirect("/safe/otp/timebased");
 	}
 	
 
@@ -112,7 +112,7 @@ public class OneTimePasswordController {
 		userInfo.setSharedCounter("0");
 		userInfoService.changeSharedSecret(userInfo);
 		WebContext.setUserInfo(userInfo);
-		return WebContext.redirect("/otp/counterbased");
+		return WebContext.redirect("/safe/otp/counterbased");
 	}
 
 	@RequestMapping(value={"/hotp"})
@@ -144,7 +144,7 @@ public class OneTimePasswordController {
 		userInfo.setSharedCounter("0");
 		userInfoService.changeSharedSecret(userInfo);
 		WebContext.setUserInfo(userInfo);
-		return WebContext.redirect("/otp/hotp");
+		return WebContext.redirect("/safe/otp/hotp");
 	}
 	
 	

+ 6 - 58
maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java

@@ -145,73 +145,21 @@ public class SafeController {
 	@ResponseBody
 	@RequestMapping(value="/setting") 
 	public Message setting(
-			@RequestParam("authnType") String authnType) {
+			@RequestParam("authnType") String authnType,
+			@RequestParam("mobile") String mobile,
+			@RequestParam("mobileVerify") String mobileVerify,
+			@RequestParam("email") String email,
+			@RequestParam("emailVerify") String emailVerify) {
 		UserInfo userInfo =WebContext.getUserInfo();
 		userInfo.setAuthnType(Integer.parseInt(authnType));
-		
 		userInfoService.changeAuthnType(userInfo);
 		
-		return  new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),MessageType.success);
-		
-	}
-	
-	@RequestMapping(value="/forward/question") 
-	public ModelAndView fowardQuestion() {
-			ModelAndView modelAndView=new ModelAndView("safe/question");
-			modelAndView.addObject("model", WebContext.getUserInfo());
-			return modelAndView;
-	}
-	
-	@ResponseBody
-	@RequestMapping(value="/question") 
-	public Message question(
-			@RequestParam("passwordQuestion") String passwordQuestion,
-			@RequestParam("passwordAnswer")   String passwordAnswer) {
-		UserInfo userInfo =WebContext.getUserInfo();
-		userInfo.setPasswordQuestion(userInfo.getPasswordQuestion());
-		userInfo.setPasswordAnswer(userInfo.getPasswordAnswer());
-		userInfoService.changePasswordQuestion(userInfo);
-		return  new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),MessageType.success);
-		
-	}
-	
-	@RequestMapping(value="/forward/mobile") 
-	public ModelAndView fowardMobile() {
-			ModelAndView modelAndView=new ModelAndView("safe/mobile");
-			modelAndView.addObject("model", WebContext.getUserInfo());
-			return modelAndView;
-	}
-	
-	@ResponseBody
-	@RequestMapping(value="/mobile") 
-	public Message mobile(
-			@RequestParam("mobile") String mobile,
-			@RequestParam("verify") String verify) {
-		
-		UserInfo userInfo =WebContext.getUserInfo();
 		userInfo.setMobile(mobile);
 		userInfoService.changeMobile(userInfo);
-		return  new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),MessageType.success);
 		
-	}
-	
-	@RequestMapping(value="/forward/email") 
-	public ModelAndView fowardEmail() {
-			ModelAndView modelAndView=new ModelAndView("safe/email");
-			modelAndView.addObject("model", WebContext.getUserInfo());
-			return modelAndView;
-	}
-	
-	@ResponseBody
-	@RequestMapping(value="/email") 
-	public Message email(
-			@RequestParam("email") String email,
-			@RequestParam("verify") String verify) {
-		
-		UserInfo userInfo =WebContext.getUserInfo();
 		userInfo.setEmail(email);
 		userInfoService.changeEmail(userInfo);
-
+		
 		return  new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),MessageType.success);
 		
 	}

+ 45 - 2
maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message.properties

@@ -47,19 +47,62 @@ login.text.register=\u7528\u6237\u6CE8\u518C
 
 login.password.expired=\u5BC6\u7801\u8FC7\u671F
 login.password.expired.tip=\u5BC6\u7801\u8FC7\u671F\uFF0C\u8BF7\u4FEE\u6539\u5BC6\u7801
+login.password.oldPassword=\u539F\u5BC6\u7801
 login.password.newPassword=\u65B0\u5BC6\u7801
 login.password.confirmPassword=\u786E\u8BA4\u65B0\u5BC6\u7801
 login.password.initial.change.tip=\u9996\u6B21\u767B\u5F55\uFF0C\u8BF7\u4FEE\u6539\u521D\u59CB\u5316\u5BC6\u7801
+login.password.changepassword=\u5BC6\u7801\u4FEE\u6539
+login.password.applogin.changepassword=\u5E94\u7528\u767B\u5F55\u5BC6\u7801\u8BBE\u7F6E
 
-userinfo.displayName=\u7528\u6237
-userinfo.username=\u767B\u5F55\u540D
+login.social.link=\u7ED1\u5B9A
+login.social.unlink=\u89E3\u9664
+login.social.icon=\u56FE\u6807
+login.social.provider=\u4F9B\u5E94\u5546
 
+userinfo.displayName=\u7528\u6237\u540D
+userinfo.username=\u767B\u5F55\u8D26\u53F7
+userinfo.email=\u90AE\u7BB1\u5730\u5740
+userinfo.mobile=\u624B\u673A\u53F7\u7801
+userinfo.authnType=\u767B\u5F55\u65B9\u5F0F
+userinfo.authnType.authnType.1=\u666E\u901A\u767B\u5F55
+userinfo.authnType.authnType.2=\u624B\u673A\u4EE4\u724C
+userinfo.authnType.authnType.3=\u77ED\u4FE1\u9A8C\u8BC1
+userinfo.authnType.authnType.4=\u90AE\u4EF6\u9A8C\u8BC1
+userinfo.authnType.authnType.5=\u65F6\u95F4\u4EE4\u724C
+userinfo.authnType.authnType.6=\u8BA1\u6570\u5668\u4EE4\u724C
+userinfo.authnType.authnType.7=HOTP\u4EE4\u724C
+userinfo.authnType.authnType.8=RSA\u4EE4\u724C
+userinfo.authnType.authnType.9=\u6570\u5B57\u8BC1\u4E66
+userinfo.authnType.authnType.10=USB Key
+
+login.totp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
+login.totp.period=\u5468\u671F
+login.totp.digits=\u6570\u5B57
+login.totp.crypto=\u52A0\u5BC6\u65B9\u5F0F
+login.totp.generate=\u91CD\u65B0\u751F\u6210
+login.totp.title=TimeBased One Time Password
+
+login.hotp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
+login.hotp.period=\u5468\u671F
+login.hotp.digits=\u6570\u5B57
+login.hotp.crypto=\u52A0\u5BC6\u65B9\u5F0F
+login.hotp.generate=\u91CD\u65B0\u751F\u6210
+login.hotp.title=HOTP One Time Password
+
+login.counter.sharedSecret=\u5171\u4EAB\u5BC6\u7801
+login.counter.period=\u5468\u671F
+login.counter.digits=\u6570\u5B57
+login.counter.crypto=\u52A0\u5BC6\u65B9\u5F0F
+login.counter.generate=\u91CD\u65B0\u751F\u6210
+login.counter.title=Counter Based One Time Password
 
 apps.icon=\u56FE\u6807
 apps.name=\u5E94\u7528\u540D\u79F0
 apps.protocol=\u8BBF\u95EE\u534F\u8BAE
 apps.category=\u7C7B\u578B
+
 button.text.action=\u8BBF\u95EE
 button.text.visit=\u8BBF\u95EE
 button.text.save=\u4FDD\u5B58
+button.text.select=\u8BF7\u9009\u62E9
 

+ 0 - 96
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/contact/contactList.jsp

@@ -1,96 +0,0 @@
-<%@ page   contentType="text/html; charset=UTF-8" import="java.util.Map,java.util.LinkedHashMap" %>
-<%@ page   import="org.maxkey.web.*"%>
-<%@ taglib prefix="c"		    uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="s" 	uri="http://www.connsec.com/tags" %>
-<%@ taglib prefix="spring"	    uri="http://www.springframework.org/tags" %>
-<script type="text/javascript">	
-   	function genderFormatter(value, options, rData){
-   		if(value==1){
-   			return '<s:Locale code="userinfo.gender.female" />';
-   		}else{
-   			return '<s:Locale code="userinfo.gender.male" />';
-   		}
-	};
-	function onlineFormatter(value, options, rData){
-   		if(value==1){
-   			return '<s:Locale code="userinfo.online.online" />';
-   		}else{
-   			return '<s:Locale code="userinfo.online.offline" />';
-   		}
-	};
-
-
-	$(function () {
-		
-		$("#viewDetails").on("click",function(){
-			var selectId = $.gridSelIds("#list");
-			if(selectId == null || selectId == "") {
-				$.alert({content:$.platform.messages.select.alertText});
-				return false;
-			}
-			$.window({
-					url		:	"<s:Base/>/contact/details/"+selectId,//window url
-					title	:	"<s:Locale code="access.security.contact.businessCard"/>",//title
-					width	:	600,//width
-					height	:	350//height
-				});//open window
-		});
-		
-	});
-</script>		
-
-	<div id="tool_box">
-		<table  class="datatable">
-			<tr>
-				<td  width="120px">
-			 		 <s:Locale code="userinfo.username"/>:
-				</td>
-				<td  width="375px">
-					<form id="basic_search_form">
-				 			<input name="username" type="text" style ="width:150px">
-				 			<input class="button primary"  id="searchBtn" type="button" size="50" value="<s:Locale code="button.text.search"/>">
-				 			<input class="button"  id="advancedSearchExpandBtn" type="button" size="50"  value="<s:Locale code="button.text.expandsearch"/>" expandValue="<s:Locale code="button.text.expandsearch"/>"  collapseValue="<s:Locale code="button.text.collapsesearch"/>">
-					 	</form>
-				</td>
-				<td colspan="2"> 
-					 <div id="tool_box_right">
-					 	 <input class="button"   id="viewDetails" type="button" value="<s:Locale code="access.security.contact.businessCard"/>" />
-					</div>
-				</td>
-			</tr>
-		</table>
- 		
-		
- 	</div>
- 	
- 	<div id="advanced_search">
- 		<form id="advanced_search_form">
- 			<table   class="datatable">
-	 			<tr>
-	 				<td width="120px"><s:Locale code="userinfo.displayName"/></td>
-		 			<td width="360px">
-		 				<input name="displayName" type="text" >
-		 			</td>
-		 			<td width="120px"><s:Locale code="userinfo.department"/></td>
-		 			<td width="360px">
-			 			<input type="hidden" id="departmentId" name="departmentId"  title="" value=""/>
-						<input style="width:70%"  type="text" id="department" name="department"  title="" value=""/>
-			 			<s:Dialog text="button.text.select" title="department" url="/orgs/orgsSelect/deptId/department" width="300" height="400" />
-			 		</td>
-			 </tr>
-			</table>
- 		</form>
- 	</div>
-		<s:Grid id="list" url="/contact/grid" multiselect="false">	
-				<s:Column width="0" field="id" title="id" hidden="true"/>
-				<s:Column width="70" field="username" title="userinfo.username"/>
-				<s:Column width="80" field="employeeNumber" title="userinfo.employeeNumber"/>
-				<s:Column width="100" field="displayName" title="userinfo.displayName"/>
-				<s:Column width="100" field="department" title="userinfo.department"/>	
-				<s:Column width="100" field="jobTitle" title="userinfo.jobTitle"/>	
-				<s:Column width="50" field="gender" title="userinfo.gender" formatter="genderFormatter"/>	
-				<s:Column width="100" field="workEmail" title="userinfo.workEmail" />
-				<s:Column width="100" field="workPhoneNumber" title="userinfo.workPhoneNumber" />
-				<s:Column width="100" field="mobile" title="userinfo.mobile" />
-				<s:Column width="50" field="online" title="userinfo.online"  formatter="onlineFormatter"/>
-			</s:Grid>

+ 0 - 64
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/contact/details.jsp

@@ -1,64 +0,0 @@
-<%@ page   contentType="text/html; charset=UTF-8" import="java.util.Map,java.util.LinkedHashMap" %>
-<%@ page   import="org.maxkey.web.*"%>
-<%@ taglib prefix="c"		    uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="s" 	uri="http://www.connsec.com/tags" %>
-<%@ taglib prefix="spring"	    uri="http://www.springframework.org/tags" %>
-<script type="text/javascript">	
-$(function () {
-	$("#rqcodescanBtn").on("click",function(){
-		 if($("#rqcodescanBtn").hasClass("onscan")){
-		 	$("#nameCode").show();
-			$("#rqcodePicture").hide();
-			$("#rqcodescanBtn").removeClass("onscan");
-		 }else{
-		 	$("#nameCode").hide();
-			$("#rqcodePicture").show();
-		 	$("#rqcodescanBtn").addClass("onscan");
-		 }
-	});
-});
-</script>	
-<table style="width:600px;border:1px solid #e5e5e5;">
-	<tr>
-	
-		<td style="width:200px;">
-			<c:if test="${null==model.picture}">
-				<img id="picture" width="200px" height="200px" src="<c:url value="/images/uploadimage.jpg"/>" />
-			</c:if>
-			<c:if test="${null!=model.picture}">
-			<img id="picture" width="200px" height="200px" src="<c:url value="/image/${model.id}"/>" />
-			</c:if>
-			<br>
-			<input class="button"   id="rqcodescanBtn" type="button" value="<s:Locale code="access.security.contact.rqcode"/>" />
-		</td>
-		<td>
-			<img style="display:none" id="rqcodePicture" width="300px" height="300px" src="<c:url value="/image/${rqcode}"/>" />
-			<table id="nameCode" style="width:400px;">
-				<tr>
-					<td><s:Locale code="userinfo.displayName"/></td><td><input readonly type="text" title="" value="${model.displayName}"/></td>
-				</tr>
-				<tr>
-					<td><s:Locale code="userinfo.jobTitle"/></td><td><input readonly type="text" title="" value="${model.jobTitle}"/></td>
-				</tr>
-				<tr>
-					<td><s:Locale code="userinfo.department"/></td><td><input readonly type="text" title="" value="${model.department}"/></td>
-				</tr>
-				<tr>
-					<td><s:Locale code="userinfo.mobile"/></td><td><input readonly type="text" title="" value="${model.mobile}"/></td>
-				</tr>
-				<tr>
-					<td><s:Locale code="userinfo.email"/></td><td><input readonly type="text" title="" value="${model.email}"/></td>
-				</tr>
-				<tr>
-					<td><s:Locale code="userinfo.webSite"/></td><td><input readonly type="text"  title="" value="${model.webSite}"/></td>
-				</tr>
-				<tr>
-					<td><s:Locale code="userinfo.organization"/></td><td><input readonly type="text" title="" value="${model.organization}"/></td>
-				</tr>
-				<tr>
-					<td><s:Locale code="userinfo.workStreetAddress"/></td><td><input readonly type="text" title="" value="${model.workStreetAddress}"/></td>
-				</tr>
-			</table>		
-		</td>
-	</tr>
-	</table>

+ 90 - 62
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/layout/nav_primary.jsp

@@ -1,77 +1,105 @@
-<%@ page   language="java"     import="java.util.*"   pageEncoding="UTF-8"%>
-<%@ page   language="java"     import="org.maxkey.web.*" %>
-<%@ page   language="java"     import="org.maxkey.domain.*"%>
-<%@ page   language="java"     import="org.maxkey.domain.userinfo.*"%>
-<%@ taglib prefix="s"  uri="http://sso.maxkey.org/tags" %>
-<div id="nav_primay_content" class="menuprimary">
-<div class="menucontainer">
+<%@ page   language="java"     	import="java.util.*"   pageEncoding="UTF-8"%>
+<%@ page   language="java"     	import="org.maxkey.web.*" %>
+<%@ page   language="java"     	import="org.maxkey.domain.*"%>
+<%@ page   language="java"     	import="org.maxkey.domain.userinfo.*"%>
+<%@ taglib prefix="s"  			uri="http://sso.maxkey.org/tags" %>
+<div id="nav_primary" >
+<div id="nav_primary"  class="menuprimary">
 	<ul >
+		<li  id="nav_primay_10"  class="nav_primay_level primaryleft"  xpath="">
+			<a   href="<s:Base/>/appList">我的应用</a>
+		</li>
+		<li  id="nav_primay_11"  class="nav_primay_level primaryleft"  xpath="">
+			<a   href="<s:Base/>/appConfigList">应用配置</a>
+		</li>
+		<li  id="nav_primay_12"  class="nav_primay_level primaryleft"  xpath="">
+			<a   href="<s:Base/>/socialsignon/list">认证关联</a>
+		</li>
+		<li  id="nav_primay_13"  class="nav_primay_level primaryleft"  xpath="">
+			<a   href="<s:Base/>/safe/forward/setting">安全设置</a>
+			<div id="nav_child_1301"  class="nav_second_child">
+				<ul>
+					<li id="nav_second_1301" class="nav_second_level">
+						<a   href="<s:Base/>/safe/forward/setting">安全设置</a>
+					</li>
+				</ul>
+				<ul>
+					<li id="nav_second_1302" class="nav_second_level">
+						<a   href="<s:Base/>/safe/forward/changeAppLoginPasswod">应用登录密码</a>
+					</li>
+				</ul>
+				<ul>
+					<li id="nav_second_1303" class="nav_second_level">
+						<a   href="<s:Base/>/safe/otp/timebased">时间令牌</a>
+					</li>
+				</ul>
+			</div>
+		</li>
+		
+		<li  id="nav_primay_14"  class="nav_primay_level primaryleft"  xpath="">
+			<a  href="<s:Base/>/profile/forwardBasic">我的资料</a>
+			<div id="nav_child_1401"  class="nav_second_child">
+				<ul>
+					<li id="nav_second_1401" class="nav_second_level">
+						<a   href="<s:Base/>/profile/forwardBasic">基本资料</a>
+					</li>
+				</ul>
+				<ul>
+					<li id="nav_second_1402" class="nav_second_level">
+						<a   href="<s:Base/>/profile/forwardCompany">组织信息</a>
+					</li>
+				</ul>
+				<ul>
+					<li id="nav_second_1403" class="nav_second_level">
+						<a   href="<s:Base/>/profile/forwardHome">个人资料</a>
+					</li>
+				</ul>
+				<ul>
+					<li id="nav_second_1404" class="nav_second_level">
+						<a   href="<s:Base/>/profile/forwardExtra">扩展信息</a>
+					</li>
+				</ul>
+			</div>
+		</li>
+		<li  id="nav_primay_15"  class="nav_primay_level primaryleft"  xpath="">
+			<a   href="<s:Base/>/logs/loginHistoryList">日志审计</a>
+			<div id="nav_child_1501"  class="nav_second_child">
+				<ul>
+					<li id="nav_second_1501" class="nav_second_level">
+						<a   href="<s:Base/>/logs/loginHistoryList">登录日志</a>
+					</li>
+				</ul>
+				<ul>
+					<li id="nav_second_1502" class="nav_second_level">
+						<a   href="<s:Base/>/logs/loginAppHistoryList">访问日志</a>
+					</li>
+				</ul>
+				<ul>
+					<li id="nav_second_1503" class="nav_second_level">
+						<a   href="<s:Base/>/logs/list">操作日志</a>
+					</li>
+				</ul>
+			</div>
+		</li>
 <%
 	String menuId=request.getParameter("mnid")==null?"":request.getParameter("mnid").toString();
-String selectMenuId=menuId;
-if(WebContext.getNavigations()!=null){
-	List<Navigations> listNavs=WebContext.getNavigations();//100000000000 
-	StringBuffer navsStr=new StringBuffer("");
-	int navCount=0;
-	for (Navigations nav : listNavs){
-		if(nav.getpId().equals("110000000000")){
-			//bulid child menu
-			StringBuffer childNavStr=new StringBuffer("");
-			for (Navigations childNav : listNavs){
-				if(nav.getId().equals(childNav.getpId())){
-					if(menuId.equals(childNav.getId())){selectMenuId=nav.getId();}
-					String childNavName=WebContext.getI18nValue("navs."+childNav.getId());
-					if(childNavName == null){childNavName	=	childNav.getName();}
-					childNavStr.append("\n\t\t\t<li id='nav_second_").append(childNav.getId()).append("' ").append(" class='nav_second_level' ").append(" xpath='").append(childNav.getxPath()).append("'>");;
-					childNavStr.append("<a href='").append(request.getContextPath()).append("/").append(childNav.getUrl()).append("?mnid=").append(childNav.getId()).append("'>");
-					childNavStr.append(childNavName);
-					childNavStr.append("</a>");
-					childNavStr.append("</li>");	
-				}
-			}
-			//childNavStr.append("</ul>");
-			//end of child menu
-			//bulid primary menu
-			String navName=WebContext.getI18nValue("navs."+nav.getId());
-			if(navName == null){navName	=	nav.getName();}
-			navsStr.append("<li  id='nav_primay_").append(nav.getId());
-			if(navCount ++ ==0){
-				navsStr.append("' class='nav_primay_level primaryleft' ");
-			}else{
-				navsStr.append("' class='nav_primay_level' ");
-			}
-			navsStr.append(" xpath='").append(nav.getxPath()).append("'>");
-			navsStr.append("<a ").append((selectMenuId.equals(nav.getId())?"class='selected'":"")).append(" href='").append(request.getContextPath()).append("/").append(nav.getUrl()).append("?mnid=").append(nav.getId()).append("'>");
-			navsStr.append(navName);
-			navsStr.append("</a>");
-			//end of primary menu
-			//append child menu div
-			navsStr.append("\n\t<div id='nav_child_").append(nav.getId()).append("' class='nav_second_child'>");
-			navsStr.append("\n\t\t<ul>");
-			if(childNavStr.length()>10){
-				navsStr.append(childNavStr);
-			}
-			navsStr.append("</ul>");
-			navsStr.append("</div>\n");
-			
-			navsStr.append("</li>\n");	
-		}
-	}
-	out.println(navsStr);	
-}
 %>
-
 	</ul>
 </div>
 </div>
+<div id="nav_second"  style="clear: left"><div class='menusecond'></div><br style='clear: left' /></div>
 <script>
 	$(function(){
 		function displaySecondNavs(menuId){
-			$("#nav_second").html("<div class='menusecond'>"+$("#"+menuId+" .nav_second_child").html()+"</div><br style='clear: left' />");
+			if($("#"+menuId+" .nav_second_child").html()){
+				$("#nav_second").html("<div class='menusecond'>"+$("#"+menuId+" .nav_second_child").html()+"</div><br style='clear: left' />");
+			}else{
+				$("#nav_second").html("");
+			}
 		}
-		$("#nav_primay_content ul li").mouseover(function(){
+		$(".menuprimary ul li").mouseover(function(){
 			displaySecondNavs(this.id);
 		});
-		<%if(menuId.length()>5){%>displaySecondNavs("nav_primay_<%=selectMenuId%>");<%}%>
+		
 	});
 </script>

+ 5 - 1
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/layout/top.jsp

@@ -32,7 +32,11 @@
 						<img src='<s:Base/>/images/list_sel.png'  style="width=:31px;height:31px;border:0;">
 					</td>
 					<%} %>
-					
+					<td id="changepassword" nowrap>
+						<a  href="<s:Base/>/safe/forward/changePasswod">
+							<div  style="float:right;" >&nbsp;&nbsp;<s:Locale code="login.password.changepassword"/>&nbsp;&nbsp;</div>
+						</a>
+					</td>
 					<td id="manage" nowrap>
 						<a target="_blank"  href="<s:Base/>/authz/manage">
 							<div  style="float:right;" >&nbsp;&nbsp;<s:Locale code="global.text.manage"/>&nbsp;&nbsp;</div>

+ 2 - 2
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/login.jsp

@@ -217,11 +217,11 @@ $(function(){
 							<%}%>
 							<tr>
 								<td><s:Locale code="login.text.username"/>:</td>
-								<td><input type='text' id='j_username'  name='j_username' value="" tabindex="1"/></td>
+								<td><input type='text' id='j_username'  name='j_username' value="admin" tabindex="1"/></td>
 							</tr>
 							<tr>
 								<td><s:Locale code="login.text.password"/>:</td>
-								<td><input type='password' id='j_password'  name='j_password' value=""  tabindex="2"/></td>
+								<td><input type='password' id='j_password'  name='j_password' value="admin"  tabindex="2"/></td>
 							</tr>
 							<c:if test="${'true'==isCaptcha}"> 
 							<tr>

+ 13 - 5
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/main/appList.jsp

@@ -6,11 +6,17 @@
 <%@ taglib prefix="s" 		uri="http://sso.maxkey.org/tags" %>
 <%@ taglib prefix="c"       	uri="http://java.sun.com/jsp/jstl/core"  %>
 <%@ taglib prefix="fn"     	 	uri="http://java.sun.com/jsp/jstl/functions" %>
-
-<jsp:include page="../layout/header.jsp"></jsp:include>
-<jsp:include page="../layout/common.css.jsp"></jsp:include>
-<jsp:include page="../layout/common.js.jsp"></jsp:include>
+<!DOCTYPE HTML >
+<html>
+<head>
+	<jsp:include page="../layout/header.jsp"></jsp:include>
+	<jsp:include page="../layout/common.css.jsp"></jsp:include>
+	<jsp:include page="../layout/common.js.jsp"></jsp:include>
+</head>
+<body>
 <jsp:include page="../layout/top.jsp"></jsp:include>
+<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
+
 <%if(WebContext.getUserInfo().getGridList()==0) {%>
 <table  class="datatable">
 	<c:forEach begin="1" end="${(fn:length(appList)+4)/5}" var="num">
@@ -94,4 +100,6 @@
 <%} %>
 <div id="footer">
 	<jsp:include page="../layout/footer.jsp"></jsp:include>
-</div>
+</div>
+<body>
+</html>

+ 0 - 204
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/orgs/orgsList.jsp

@@ -1,204 +0,0 @@
-<%@ page   contentType="text/html; charset=UTF-8" import="java.util.Map,java.util.LinkedHashMap" %>
-<%@ page   import="org.maxkey.web.*"%>
-<%@ taglib prefix="c"		uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="spring"	uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="s" 	uri="http://www.connsec.com/tags" %>
-
-
-<script type="text/javascript">
-
-function onClick (event, treeId, treeNode) {
-	  $("#actionForm").clearForm();
-	  $("#actionForm").json2form({data:treeNode.data});
-	  $("#_method").val("put");
-	  $("#status").val("1");
-	  $(".select_t").selectCss();
-	 
-}
-	
-$(function () {
-	$("#addChildBtn").click(function(){
-		var nodes = $.fn.zTree.getZTreeObj("orgsTree").getSelectedNodes();
-		if (nodes.length == 0) {
-			$.alert({content:"<s:Locale code="system.menus.alert.select.pmenu" />"});
-			return;
-		}
-		$("#actionForm").clearForm();
-		$("#pId").val(nodes[0].data.id);
-	  	$("#pName").val(nodes[0].data.name);
-	  	$("#sortOrder").val(1);
-	  	$("#status").val("1");
-	    $("#_method").val("post");
-	});	
-	
-	
-	$("#saveBtn").click(function(){
-		if($("#_method").val()=="put"){
-			$("#actionForm").attr("action",'<c:url value="/orgs/update"/>');
-		}else{
-			$("#actionForm").attr("action",'<c:url value="/orgs/add"/>');
-		}
-		
-		var xpath =	$.fn.zTree.getZTreeObj("orgsTree").getNodeByParam("id",$("#pId").val()).data.xPath;
-		if(xpath=="<%=WebContext.getSystemNavRootId()%>"||xpath==undefined||xpath==""){
-				xpath ="/"+$("#id").val();
-			}else{
-				xpath = xpath+"/"+$("#id").val();
-			}
-			
-		
-			//alert(xpath);
-			$("#xPath").val(xpath);
-			if($("#_method").val()=="post"){
-				var node=$("#actionForm").serializeObject();
-				node.data=$("#actionForm").serializeObject();
-				delete node['url'];
-				$.fn.zTree.getZTreeObj("orgsTree").addNodes(
-					$.fn.zTree.getZTreeObj("orgsTree").getSelectedNodes()[0],node);
-			}else{
-				var node=$("#actionForm").serializeObject();
-				node.data=$("#actionForm").serializeObject();
-				node=$.extend( $.fn.zTree.getZTreeObj("orgsTree").getSelectedNodes()[0],node);
-				delete node['url'];
-				$.fn.zTree.getZTreeObj("orgsTree").updateNode(node);
-			}
-			$('#actionForm').submit(); 
-		});	
-		
-		
-		$("#deleteBtn").click(function(){
-			$.post('<c:url value="/orgs/delete"/>',{ id:$("#id").val(),_method:"delete"}, function(data) {
-				$.fn.zTree.getZTreeObj("orgsTree").removeNode($.fn.zTree.getZTreeObj("orgsTree").getSelectedNodes()[0]);
-  				$.alert({content:data.message});
-			});
-		});
-});
-</script>
-	 
-	     <!-- content -->  
- <table class="datatable"   width="100%" >
-   <tr>
-      <td valign="top"  class="td_1" style="vertical-align: top;">
-          <s:Tree rootId="<%=WebContext.getSystemNavRootId()%>" url="/orgs/tree" id="orgsTree" onClick="onClick"/>
-      </td>
-      <td  valign="top"  class="td_1" style="vertical-align: top;">
-         <div id="orgsTable" style="PADDING:0;MARGIN: 0;width:650px"></div>
-         <form  id="actionForm" action='<c:url value="/orgs/add"/>' method="post">
-         	<table>
-         		<tr>
-         			<td>
-						<ul class="switch_tab"  style="width:100%" >
-							<li id="switch_common" value="table_switch_common" style="width:49%" class="switch_tab_class switch_tab_current"><a href="javascript:void(0);"><s:Locale code="org.tab.basic" /></a></li>
-							<li id="switch_extra"  value="table_switch_extra" style="width:49%" class="switch_tab_class"><a href="javascript:void(0);"><s:Locale code="org.tab.extra" /></a></li>
-						</ul>
-					</td>
-         		</tr>
-         		<tr><td>
-         	<table id="table_switch_common"  class="datatable"  width="600px">
-               <tr style="display:none">
-                  <th ><input type="text" id="status" type="hidden" name="status"  value="1"/>
-                  <input type="text" id="_method" type="hidden" name="_method"  value="put"/></th>
-                  <td></td>
-               </tr>
-               <tr >
-                  <th ><s:Locale code="org.pid" />:</th>
-                  <td><span class="intspan"><input type="text" id="pId" name="pId" size="80" class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th  width="200px"><s:Locale code="org.pname" />:</th>
-                  <td><span class="intspan"><input type="text" id="pName" name="pName" size="80"   class="int"/></span></td>
-               </tr>
-               <tr >
-                  <th ><s:Locale code="org.id" />:</th>
-                  <td><span class="intspan"><input type="text" id="id" name="id" size="80"   class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.name" />:</th>
-                  <td><span class="intspan"><input type="text"  id="name" name="name"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.fullname" />:</th>
-                  <td><span class="intspan"><input type="text"  id="fullName" name="fullName"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.type" />:</th>
-                  <td><input type="text"  id="type" name="type"  size="80"  class="int"/></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.division" />:</th>
-                  <td><span class="intspan"><input type="text"  id="division" name="division"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th >
-                     <s:Locale code="common.text.sortorder" /> :
-                  </th>
-                  <td><span class="intspan"><input type="text"  id="sortOrder" name="sortOrder"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr  style="display:none">
-                  <th ><s:Locale code="org.xpath" /> :
-                  </th>
-                  <td><span class="intspan"><input type="text"  id="xPath" name="xPath" size="80"   class="int"/></span></td>
-               </tr>
-               
-               <tr>
-                  <th ><s:Locale code="common.text.description" />:</th>
-                  <td><span class="intspan"><input type="text"  id="description" name="description"  size="80"  class="int"/></span></td>
-               </tr>
-            </table>
-            <table id="table_switch_extra"  class="datatable"  width="600px" style="display:none">
-            	<tr>
-                  <th ><s:Locale code="org.contact" />:</th>
-                  <td><span class="intspan"><input type="text"  id="contact" name="contact"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th  width="200px"><s:Locale code="org.phone" />:</th>
-                  <td><span class="intspan"><input type="text"  id="phone" name="phone"  size="80"  class="int"/></span></td>
-               </tr>
-                <tr>
-                  <th ><s:Locale code="org.email" />:</th>
-                  <td><span class="intspan"><input type="text"  id="email" name="email"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.fax" />:</th>
-                  <td><span class="intspan"><input type="text"  id="fax" name="fax"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.country" />:</th>
-                  <td><span class="intspan"><input type="text"  id="country" name="country"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.region" />:</th>
-                  <td><span class="intspan"><input type="text"  id="region" name="region"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.locality" />:</th>
-                  <td><span class="intspan"><input type="text"  id="locality" name="locality"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.street" />:</th>
-                  <td><span class="intspan"><input type="text"  id="street" name="street"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.address" />:</th>
-                  <td><span class="intspan"><input type="text"  id="address" name="address"  size="80"  class="int"/></span></td>
-               </tr>
-               <tr>
-                  <th ><s:Locale code="org.postalcode" />:</th>
-                  <td><span class="intspan"><input type="text"  id="postalCode" name="postalCode"  size="80"  class="int"/></span></td>
-               </tr>
-            </table>
-         		</td></tr>
-         		<tr><td nowrap align="center">
-                              <input id="addChildBtn" class="button"   type="button" style="width:120px"  value="<s:Locale code="button.text.add" />"/>
-                          
-                              <input id="saveBtn" class="button"      type="button"   style="width:100px"  value="<s:Locale code="button.text.save" />"/>
-                           
-                              <input id="deleteBtn"  class="button"   type="button"   style="width:100px"  value="<s:Locale code="button.text.delete" />"/>
-                           
-         		</td></tr>
-         	</table>
-
-         </form>
-      </td>
-   </tr>
-</table>

+ 0 - 26
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/orgs/orgsSelect.jsp

@@ -1,26 +0,0 @@
-<%@ page   contentType="text/html; charset=UTF-8" import="java.util.Map,java.util.LinkedHashMap" %>
-<%@ page   import="org.maxkey.web.*"%>
-<%@ taglib prefix="c"		uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="spring"	uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="s" 	uri="http://www.connsec.com/tags" %>
-
-
-<script type="text/javascript">
-
-function onClick(event, treeId, treeNode) {
-	//alert(treeNode.name+"|"+treeNode.id);
-	$("#departmentId", window.parent.document).val(treeNode.id);
-	$("#department", window.parent.document).val(treeNode.name);
-	$.closeWindow();
- 			
-}
-</script>
-	 
-	     <!-- content -->  
-<table border="0" cellpadding="0" cellspacing="0"  width="100%" class="th_atleft">
-   <tr>
-      <td valign="top"  class="td_1" style="vertical-align: top;">
-         <s:Tree rootId="<%=WebContext.getSystemNavRootId()%>" url="/orgs/tree" id="tree" onClick="onClick"/>
-      </td>
-   </tr>
-</table>

+ 6 - 6
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/otp/counterBased.jsp

@@ -30,37 +30,37 @@
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.sharedSecret" />(BASE32) :</th>
+							<th><s:Locale code="login.counter.sharedSecret" />(BASE32) :</th>
 							<td>
 							<input readonly type="text" class="required" title="" value="${sharedSecret}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.sharedSecret" />(HEX) :</th>
+							<th><s:Locale code="login.counter.sharedSecret" />(HEX) :</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${hexSharedSecret}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.period" />:</th>
+							<th><s:Locale code="login.counter.period" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.period}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.digits" />:</th>
+							<th><s:Locale code="login.counter.digits" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.digits}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.crypto" />:</th>
+							<th><s:Locale code="login.counter.crypto" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.crypto}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.counter" />:</th>
+							<th><s:Locale code="login.counter.counter" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.counter}"/>
 							</td>

+ 6 - 6
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/otp/hotp.jsp

@@ -30,37 +30,37 @@
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.sharedSecret" />(BASE32) :</th>
+							<th><s:Locale code="login.hotp.sharedSecret" />(BASE32) :</th>
 							<td>
 							<input readonly type="text" class="required" title="" value="${sharedSecret}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.sharedSecret" />(HEX) :</th>
+							<th><s:Locale code="login.hotp.sharedSecret" />(HEX) :</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${hexSharedSecret}"/>
 							</td>
 						</tr>
 						<tr style="display:none">
-							<th><s:Locale code="access.security.otp.period" />:</th>
+							<th><s:Locale code="login.hotp.period" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.period}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.counter" />:</th>
+							<th><s:Locale code="login.hotp.counter" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.counter}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.digits" />:</th>
+							<th><s:Locale code="login.hotp.digits" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.digits}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.crypto" />:</th>
+							<th><s:Locale code="login.hotp.crypto" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.crypto}"/>
 							</td>

+ 23 - 8
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/otp/timeBased.jsp

@@ -3,6 +3,16 @@
 <%@ taglib prefix="fmt"     uri="http://java.sun.com/jsp/jstl/fmt"%>
 <%@ taglib prefix="s" 		uri="http://sso.maxkey.org/tags" %>
 <%@ taglib prefix="c"       	uri="http://java.sun.com/jsp/jstl/core"  %>
+<!DOCTYPE HTML >
+<html>
+<head>
+	<jsp:include page="../layout/header.jsp"></jsp:include>
+	<jsp:include page="../layout/common.css.jsp"></jsp:include>
+	<jsp:include page="../layout/common.js.jsp"></jsp:include>
+</head>
+<body>
+<jsp:include page="../layout/top.jsp"></jsp:include>
+<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
 
 <table width="100%">
   <tr>
@@ -10,7 +20,7 @@
 	  <table  class="datatable" >
 			<tbody>
 			<tr>
-				<td colspan="2">TimeBased One Time Password</td>
+				<td colspan="2"><s:Locale code="login.totp.title" /></td>
 			</tr>
 			<tr>
 				<td> <img id="captchaimg" src="<c:url value="/image/${id}"/>" /></td>
@@ -30,31 +40,31 @@
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.sharedSecret" />(BASE32) :</th>
+							<th><s:Locale code="login.totp.sharedSecret" />(BASE32) :</th>
 							<td>
 							<input readonly type="text" class="required" title="" value="${sharedSecret}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.sharedSecret" />(HEX) :</th>
+							<th><s:Locale code="login.totp.sharedSecret" />(HEX) :</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${hexSharedSecret}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.period" />:</th>
+							<th><s:Locale code="login.totp.period" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.period}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.digits" />:</th>
+							<th><s:Locale code="login.totp.digits" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.digits}"/>
 							</td>
 						</tr>
 						<tr>
-							<th><s:Locale code="access.security.otp.crypto" />:</th>
+							<th><s:Locale code="login.totp.crypto" />:</th>
 							<td>
 								<input readonly type="text" class="required" title="" value="${format.crypto}"/>
 							</td>
@@ -62,7 +72,7 @@
 						
 						<tr>
 							<td colspan="2"  class="center">
-					    		<input class="button forward" style="width:100px" wurl="<c:url value="/otp/gen/timebased"/>"  type="button"    id="forward" value="<s:Locale code="button.text.save" />"/>
+					    		<input class="button forward" style="width:100px" wurl="<c:url value="/safe/otp/gen/timebased"/>"  type="button"    id="forward" value="<s:Locale code="login.totp.generate" />"/>
 								
 							</td>
 						</tr>
@@ -73,4 +83,9 @@
 	  </table>
 </td>
   </tr>
-</table>
+</table>
+<div id="footer">
+	<jsp:include page="../layout/footer.jsp"></jsp:include>
+</div>
+<body>
+</html>

+ 21 - 6
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/changeAppLoginPasswod.jsp

@@ -1,7 +1,17 @@
 <%@ page   language="java"  import="java.util.*"   pageEncoding="UTF-8"%>
 <%@ taglib prefix="spring"  uri="http://www.springframework.org/tags" %>
 <%@ taglib prefix="fmt"     uri="http://java.sun.com/jsp/jstl/fmt"%>
-<%@ taglib 	prefix="s" 		uri="hhttp://sso.maxkey.org/tags" %>
+<%@ taglib 	prefix="s" 		uri="http://sso.maxkey.org/tags" %>
+<!DOCTYPE HTML >
+<html>
+<head>
+	<jsp:include page="../layout/header.jsp"></jsp:include>
+	<jsp:include page="../layout/common.css.jsp"></jsp:include>
+	<jsp:include page="../layout/common.js.jsp"></jsp:include>
+</head>
+<body>
+<jsp:include page="../layout/top.jsp"></jsp:include>
+<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
 
 <table width="100%">
   <tr>
@@ -12,7 +22,7 @@
 	  <table   class="datatable" >
 			<tbody>
 			<tr>
-				<th  colspan="2"><s:Locale code="access.security.applogin.protectionSetting" /></th>
+				<th  colspan="2"><s:Locale code="login.password.applogin.changepassword" /></th>
 			</tr>
 			<tr>
 				<th><s:Locale code="userinfo.displayName" /> :</th>
@@ -29,7 +39,7 @@
 				</td>
 			</tr>
 			<tr>
-				<th><s:Locale code="access.security.oldPassword" /> :</th>
+				<th><s:Locale code="login.password.oldPassword" /> :</th>
 				<td>
 					<input type="password" id="oldPassword" name="oldPassword" class="required" title="" value=""/>
 					<b class="orange">*</b>
@@ -37,7 +47,7 @@
 				</td>
 			</tr>
 			<tr>
-				<th><s:Locale code="access.security.newPassword" />:</th>
+				<th><s:Locale code="login.password.newPassword" />:</th>
 				<td>
 					<input type="password" id="newPassword" name="newPassword" class=" required" title="" value=""/>
 					<b class="orange">*</b>
@@ -45,7 +55,7 @@
 				</td>
 			</tr>
 			<tr>
-				<th><s:Locale code="access.security.confirmPassword" />:</th>
+				<th><s:Locale code="login.password.confirmPassword" />:</th>
 				<td nowrap>
 					<input type="password" id="confirmPassword" name="confirmPassword" class="{ required: true, equalTo: '#newPassword' }" title="" value=""/>
 					<b class="orange">*</b>
@@ -64,4 +74,9 @@
 </form>
 </td>
   </tr>
-</table>
+</table>
+<div id="footer">
+	<jsp:include page="../layout/footer.jsp"></jsp:include>
+</div>
+<body>
+</html>

+ 20 - 5
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/changePassword.jsp

@@ -2,6 +2,16 @@
 <%@ taglib prefix="spring"  uri="http://www.springframework.org/tags" %>
 <%@ taglib prefix="fmt"     uri="http://java.sun.com/jsp/jstl/fmt"%>
 <%@ taglib 	prefix="s" 		uri="http://sso.maxkey.org/tags" %>
+<!DOCTYPE HTML >
+<html>
+<head>
+	<jsp:include page="../layout/header.jsp"></jsp:include>
+	<jsp:include page="../layout/common.css.jsp"></jsp:include>
+	<jsp:include page="../layout/common.js.jsp"></jsp:include>
+</head>
+<body>
+<jsp:include page="../layout/top.jsp"></jsp:include>
+<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
 
 <table width="100%">
   <tr>
@@ -12,7 +22,7 @@
 	  <table   class="datatable" >
 			<tbody>
 			<tr>
-				<th  colspan="2"><s:Locale code="access.security.loginpassword.setting" /></th>
+				<th  colspan="2"><s:Locale code="login.password.changepassword" /></th>
 			</tr>
 			<tr>
 				<th><s:Locale code="userinfo.displayName" /> :</th>
@@ -29,7 +39,7 @@
 				</td>
 			</tr>
 			<tr>
-				<th><s:Locale code="access.security.oldPassword" /> :</th>
+				<th><s:Locale code="login.password.oldPassword" /> :</th>
 				<td>
 					<input type="password" id="oldPassword" name="oldPassword" class="required" title="" value=""/>
 					<b class="orange">*</b>
@@ -37,7 +47,7 @@
 				</td>
 			</tr>
 			<tr>
-				<th><s:Locale code="access.security.newPassword" />:</th>
+				<th><s:Locale code="login.password.newPassword" />:</th>
 				<td>
 					<input type="password" id="newPassword" name="newPassword" class=" required" title="" value=""/>
 					<b class="orange">*</b>
@@ -45,7 +55,7 @@
 				</td>
 			</tr>
 			<tr>
-				<th><s:Locale code="access.security.confirmPassword" />:</th>
+				<th><s:Locale code="login.password.confirmPassword" />:</th>
 				<td nowrap>
 					<input type="password" id="confirmPassword" name="confirmPassword" class="{ required: true, equalTo: '#newPassword' }" title="" value=""/>
 					<b class="orange">*</b>
@@ -64,4 +74,9 @@
 </form>
 </td>
   </tr>
-</table>
+</table>
+<div id="footer">
+	<jsp:include page="../layout/footer.jsp"></jsp:include>
+</div>
+<body>
+</html>

+ 0 - 57
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/email.jsp

@@ -1,57 +0,0 @@
-<%@ page   language="java"  import="java.util.*"   pageEncoding="UTF-8"%>
-<%@ taglib prefix="spring"  uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="fmt"     uri="http://java.sun.com/jsp/jstl/fmt"%>
-<%@ taglib 	prefix="s" 		uri="http://sso.maxkey.org/tags" %>
-
-<table width="100%">
-  <tr>
-    <td>
-
-<form id="actionForm"  method="post" type="label" autoclose="true"  action="<s:Base/>/safe/email"> 
-
-	  <table   class="datatable">
-			<tbody>
-			<tr>
-				<th  colspan="2"><s:Locale code="access.security.email.setting" /></th>
-			</tr>
-			<tr>
-				<th><s:Locale code="userinfo.displayName" /> :</th>
-				<td>
-					<input readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
-					
-				</td>
-			</tr>
-			<tr>
-				<th><s:Locale code="userinfo.username" /> :</th>
-				<td>
-					<input readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
-					
-				</td>
-			</tr>
-			<tr>
-				<th><s:Locale code="userinfo.email" /> :</th>
-				<td>
-					<input type="text" id="email" name="email" class="required" title="" value="${model.email}"/>
-					<label for="eamil"></label>
-				</td>
-			</tr>
-			<tr style="display:none;">
-				<th>Verify Code :</th>
-				<td>
-					<input type="text" id="verify" name="verify" class="required" title="" value="Verify"  style="width:200px" /><input class="button" style="width:100px"  type="button"    id="getVerifyBtn" value="get Verify"/>
-					<label for="verify"></label>
-				</td>
-			</tr>
-			<tr>
-				<td colspan="2"  class="center">
-					<input id="_method" type="hidden" name="_method"  value="post"/>
-		    		<input class="button" style="width:100px"  type="button"    id="submitBtn" value="<s:Locale code="button.text.save" />"/>
-					
-				</td>
-			</tr>
-		</tbody>
-	  </table>
-</form>
-</td>
-  </tr>
-</table>

+ 0 - 58
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/mobile.jsp

@@ -1,58 +0,0 @@
-<%@ page   language="java"  import="java.util.*"   pageEncoding="UTF-8"%>
-<%@ taglib prefix="spring"  uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="fmt"     uri="http://java.sun.com/jsp/jstl/fmt"%>
-<%@ taglib 	prefix="s" 		uri="http://sso.maxkey.org/tags" %>
-
-<table width="100%">
-  <tr>
-    <td>
-
-<form id="actionForm"  method="post" type="label" autoclose="true"  action="<s:Base/>/safe/mobile"> 
-
-	  <table  class="datatable" >
-			<tbody>
-			<tr>
-				<th  colspan="2"><s:Locale code="access.security.mobile.setting" /></th>
-			</tr>
-			<tr>
-				<th><s:Locale code="userinfo.displayName" /> :</th>
-				<td>
-					<input readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
-					
-				</td>
-			</tr>
-			<tr>
-				<th><s:Locale code="userinfo.username" /> :</th>
-				<td>
-					<input readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
-					
-				</td>
-			</tr>
-			
-			<tr>
-				<th><s:Locale code="userinfo.mobile" /> :</th>
-				<td>
-					<input type="text" id="mobile" name="mobile" class=" required" title="" value="${model.mobile}"/>
-					<label for="mobile"></label>
-				</td>
-			</tr>
-			<tr style="display:none;">
-				<th>Verify Code :</th>
-				<td>
-					<input type="text" id="verify" name="verify" class="required" title="" value="1"  style="width:200px" /><input class="button" style="width:100px"  type="button"    id="getVerifyBtn" value="get Verify"/>
-					<label for="verify"></label>
-				</td>
-			</tr>
-			<tr>
-				<td colspan="2"  class="center">
-					<input id="_method" type="hidden" name="_method"  value="post"/>
-		    		<input class="button" style="width:100px"  type="button"    id="submitBtn" value="<s:Locale code="button.text.save" />"/>
-					
-				</td>
-			</tr>
-		</tbody>
-	  </table>
-</form>
-</td>
-  </tr>
-</table>

+ 0 - 79
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/question.jsp

@@ -1,79 +0,0 @@
-<%@ page    language="java"  	import="java.util.*"   pageEncoding="UTF-8"%>
-<%@ taglib  prefix="spring"  	uri="http://www.springframework.org/tags" %>
-<%@ taglib  prefix="fmt"     	uri="http://java.sun.com/jsp/jstl/fmt"%>
-<%@ taglib 	prefix="s" 			uri="http://sso.maxkey.org/tags" %>
-<%@ taglib  prefix="c"       	uri="http://java.sun.com/jsp/jstl/core"  %>
-<table width="100%">
-  <tr>
-    <td>
-
-<form id="actionForm"  method="post" type="label" autoclose="true"  action="<s:Base/>/safe/question"> 
-	<input type="hidden" id="id" name="id"  title="" value="${model.id}"/>
-	  <table   class="datatable">
-			<tbody>
-			<tr>
-				<th  colspan="2"><s:Locale code="access.security.question.setting" /></th>
-			</tr>
-			<tr>
-				<th><s:Locale code="userinfo.displayName" /> :</th>
-				<td>
-					<input readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
-					
-				</td>
-			</tr>
-			<tr>
-				<th><s:Locale code="userinfo.username" /> :</th>
-				<td>
-					<input readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
-					
-				</td>
-			</tr>
-			<tr>
-				<th><s:Locale code="access.security.question.passwordQuestion" /> :</th>
-				<td>
-					<select name="passwordQuestion" id="passwordQuestion">
-						<option value="0"  <c:if test="${0==model.passwordQuestion}">selected</c:if>  >请选择密保问题</option>
-						<option value="1"  <c:if test="${1==model.passwordQuestion}">selected</c:if>  >我第一份工作做什么?</option>
-						<option value="2"  <c:if test="${2==model.passwordQuestion}">selected</c:if>  >我妈妈的姓名是?</option>
-						<option value="3"  <c:if test="${3==model.passwordQuestion}">selected</c:if>  >我妈妈的生日?</option>
-						<option value="4"  <c:if test="${4==model.passwordQuestion}">selected</c:if>  >我父亲的姓名是?</option>
-						<option value="5"  <c:if test="${5==model.passwordQuestion}">selected</c:if>  >我父亲的生日?</option>
-						<option value="6"  <c:if test="${6==model.passwordQuestion}">selected</c:if>  >我最爱的人的名字?</option>
-						<option value="7"  <c:if test="${7==model.passwordQuestion}">selected</c:if>  >我最爱的人的生日是?</option>
-						<option value="8"  <c:if test="${8==model.passwordQuestion}">selected</c:if>  >我最爱的电影?</option>
-						<option value="9"  <c:if test="${9==model.passwordQuestion}">selected</c:if>  >我最喜欢的歌曲?</option>
-						<option value="10" <c:if test="${10==model.passwordQuestion}">selected</c:if> >我最喜欢的食物?</option>	
-						<option value="11" <c:if test="${11==model.passwordQuestion}">selected</c:if> >我最喜欢的休闲运动是什么?</option>
-						<option value="12" <c:if test="${12==model.passwordQuestion}">selected</c:if> >我最喜欢的运动员是谁?</option>
-						<option value="13" <c:if test="${13==model.passwordQuestion}">selected</c:if> >我第一所学校是?</option>
-						<option value="14" <c:if test="${14==model.passwordQuestion}">selected</c:if> >我的学号(或工号)是?</option>
-						<option value="15" <c:if test="${15==model.passwordQuestion}">selected</c:if> >我小学班主任的名字是?</option>
-						<option value="16" <c:if test="${16==model.passwordQuestion}">selected</c:if> >我初中班主任的名字是?</option>
-						<option value="17" <c:if test="${17==model.passwordQuestion}">selected</c:if> >我高中班主任的名字是?</option>
-						<option value="18" <c:if test="${18==model.passwordQuestion}">selected</c:if> >我最熟悉的童年好友名字是?</option>
-						<option value="19" <c:if test="${19==model.passwordQuestion}">selected</c:if> >我最熟悉的学校宿舍室友名字是?</option>
-						<option value="20" <c:if test="${20==model.passwordQuestion}">selected</c:if> >对我影响最大的人名字是?</option>
-					</select>
-				</td>
-			</tr>
-			<tr>
-				<th><s:Locale code="access.security.question.passwordAnswer" />:</th>
-				<td>
-					<input type="text" id="passwordAnswer" name="passwordAnswer" class=" required" title="" value="${model.passwordAnswer}"/>
-					<b class="orange">*</b>
-					<label for="newPassword"></label>
-				</td>
-			</tr>
-			<tr>
-				<td colspan="2"  class="center">
-					<input id="_method" type="hidden" name="_method"  value="post"/>
-		    		<input class="button" style="width:100px"  type="button"    id="submitBtn" value="<s:Locale code="button.text.save" />"/>
-					
-				</td>
-			</tr>
-		</tbody>
-	  </table>
-</form>
-</td>
-  </tr>
-</table>

+ 62 - 14
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/safe/setting.jsp

@@ -3,6 +3,16 @@
 <%@ taglib  prefix="fmt"     uri="http://java.sun.com/jsp/jstl/fmt"%>
 <%@ taglib 	prefix="s" 		 uri="http://sso.maxkey.org/tags" %>
 <%@ taglib  prefix="c"       uri="http://java.sun.com/jsp/jstl/core"  %>
+<!DOCTYPE HTML >
+<html>
+<head>
+	<jsp:include page="../layout/header.jsp"></jsp:include>
+	<jsp:include page="../layout/common.css.jsp"></jsp:include>
+	<jsp:include page="../layout/common.js.jsp"></jsp:include>
+</head>
+<body>
+<jsp:include page="../layout/top.jsp"></jsp:include>
+<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
 
 <table width="100%">
   <tr>
@@ -13,7 +23,7 @@
 	  <table  class="datatable" >
 			<tbody>
 			<tr>
-				<th  colspan="2"><s:Locale code="access.security.authnSetting" /></th>
+				<th  colspan="2">authnSetting</th>
 			</tr>
 			<tr>
 				<th><s:Locale code="userinfo.displayName" /> :</th>
@@ -30,23 +40,56 @@
 				</td>
 			</tr>
 			<tr>
-				<th><s:Locale code="access.security.authnType" />:</th>
+				<th><s:Locale code="userinfo.authnType" />:</th>
 				<td nowrap>
 					<select name="authnType" id="authnType">
 						<option value="1"  <c:if test="${0==model.authnType}">selected</c:if>  ><s:Locale code="button.text.select" /></option>
-						<option value="1"  <c:if test="${1==model.authnType}">selected</c:if>  ><s:Locale code="access.security.authnType.1" /></option>
-						<option value="2"  <c:if test="${2==model.authnType}">selected</c:if>  ><s:Locale code="access.security.authnType.2" /></option>
-						<option value="3"  <c:if test="${3==model.authnType}">selected</c:if>  ><s:Locale code="access.security.authnType.3" /></option>
-						<option value="4"  <c:if test="${4==model.authnType}">selected</c:if>  ><s:Locale code="access.security.authnType.4" /></option>
-						<option value="5"  <c:if test="${5==model.authnType}">selected</c:if>  ><s:Locale code="access.security.authnType.5" /></option>
-						<option value="6"  <c:if test="${6==model.authnType}">selected</c:if>  ><s:Locale code="access.security.authnType.6" /></option>
-						<option value="7"  <c:if test="${7==model.authnType}">selected</c:if>  ><s:Locale code="access.security.authnType.7" /></option>
-						<option value="8"  <c:if test="${8==model.authnType}">selected</c:if>  ><s:Locale code="access.security.authnType.8" /></option>
-						<option value="9"  <c:if test="${9==model.authnType}">selected</c:if>  ><s:Locale code="access.security.authnType.9" /></option>
-						<option value="10"  <c:if test="${10==model.authnType}">selected</c:if>  ><s:Locale code="access.security.authnType.10" /></option>
+						<option value="1"  <c:if test="${1==model.authnType}">selected</c:if>  ><s:Locale code="userinfo.authnType.authnType.1" /></option>
+						<!-- 
+						<option value="2"  <c:if test="${2==model.authnType}">selected</c:if>  ><s:Locale code="userinfo.authnType.authnType.2" /></option>
+						 -->
+						<option value="3"  <c:if test="${3==model.authnType}">selected</c:if>  ><s:Locale code="userinfo.authnType.authnType.3" /></option>
+						<option value="4"  <c:if test="${4==model.authnType}">selected</c:if>  ><s:Locale code="userinfo.authnType.authnType.4" /></option>
+						<option value="5"  <c:if test="${5==model.authnType}">selected</c:if>  ><s:Locale code="userinfo.authnType.authnType.5" /></option>
+						<!-- 
+						<option value="6"  <c:if test="${6==model.authnType}">selected</c:if>  ><s:Locale code="userinfo.authnType.authnType.6" /></option>
+						<option value="7"  <c:if test="${7==model.authnType}">selected</c:if>  ><s:Locale code="userinfo.authnType.authnType.7" /></option>
+						
+						<option value="8"  <c:if test="${8==model.authnType}">selected</c:if>  ><s:Locale code="userinfo.authnType.authnType.8" /></option>
+						<option value="9"  <c:if test="${9==model.authnType}">selected</c:if>  ><s:Locale code="userinfo.authnType.authnType.9" /></option>
+						<option value="10"  <c:if test="${10==model.authnType}">selected</c:if>  ><s:Locale code="userinfo.authnType.authnType.10" /></option>
+						 -->
 					</select>
 				</td>
-			</tr>		
+			</tr>	
+			<tr>
+				<th><s:Locale code="userinfo.mobile" /> :</th>
+				<td>
+					<input type="text" id="mobile" name="mobile" class=" required" title="" value="${model.mobile}"/>
+					<label for="mobile"></label>
+				</td>
+			</tr>
+			<tr style="display:none;">
+				<th>Verify Code :</th>
+				<td>
+					<input type="text" id="mobileVerify" name="mobileVerify" class="required" title="" value="1"  style="width:200px" /><input class="button" style="width:100px"  type="button"    id="getMobileVerifyBtn" value="get Verify"/>
+					<label for="verify"></label>
+				</td>
+			</tr>
+			<tr>
+				<th><s:Locale code="userinfo.email" /> :</th>
+				<td>
+					<input type="text" id="email" name="email" class="required" title="" value="${model.email}"/>
+					<label for="eamil"></label>
+				</td>
+			</tr>
+			<tr style="display:none;">
+				<th>Verify Code :</th>
+				<td>
+					<input type="text" id="emailVerify" name="emailVerify" class="required" title="" value="Verify"  style="width:200px" /><input class="button" style="width:100px"  type="button"    id="getEmailVerifyBtn" value="get Verify"/>
+					<label for="verify"></label>
+				</td>
+			</tr>	
 			<tr>
 				<td colspan="2"  class="center">
 					<input id="_method" type="hidden" name="_method"  value="post"/>
@@ -59,4 +102,9 @@
 </form>
 </td>
   </tr>
-</table>
+</table>
+<div id="footer">
+	<jsp:include page="../layout/footer.jsp"></jsp:include>
+</div>
+<body>
+</html>

+ 23 - 7
maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/views/social/socialSignOnProvider.jsp

@@ -6,6 +6,17 @@
 <%@ taglib 	prefix="s" 		uri="http://sso.maxkey.org/tags" %>
 <%@ taglib prefix="c"       	uri="http://java.sun.com/jsp/jstl/core"  %>
 <%@ taglib prefix="fn"     	 	uri="http://java.sun.com/jsp/jstl/functions" %>
+<!DOCTYPE HTML >
+<html>
+<head>
+	<jsp:include page="../layout/header.jsp"></jsp:include>
+	<jsp:include page="../layout/common.css.jsp"></jsp:include>
+	<jsp:include page="../layout/common.js.jsp"></jsp:include>
+</head>
+<body>
+<jsp:include page="../layout/top.jsp"></jsp:include>
+<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
+
 <%if(WebContext.getUserInfo().getGridList()==0) {%>
 <table  class="datatable">
 	<c:forEach begin="1" end="${(fn:length(listSocialSignOnProvider)+3)/4}" var="num">
@@ -19,10 +30,10 @@
 	  				</td></tr>
 	  				<tr><td  style="text-align: center;border-spacing: 0;border-collapse: collapse;border: 0px;">${socialSignOnProvider.providerName}<div>
 	  					<c:if test="${false==socialSignOnProvider.userBind}">
-	  						<a  href="<s:Base/>/logon/oauth20/bind/${socialSignOnProvider.provider}"><s:Locale code="access.security.social.authnLink.link" /></a>
+	  						<a  href="<s:Base/>/logon/oauth20/bind/${socialSignOnProvider.provider}"><s:Locale code="login.social.link" /></a>
 						</c:if>
 						<c:if test="${true==socialSignOnProvider.userBind}">
-	  						<a  href="<s:Base/>/logon/oauth20//unbind/${socialSignOnProvider.provider}"><s:Locale code="access.security.social.authnLink.unlink" /></a>
+	  						<a  href="<s:Base/>/logon/oauth20//unbind/${socialSignOnProvider.provider}"><s:Locale code="login.social.unlink" /></a>
 	  					</c:if>
 	  				</div></td></tr>
 	  				</table>
@@ -37,9 +48,9 @@
 <table  class="datatable">
 	<tr>
 			<td>
-				<s:Locale code="access.security.social.icon"/>
+				<s:Locale code="login.social.icon"/>
 			</td>
-			<td><s:Locale code="access.security.social.providerName"/></td>
+			<td><s:Locale code="login.social.provider"/></td>
 			<td><s:Locale code="button.text.action"/></td>
 		</tr>
 	<c:forEach items="${listSocialSignOnProvider}" var="socialSignOnProvider">
@@ -51,14 +62,19 @@
 			<td  style="text-align: center;">${socialSignOnProvider.providerName}</td>
 			<td  style="text-align: center;">
 				<c:if test="${false==socialSignOnProvider.userBind}">
- 						<a  href="<s:Base/>/logon/oauth20/bind/${socialSignOnProvider.provider}"><s:Locale code="access.security.social.authnLink.link" /></a>
+ 						<a  href="<s:Base/>/logon/oauth20/bind/${socialSignOnProvider.provider}"><s:Locale code="login.social.link" /></a>
 				</c:if>
 				<c:if test="${true==socialSignOnProvider.userBind}">
- 						<a  href="<s:Base/>/logon/oauth20//unbind/${socialSignOnProvider.provider}"><s:Locale code="access.security.social.authnLink.unlink" /></a>
+ 						<a  href="<s:Base/>/logon/oauth20//unbind/${socialSignOnProvider.provider}"><s:Locale code="login.social.unlink" /></a>
  				</c:if>
 			</td>
 		</tr>
 	</c:if>
 	</c:forEach>
 </table>
-<%} %>
+<%} %>
+<div id="footer">
+	<jsp:include page="../layout/footer.jsp"></jsp:include>
+</div>
+<body>
+</html>

+ 7 - 1
maxkey-webs/maxkey-web-maxkey/src/main/webapp/css/base.css

@@ -189,7 +189,13 @@ button,input{
 	font-weight: bold;	
 }
 
-#manage a,#logout a{
+#changepassword{
+	width: 65px;
+	background-color: #f28018;
+	font-weight: bold;	
+}
+
+#manage a,#logout a,#changepassword a{
 	  color: #fff;
 }
 

+ 0 - 1
maxkey-webs/maxkey-web-maxkey/src/main/webapp/css/menu.css

@@ -1,6 +1,5 @@
 .menuprimary {
 	font: bold 12px Verdana;
-	/*background: #414141; background of menu bar (default state)*/
 	width: 990px;
 	margin: auto;
 	height: 41px;