MaxKey 4 년 전
부모
커밋
33b0e9c584

+ 15 - 6
maxkey-core/src/main/java/org/maxkey/web/WebContext.java

@@ -59,6 +59,8 @@ public final class WebContext {
     
     public static ApplicationContext applicationContext;
     
+    public final static String  ipAddressRegex = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
+    
     public static ArrayList<String> sessionAttributeNameList = new ArrayList<String>();
     
     static {
@@ -199,13 +201,20 @@ public final class WebContext {
         _logger.trace("Config DomainName " + applicationConfig.getDomainName());
         _logger.trace("ServerName " + httpServletRequest.getServerName());
         
-        String scheme = httpServletRequest.getScheme().toLowerCase();
-        String httpContextPath = scheme + "://"+httpServletRequest.getServerName();
-        int port = httpServletRequest.getServerPort();
-        if(!(port==80 || port==443)){
-            httpContextPath    +=  ":"+port;
+        String httpContextPath ="";
+        
+        if (httpServletRequest.getServerName().matches(ipAddressRegex)
+        		||httpServletRequest.getServerName().equalsIgnoreCase("localhost")) {
+        	String scheme = httpServletRequest.getScheme().toLowerCase();
+            httpContextPath = scheme + "://"+httpServletRequest.getServerName();
+	        int port = httpServletRequest.getServerPort();
+	        if(!(port==80 || port==443)){
+	            httpContextPath    +=  ":"+port;
+	        }
+	        httpContextPath += httpServletRequest.getContextPath() + "";
+        }else {
+        	 httpContextPath = applicationConfig.getServerName() + httpServletRequest.getContextPath() + "";
         }
-        httpContextPath += httpServletRequest.getContextPath() + "";
         
         _logger.trace("httpContextPath " + httpContextPath);
         return httpContextPath;

+ 56 - 0
maxkey-core/src/main/java/org/maxkey/web/tag/CurrUrlTagDirective.java

@@ -0,0 +1,56 @@
+/*
+ * Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+
+package org.maxkey.web.tag;
+
+import java.io.IOException;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import freemarker.core.Environment;
+import freemarker.template.TemplateDirectiveBody;
+import freemarker.template.TemplateDirectiveModel;
+import freemarker.template.TemplateException;
+import freemarker.template.TemplateModel;
+/**
+ *   获取当前页面地址标签
+ *   <@currUrl/>
+ * @author Crystal.Sea
+ *
+ */
+
+@FreemarkerTag("currUrl")
+public class CurrUrlTagDirective implements TemplateDirectiveModel {
+	@Autowired
+    private HttpServletRequest request;
+
+	@Override
+	public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
+			throws TemplateException, IOException {
+		//String url = params.get(URL).toString();
+
+		String  currUrl=request.getRequestURI();
+		
+		env.getOut().append(currUrl);
+		
+
+	}
+
+}

+ 1 - 1
maxkey-web-maxkey/src/main/resources/templates/views/index.ftl

@@ -8,6 +8,6 @@
 		<link type="text/css" rel="stylesheet" href="<@base url="/style.css"/>" />
 	</head>
 	<body>
-		<script type="text/javascript">window.top.location.href="<@basePath />/forwardindex";</script>
+		<script type="text/javascript">window.top.location.href="<@base />/forwardindex";</script>
 	</body>
 </html>

+ 2 - 2
maxkey-web-maxkey/src/main/resources/templates/views/layout/nologintop.ftl

@@ -14,10 +14,10 @@
 							<td ><@locale code="global.change.language"/> :</td>
 							<td >
 								<div > 
-									<a href="<@basePath />/login?language=en">
+									<a href="<@currUrl/>?language=en">
 										<@locale code="global.change.language.en"/>
 									</a>|
-									<a href="<@basePath />/login?language=zh_CN">
+									<a href="<@currUrl/>?language=zh_CN">
 										<@locale code="global.change.language.zh"/>
 									</a>
 								</div>