Skip to content

Commit

Permalink
update host param
Browse files Browse the repository at this point in the history
  • Loading branch information
ansjsun committed Jul 1, 2016
1 parent f8774c7 commit c9e9edc
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 61 deletions.
42 changes: 23 additions & 19 deletions src/main/java/Bootstrap.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@
import java.security.ProtectionDomain;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.apache.log4j.PropertyConfigurator;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.StringUtil;
import org.eclipse.jetty.webapp.WebAppContext;
Expand Down Expand Up @@ -57,8 +55,6 @@ public static void main(String[] args) throws Exception {
getOrCreateEnv(PREFIX + "host", null);
String logPath = getOrCreateEnv(PREFIX + "log", "log/jcoder.log");

createLog4jConfig(logPath);

String home = getOrCreateEnv(PREFIX + "home", new File(System.getProperty("user.home"), ".jcoder").getAbsolutePath());
int port = Integer.parseInt(getOrCreateEnv(PREFIX + "port", "8080"));

Expand All @@ -71,7 +67,7 @@ public static void main(String[] args) throws Exception {

File jcoderHome = new File(home);

makeFiles(jcoderHome);
makeFiles(jcoderHome, logPath);

context.setTempDirectory(new File(jcoderHome, "tmp"));
context.setContextPath("/");
Expand Down Expand Up @@ -102,20 +98,26 @@ public static void main(String[] args) throws Exception {
* config log4j setting
*
* @param logPath
* @throws IOException
* @throws FileNotFoundException
*/
private static void createLog4jConfig(String logPath) {
Properties pro = new Properties();
pro.put("log4j.rootLogger", "info, stdout,R");
pro.put("log4j.appender.stdout", "org.apache.log4j.ConsoleAppender");
pro.put("log4j.appender.stdout.layout", "org.apache.log4j.PatternLayout ");
pro.put("log4j.appender.stdout.layout.ConversionPattern", "%c-%-4r %-5p [%d{yyyy-MM-dd HH:mm:ss}] %m%n");
pro.put("log4j.appender.R", "org.apache.log4j.DailyRollingFileAppender");
pro.put("log4j.appender.R.File", logPath);
pro.put("log4j.appender.R.DatePattern ", " '.'yyyy-MM-dd");
pro.put("log4j.appender.R.layout", "org.apache.log4j.PatternLayout");
pro.put("log4j.appender.R.layout.ConversionPattern", "%d{HH:mm:ss} %c{1} %-5p %m%n");
pro.put("log4j.logger.org.atmosphere.cpr.AsynchronousProcessor", "FATAL");
PropertyConfigurator.configure(pro);
private static void createLog4jConfig(File log4jFile, String logPath) throws FileNotFoundException, IOException {

StringBuilder sb = new StringBuilder();

sb.append(
"log4j.rootLogger=info, stdout,R\n" + "log4j.appender.stdout=org.apache.log4j.ConsoleAppender\n" + "log4j.appender.stdout.layout=org.apache.log4j.PatternLayout \n"
+ "log4j.appender.stdout.layout.ConversionPattern=%c-%-4r %-5p [%d{yyyy-MM-dd HH:mm:ss}] %m%n\n" + "\n"
+ "log4j.appender.R=org.apache.log4j.DailyRollingFileAppender\n" + "log4j.appender.R.File=");

sb.append(logPath);

sb.append("\n" + "log4j.appender.R.DatePattern = '.'yyyy-MM-dd\n" + "log4j.appender.R.layout=org.apache.log4j.PatternLayout\n"
+ "log4j.appender.R.layout.ConversionPattern=%d{HH:mm:ss} %c{1} %-5p %m%n\n" + "\n" + "## Disable other log \n"
+ "log4j.logger.org.atmosphere.cpr.AsynchronousProcessor=FATAL");

wirteFile(log4jFile.getAbsolutePath(), "utf-8", sb.toString());

}

private static void parseFile(String file) throws UnsupportedEncodingException, FileNotFoundException, IOException {
Expand Down Expand Up @@ -150,7 +152,7 @@ private static void parseFile(String file) throws UnsupportedEncodingException,
}
}

private static void makeFiles(File JcoderHome) throws FileNotFoundException, IOException {
private static void makeFiles(File JcoderHome, String logPath) throws FileNotFoundException, IOException {
File libDir = new File(JcoderHome, "lib"); // create jar dir
if (!libDir.exists()) {
libDir.mkdirs();
Expand Down Expand Up @@ -178,6 +180,8 @@ private static void makeFiles(File JcoderHome) throws FileNotFoundException, IOE
if (!resourceDir.exists()) {
resourceDir.mkdirs();
}

createLog4jConfig(new File(resourceDir, "log4j.properties"), logPath);
}

private static String getOrCreateEnv(String key, String def) {
Expand Down
32 changes: 30 additions & 2 deletions src/main/java/org/nlpcn/jcoder/filter/JcoderFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.nlpcn.commons.lang.util.StringUtil;
import org.nlpcn.jcoder.run.mvc.ApiActionHandler;
import org.nlpcn.jcoder.run.mvc.view.JsonView;
import org.nlpcn.jcoder.util.StaticValue;
import org.nutz.lang.Strings;
import org.nutz.lang.util.Context;
Expand All @@ -22,9 +24,14 @@ public class JcoderFilter extends NutFilter {

private ApiActionHandler apiHandler;

private String host;

private static final byte[] AUTH_ERR = "no right to call this server".getBytes();

public void init(FilterConfig conf) throws ServletException {
super.init(conf);
apiHandler = new ApiActionHandler(conf);
host = StaticValue.HOST;
}

@Override
Expand All @@ -36,7 +43,28 @@ public void doFilter(final ServletRequest req, final ServletResponse resp, final
if (path.startsWith("/api/")) {
_doFilter(chain, request, response);
} else {
super.doFilter(request, response, chain);
if (host == null) {
super.doFilter(request, response, chain);
} else if (host.equals(request.getServerName())) {
super.doFilter(request, response, chain);
} else {
_doAuthoErr(response);
}
}
}

private void _doAuthoErr(HttpServletResponse response) throws IOException {
try {
response.setStatus(403);
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/html");
response.setContentLength(AUTH_ERR.length);
response.getOutputStream().write(AUTH_ERR);
} catch (Exception e) {
e.printStackTrace();
} finally {
response.getOutputStream().flush();
response.getOutputStream().close();
}
}

Expand Down Expand Up @@ -90,5 +118,5 @@ private void _doFilter(final FilterChain chain, HttpServletRequest request, Http
public ApiActionHandler getApiHandler() {
return apiHandler;
}

}
7 changes: 3 additions & 4 deletions src/main/java/org/nlpcn/jcoder/run/mvc/view/JsonView.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
package org.nlpcn.jcoder.run.mvc.view;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.nlpcn.jcoder.util.ApiException;
import org.nutz.mvc.Mvcs;
import org.nutz.mvc.View;

import com.alibaba.fastjson.JSONObject;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* 直接返回正文
*
Expand Down
41 changes: 5 additions & 36 deletions src/test/java/org/nlpcn/jcoder/run/java/ApiTest.java
Original file line number Diff line number Diff line change
@@ -1,53 +1,22 @@
package org.nlpcn.jcoder.run.java;


import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import org.apache.log4j.Logger;
import org.nlpcn.jcoder.domain.User;
import org.nlpcn.jcoder.run.annotation.DefaultExecute;
import org.nlpcn.jcoder.run.annotation.Execute;
import org.nlpcn.jcoder.util.StaticValue;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.mvc.annotation.Param;
import org.nutz.mvc.Mvcs;

public class ApiTest {

@Inject
private Logger log;

@Inject
private User user;

@Execute
public String wangchao(String name) {
log.info("jetty hello wangchao !" + name);

return "jetty hello wangchao !" + name;
}

@Execute
public String test(@Param("name") String name, String bbb) throws InterruptedException {
log.info("execute----------------aaa----------");
Thread.sleep(100000L);
return "execute : " + user.getName() + " " + name + "\t" + bbb;
}

@DefaultExecute
public String defaultTest() throws InterruptedException {
Thread.sleep(100000L);
return "default : " + user.getName();
}

public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {

ApiTest tr = new ApiTest();

Method method = tr.getClass().getDeclaredMethod("test", String.class);

Object invoke = method.invoke(tr, new Object[] { null });

System.out.println(invoke);
log.info(Mvcs.getReq().getServerName().matches("127.0.*"));

return StaticValue.OK;
}

}

0 comments on commit c9e9edc

Please sign in to comment.