Crystal.Sea 3 年之前
父節點
當前提交
75f117d8be

+ 7 - 5
ReleaseNotes.txt

@@ -14,11 +14,13 @@
     *(MAXKEY-210813) 管理端图标显示修复
     *(MAXKEY-210814) 管理端‘应用管理’移动到‘配置管理’的菜单项
     *(MAXKEY-210815) OAuth的数据库加载增加本地缓存
-	*(MAXKEY-210816) 社交账号登录改为存储在数据库中,方便用户更改
-	*(MAXKEY-210817) 账号策略管理及动态适配
-	*(MAXKEY-210818) 社交账号登录过程优化
-	*(MAXKEY-210819) 调整了机构显示树的样式
-    *(MAXKEY-210820) 依赖jar引用、更新和升级
+    *(MAXKEY-210816) 社交账号登录改为存储在数据库中,方便用户更改
+    *(MAXKEY-210817) 账号策略管理及动态适配
+    *(MAXKEY-210818) 社交账号登录过程优化
+    *(MAXKEY-210819) 调整了机构显示树的样式
+    *(MAXKEY-210820) 企业微信扫码登录js更新wwLogin-1.2.4.js
+    *(MAXKEY-210821) 中文切换调整为下拉菜单
+    *(MAXKEY-210822) 依赖jar引用、更新和升级
          mybatis-jpa-extra   2.6
          druid               1.2.8
          caffeine            2.9.2

+ 9 - 7
maxkey-authentications/maxkey-authentication-social/src/main/java/org/maxkey/authn/support/socialsignon/AbstractSocialSignOnEndpoint.java

@@ -113,8 +113,8 @@ public class AbstractSocialSignOnEndpoint {
                 authCallback.getOauth_token(),
                 authCallback.getAuthorization_code(),
                 authCallback.getOauth_verifier());
-        _logger.debug("Callback state {} ", 
-                    authCallback.getState()
+        _logger.debug("Callback state {} , sessionId {}", 
+                    authCallback.getState(),WebContext.getRequest().getSession().getId()
                 );
         
  		authRequest=(AuthRequest)WebContext.getAttribute(SOCIALSIGNON_OAUTH_SERVICE_SESSION);
@@ -124,13 +124,15 @@ public class AbstractSocialSignOnEndpoint {
   		WebContext.removeAttribute(SOCIALSIGNON_PROVIDER_SESSION);
 
   		if(authRequest == null) {//if authRequest is null renew one
-  		    authRequest=socialSignOnProviderService.getAuthRequest(provider,applicationConfig);
-  		    if(authCallback.getState() != null) {
-  		        authRequest.authorize(authCallback.getState());
-            }
-  		  _logger.debug("session authRequest is null , renew one");
+  		    authRequest=socialSignOnProviderService.getAuthRequest(provider,applicationConfig);  		    
+  		    _logger.debug("session authRequest is null , renew one");
   		}
   		
+  		//State time out, re set
+  		if(authCallback.getState() != null) {
+            authRequest.authorize(WebContext.getRequest().getSession().getId());
+        }
+  		
   		AuthResponse<?> authResponse=authRequest.login(authCallback);
   		_logger.debug("Response  : " + authResponse.getData());
   		accountId=socialSignOnProviderService.getAccountId(provider, authResponse);

+ 13 - 4
maxkey-authentications/maxkey-authentication-social/src/main/java/org/maxkey/authn/support/socialsignon/SocialSignOnEndpoint.java

@@ -115,11 +115,20 @@ public class SocialSignOnEndpoint  extends AbstractSocialSignOnEndpoint{
 	    }
 	    String state = request.getSession().getId();
 	    authRequest.authorize(state);
+	    
 		SocialsProvider socialSignOnProvider = socialSignOnProviderService.get(provider);
-		socialSignOnProvider.setState(state);
-		socialSignOnProvider.setRedirectUri(applicationConfig.getServerPrefix()+ 
-		                                    "/logon/oauth20/callback/"+provider);
-		return socialSignOnProvider;
+		SocialsProvider scanQRCodeProvider = new SocialsProvider();
+		
+		scanQRCodeProvider.setId(socialSignOnProvider.getId());
+		scanQRCodeProvider.setProvider(socialSignOnProvider.getProvider());
+		scanQRCodeProvider.setProviderName(socialSignOnProvider.getProviderName());
+		scanQRCodeProvider.setState(state);
+		scanQRCodeProvider.setClientId(socialSignOnProvider.getClientId());
+		scanQRCodeProvider.setRedirectUri(applicationConfig.getServerPrefix()+ 
+                "/logon/oauth20/callback/"+provider);
+		scanQRCodeProvider.setAgentId(socialSignOnProvider.getAgentId());
+		
+		return scanQRCodeProvider;
 	}
 	
 	

+ 1 - 0
maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message.properties

@@ -3,6 +3,7 @@ global.application=Max<span style="color: #FFD700;">Key</span>\u7edf\u4e00\u8ba4
 global.change.language=\u8bed\u8a00\u9009\u62e9
 global.change.language.en=English
 global.change.language.zh=\u4e2d\u6587
+global.language=\u4e2d\u6587
 global.text.welcome=\u6b22\u8fce\u60a8
 global.text.manage=\u7ba1\u7406
 global.text.copyright=\u7248\u6743\u6240\u6709

+ 1 - 0
maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message_en.properties

@@ -3,6 +3,7 @@ global.application=Max<span style="color: #FFD700;">Key</span> Single sign-on Sy
 global.change.language=Language
 global.change.language.en=English
 global.change.language.zh=\u4e2d\u6587
+global.language=English
 global.text.welcome=Welcome
 global.text.manage=Manage
 global.text.copyright=CopyRight

+ 1 - 0
maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message_zh_CN.properties

@@ -3,6 +3,7 @@ global.application=Max<span style="color: #FFD700;">Key</span>\u7edf\u4e00\u8ba4
 global.change.language=\u8bed\u8a00\u9009\u62e9
 global.change.language.en=English
 global.change.language.zh=\u4e2d\u6587
+global.language=\u4e2d\u6587
 global.text.welcome=\u6b22\u8fce\u60a8
 global.text.manage=\u7ba1\u7406
 global.text.copyright=\u7248\u6743\u6240\u6709

+ 9 - 15
maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/nologintop.ftl

@@ -10,21 +10,15 @@
 			<div class="col-sm-2"></div>
 			<div class="col-sm-4">
 				<div style="margin-top:30px;margin-right:10px;float:right;">
-					<table>
-						<tr >
-							<td ><@locale code="global.change.language"/> :</td>
-							<td >
-								<div > 
-									<a href="<@currUrl/>?language=en">
-										<@locale code="global.change.language.en"/>
-									</a>|
-									<a href="<@currUrl/>?language=zh_CN">
-										<@locale code="global.change.language.zh"/>
-									</a>
-								</div>
-							</td>
-						</tr>
-					</table>
+				    <div class="dropdown">
+                        <button class="btn dropdown-toggle" type="button" id="dropdownLanguage" data-bs-toggle="dropdown" aria-expanded="false">
+                            <@locale code="global.language"/> 
+                        </button>
+                        <ul class="dropdown-menu" aria-labelledby="dropdownLanguage">
+                            <li><a class="dropdown-item" href="<@currUrl/>?language=zh_CN"><@locale code="global.change.language.zh"/></a></li>
+                            <li><a class="dropdown-item" href="<@currUrl/>?language=en"><@locale code="global.change.language.en"/></a></li>
+                        </ul>
+                    </div>
 				</div>
 			</div>
 	</div>

+ 2 - 2
maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/loginworkweixin.ftl

@@ -1,9 +1,9 @@
-     <script type="text/javascript" src="https://rescdn.qqmail.com/node/ww/wwopenmng/js/sso/wwLogin-1.0.0.js"></script>
+     <script type="text/javascript" src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.4.js"></script>
      <script type="text/javascript"> 
         $(function(){
            $("#qrcodelogin").on("click",function(){
               $.get("<@base />/logon/oauth20/scanqrcode/workweixin",function(data,status){
-                        window.WwLogin({
+                       var wwLogin = new WwLogin({
                             "id" : "div_qrcodelogin",  
                             "appid" : data.clientId,
                             "agentid" : data.agentId,