diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
index 1242293..3fb237a 100644
--- a/.settings/org.eclipse.core.resources.prefs
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -1,5 +1,5 @@
 eclipse.preferences.version=1
 encoding//src/main/java=UTF-8
 encoding//src/main/resources=UTF-8
-encoding//src/main/resources/msg/zh_CN/MessageResources.properties=UTF-8
+encoding//src/main/resources/msg/zh-CN/MessageResources.properties=UTF-8
 encoding/<project>=UTF-8
diff --git a/nutz.log b/nutz.log
index b4ddf7f..790e956 100644
--- a/nutz.log
+++ b/nutz.log
@@ -11847,3 +11847,4783 @@ maxFormContentSize                       : 1073741824
 2020-01-11 20:36:12,017 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
 2020-01-11 20:36:12,171 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
 2020-01-11 20:36:12,598 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 20:45:35,085 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=124fgslla6jhsqecjc0kbcsqte:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 20:45:35,087 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=124fgslla6jhsqecjc0kbcsqte:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 20:45:35,087 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 20:45:35,238 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 20:45:35,239 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 20:45:35,243 [ERROR][freemarker.runtime] - Error executing FreeMarker template
+FreeMarker template error:
+For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m code="global.admin.welcome"  [in template "template/admin/top.ftl" at line 86, column 120]
+----
+
+Java stack trace (for programmers):
+----
+freemarker.core.NonStringOrTemplateOutputException: [... Exception message was already printed; see it above ...]
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 20:45:35,248 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/top :
+java.lang.RuntimeException: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m code="global.admin.welcome"  [in template "template/admin/top.ftl" at line 86, column 120]
+----
+	at org.nutz.lang.Lang.wrapThrow(Lang.java:191)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:78)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m code="global.admin.welcome"  [in template "template/admin/top.ftl" at line 86, column 120]
+----
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	... 65 more
+2020-01-11 20:45:35,331 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 20:45:35,331 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 20:45:35,333 [ERROR][freemarker.runtime] - Error executing FreeMarker template
+FreeMarker template error:
+For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.position"  [in template "template/admin/right.ftl" at line 17, column 22]
+----
+
+Java stack trace (for programmers):
+----
+freemarker.core.NonStringOrTemplateOutputException: [... Exception message was already printed; see it above ...]
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 20:45:35,335 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/right :
+java.lang.RuntimeException: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.position"  [in template "template/admin/right.ftl" at line 17, column 22]
+----
+	at org.nutz.lang.Lang.wrapThrow(Lang.java:191)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:78)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.position"  [in template "template/admin/right.ftl" at line 17, column 22]
+----
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	... 65 more
+2020-01-11 20:45:35,336 [ERROR][freemarker.runtime] - Error executing FreeMarker template
+FreeMarker template error:
+For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.refresh"  [in template "template/admin/left.ftl" at line 20, column 122]
+----
+
+Java stack trace (for programmers):
+----
+freemarker.core.NonStringOrTemplateOutputException: [... Exception message was already printed; see it above ...]
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 20:45:35,337 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/left :
+java.lang.RuntimeException: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.refresh"  [in template "template/admin/left.ftl" at line 20, column 122]
+----
+	at org.nutz.lang.Lang.wrapThrow(Lang.java:191)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:78)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.refresh"  [in template "template/admin/left.ftl" at line 20, column 122]
+----
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	... 65 more
+2020-01-11 20:46:31,461 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 20:46:31,624 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 20:46:31,628 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 20:46:31,740 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 20:46:33,222 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 20:47:03,074 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=124fgslla6jhsqecjc0kbcsqte:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 20:47:03,076 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=124fgslla6jhsqecjc0kbcsqte:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 20:47:03,077 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 20:47:03,192 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 20:47:03,192 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 20:47:03,194 [ERROR][freemarker.runtime] - Error executing FreeMarker template
+FreeMarker template error:
+For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (Properties wrapped into f.t.DefaultMapAdapter):
+==> props  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${props}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m code="global.admin.welcome"  [in template "template/admin/top.ftl" at line 86, column 120]
+----
+
+Java stack trace (for programmers):
+----
+freemarker.core.NonStringOrTemplateOutputException: [... Exception message was already printed; see it above ...]
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 20:47:03,197 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/top :
+java.lang.RuntimeException: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (Properties wrapped into f.t.DefaultMapAdapter):
+==> props  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${props}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m code="global.admin.welcome"  [in template "template/admin/top.ftl" at line 86, column 120]
+----
+	at org.nutz.lang.Lang.wrapThrow(Lang.java:191)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:78)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (Properties wrapped into f.t.DefaultMapAdapter):
+==> props  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${props}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m code="global.admin.welcome"  [in template "template/admin/top.ftl" at line 86, column 120]
+----
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	... 60 more
+2020-01-11 20:47:03,266 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 20:47:03,268 [ERROR][freemarker.runtime] - Error executing FreeMarker template
+FreeMarker template error:
+For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (Properties wrapped into f.t.DefaultMapAdapter):
+==> props  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${props}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.refresh"  [in template "template/admin/left.ftl" at line 20, column 122]
+----
+
+Java stack trace (for programmers):
+----
+freemarker.core.NonStringOrTemplateOutputException: [... Exception message was already printed; see it above ...]
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 20:47:03,269 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/left :
+java.lang.RuntimeException: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (Properties wrapped into f.t.DefaultMapAdapter):
+==> props  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${props}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.refresh"  [in template "template/admin/left.ftl" at line 20, column 122]
+----
+	at org.nutz.lang.Lang.wrapThrow(Lang.java:191)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:78)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (Properties wrapped into f.t.DefaultMapAdapter):
+==> props  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${props}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.refresh"  [in template "template/admin/left.ftl" at line 20, column 122]
+----
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	... 65 more
+2020-01-11 20:47:03,286 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 20:47:03,288 [ERROR][freemarker.runtime] - Error executing FreeMarker template
+FreeMarker template error:
+For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (Properties wrapped into f.t.DefaultMapAdapter):
+==> props  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${props}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.position"  [in template "template/admin/right.ftl" at line 17, column 22]
+----
+
+Java stack trace (for programmers):
+----
+freemarker.core.NonStringOrTemplateOutputException: [... Exception message was already printed; see it above ...]
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 20:47:03,289 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/right :
+java.lang.RuntimeException: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (Properties wrapped into f.t.DefaultMapAdapter):
+==> props  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${props}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.position"  [in template "template/admin/right.ftl" at line 17, column 22]
+----
+	at org.nutz.lang.Lang.wrapThrow(Lang.java:191)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:78)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to an extended_hash (Properties wrapped into f.t.DefaultMapAdapter):
+==> props  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${props}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.position"  [in template "template/admin/right.ftl" at line 17, column 22]
+----
+	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:511)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389)
+	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	... 65 more
+2020-01-11 20:48:06,762 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=124fgslla6jhsqecjc0kbcsqte:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 20:48:06,765 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=124fgslla6jhsqecjc0kbcsqte:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 20:48:06,765 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 20:48:06,860 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 20:48:06,860 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 20:48:06,924 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 20:48:06,929 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 20:48:48,857 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 20:48:49,170 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 20:48:49,208 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 20:48:49,212 [ERROR][freemarker.runtime] - Error executing FreeMarker template
+FreeMarker template error:
+For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs("user.lock")}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m code="global.admin.welcome"  [in template "template/admin/top.ftl" at line 86, column 120]
+----
+
+Java stack trace (for programmers):
+----
+freemarker.core.NonMethodException: [... Exception message was already printed; see it above ...]
+	at freemarker.core.MethodCall._eval(MethodCall.java:85)
+	at freemarker.core.Expression.eval(Expression.java:83)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 20:48:49,214 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/top :
+java.lang.RuntimeException: freemarker.core.NonMethodException: For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs("user.lock")}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m code="global.admin.welcome"  [in template "template/admin/top.ftl" at line 86, column 120]
+----
+	at org.nutz.lang.Lang.wrapThrow(Lang.java:191)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:78)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: freemarker.core.NonMethodException: For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs("user.lock")}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m code="global.admin.welcome"  [in template "template/admin/top.ftl" at line 86, column 120]
+----
+	at freemarker.core.MethodCall._eval(MethodCall.java:85)
+	at freemarker.core.Expression.eval(Expression.java:83)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	... 65 more
+2020-01-11 20:48:49,534 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 20:48:49,537 [ERROR][freemarker.runtime] - Error executing FreeMarker template
+FreeMarker template error:
+For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs("user.lock")}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.refresh"  [in template "template/admin/left.ftl" at line 20, column 122]
+----
+
+Java stack trace (for programmers):
+----
+freemarker.core.NonMethodException: [... Exception message was already printed; see it above ...]
+	at freemarker.core.MethodCall._eval(MethodCall.java:85)
+	at freemarker.core.Expression.eval(Expression.java:83)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 20:48:49,538 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/left :
+java.lang.RuntimeException: freemarker.core.NonMethodException: For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs("user.lock")}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.refresh"  [in template "template/admin/left.ftl" at line 20, column 122]
+----
+	at org.nutz.lang.Lang.wrapThrow(Lang.java:191)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:78)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: freemarker.core.NonMethodException: For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs("user.lock")}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.refresh"  [in template "template/admin/left.ftl" at line 20, column 122]
+----
+	at freemarker.core.MethodCall._eval(MethodCall.java:85)
+	at freemarker.core.Expression.eval(Expression.java:83)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	... 65 more
+2020-01-11 20:48:49,849 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 20:48:49,851 [ERROR][freemarker.runtime] - Error executing FreeMarker template
+FreeMarker template error:
+For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs("user.lock")}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.position"  [in template "template/admin/right.ftl" at line 17, column 22]
+----
+
+Java stack trace (for programmers):
+----
+freemarker.core.NonMethodException: [... Exception message was already printed; see it above ...]
+	at freemarker.core.MethodCall._eval(MethodCall.java:85)
+	at freemarker.core.Expression.eval(Expression.java:83)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 20:48:49,852 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/right :
+java.lang.RuntimeException: freemarker.core.NonMethodException: For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs("user.lock")}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.position"  [in template "template/admin/right.ftl" at line 17, column 22]
+----
+	at org.nutz.lang.Lang.wrapThrow(Lang.java:191)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:78)
+	at org.nutz.mvc.impl.processor.ViewProcessor.process(ViewProcessor.java:66)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:33)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: freemarker.core.NonMethodException: For "...(...)" callee: Expected a method, but this has evaluated to an extended_hash (org.nutz.mvc.impl.NutMessageMap wrapped into f.t.DefaultMapAdapter):
+==> mvcs  [in template "ftl/spring.ftl" at line 7, column 18]
+
+----
+FTL stack trace ("~" means nesting-related):
+	- Failed at: ${mvcs("user.lock")}  [in template "ftl/spring.ftl" in macro "m" at line 7, column 16]
+	- Reached through: @s.m "global.position"  [in template "template/admin/right.ftl" at line 17, column 22]
+----
+	at freemarker.core.MethodCall._eval(MethodCall.java:85)
+	at freemarker.core.Expression.eval(Expression.java:83)
+	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
+	at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
+	at freemarker.core.Environment.visit(Environment.java:366)
+	at freemarker.core.Environment.invoke(Environment.java:775)
+	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83)
+	at freemarker.core.Environment.visit(Environment.java:330)
+	at freemarker.core.Environment.visit(Environment.java:336)
+	at freemarker.core.Environment.process(Environment.java:309)
+	at freemarker.template.Template.process(Template.java:384)
+	at org.nutz.boot.starter.freemarker.FreemarkerView.render(FreemarkerView.java:76)
+	... 65 more
+2020-01-11 20:49:30,333 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=124fgslla6jhsqecjc0kbcsqte:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 20:49:30,335 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=124fgslla6jhsqecjc0kbcsqte:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 20:49:30,335 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 20:49:30,461 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 20:49:30,462 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 20:49:30,540 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 20:49:30,543 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 20:50:14,045 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 20:50:14,162 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 20:50:14,176 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 20:50:14,484 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 20:50:14,484 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 20:53:24,846 [INFO][org.apache.shiro.session.mgt.AbstractValidatingSessionManager] - Disabled session validation scheduler.
+2020-01-11 20:53:24,847 [INFO][org.nutz.boot.starter.nutz.mvc.NbMvcLoading] - Nutz.Mvc[nutz] is deposing ...
+2020-01-11 20:53:24,847 [INFO][org.nutz.boot.starter.nutz.mvc.NbMvcLoading] - Nutz.Mvc[nutz] is down in 0ms
+2020-01-11 20:53:35,456 [INFO][org.nutz.boot.banner.SimpleBannerPrinter] - 
+ _   _ ______                                      ___   
+| \ | || ___ \  ______ ______ ______ ______ ______| \ \  
+|  \| || |_/ / |______|______|______|______|______| |\ \ 
+| . ` || ___ \  ______ ______ ______ ______ ______| | > >
+| |\  || |_/ / |______|______|______|______|______| |/ / 
+\_| \_/\____/                                     |_/_/  
+  
+:: Nutz Boot ::   (2.3.8.v20191031)
+
+2020-01-11 20:53:35,565 [DEBUG][org.nutz.boot.config.impl.PropertiesConfigureLoader] - load /Users/kouxian/git/rk_svnadmin/target/classes/application.properties
+2020-01-11 20:53:35,747 [DEBUG][org.nutz.castor.Castors] - Using 107 castor for Castors
+2020-01-11 20:53:35,772 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -  > scan 'com.rekoe'
+2020-01-11 20:53:35,938 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'cloudLauncher                           ' - com.rekoe.CloudLauncher
+2020-01-11 20:53:35,953 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'currentTime                             ' - com.rekoe.web.freemarker.CurrentTimeDirective
+2020-01-11 20:53:35,962 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'pagination                              ' - com.rekoe.web.freemarker.PaginationDirective
+2020-01-11 20:53:35,964 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permission                              ' - com.rekoe.web.freemarker.PermissionDirective
+2020-01-11 20:53:35,965 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'htmlCut                                 ' - com.rekoe.web.freemarker.HtmlCutDirective
+2020-01-11 20:53:35,966 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'process                                 ' - com.rekoe.web.freemarker.ProcessTimeDirective
+2020-01-11 20:53:35,967 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'timeFormat                              ' - com.rekoe.web.freemarker.TimeFormatDirective
+2020-01-11 20:53:35,970 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionAct                           ' - com.rekoe.module.admin.PermissionAct
+2020-01-11 20:53:35,982 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminUserAct                            ' - com.rekoe.module.admin.AdminUserAct
+2020-01-11 20:53:35,989 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'frameAct                                ' - com.rekoe.module.admin.FrameAct
+2020-01-11 20:53:35,990 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminSvnUserAct                         ' - com.rekoe.module.admin.AdminSvnUserAct
+2020-01-11 20:53:35,993 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectAct                         ' - com.rekoe.module.admin.AdminProjectAct
+2020-01-11 20:53:36,005 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminCommonAct                          ' - com.rekoe.module.admin.AdminCommonAct
+2020-01-11 20:53:36,007 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminRoleAct                            ' - com.rekoe.module.admin.AdminRoleAct
+2020-01-11 20:53:36,008 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionCategoryAct                   ' - com.rekoe.module.admin.PermissionCategoryAct
+2020-01-11 20:53:36,010 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'welcomeAct                              ' - com.rekoe.module.admin.WelcomeAct
+2020-01-11 20:53:36,013 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectGroupUsrAct                 ' - com.rekoe.module.admin.AdminProjectGroupUsrAct
+2020-01-11 20:53:36,018 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminLoginAct                           ' - com.rekoe.module.admin.AdminLoginAct
+2020-01-11 20:53:36,023 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectGroupAct                    ' - com.rekoe.module.admin.AdminProjectGroupAct
+2020-01-11 20:53:36,024 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'indexAct                                ' - com.rekoe.module.IndexAct
+2020-01-11 20:53:36,025 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'ipSearchAction                          ' - com.rekoe.module.IpSearchAction
+2020-01-11 20:53:36,027 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'oauthLoginAct                           ' - com.rekoe.module.OauthLoginAct
+2020-01-11 20:53:36,032 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'doCommit                                ' - com.rekoe.utils.DoCommit
+2020-01-11 20:53:36,036 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'quartzService                           ' - com.rekoe.service.QuartzService
+2020-01-11 20:53:36,040 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'treeService                             ' - com.rekoe.service.DefaultTreeService
+2020-01-11 20:53:36,040 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'userService                             ' - com.rekoe.service.UserService
+2020-01-11 20:53:36,059 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'roleService                             ' - com.rekoe.service.RoleService
+2020-01-11 20:53:36,060 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectGroupService                     ' - com.rekoe.service.ProjectGroupService
+2020-01-11 20:53:36,063 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectAuthService                      ' - com.rekoe.service.ProjectAuthService
+2020-01-11 20:53:36,071 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectService                          ' - com.rekoe.service.ProjectService
+2020-01-11 20:53:36,076 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'usrService                              ' - com.rekoe.service.UsrService
+2020-01-11 20:53:36,077 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'repTreeNodeService                      ' - com.rekoe.service.RepTreeNodeService
+2020-01-11 20:53:36,078 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'svnService                              ' - com.rekoe.service.SvnService
+2020-01-11 20:53:36,082 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionCategoryService               ' - com.rekoe.service.PermissionCategoryService
+2020-01-11 20:53:36,084 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'repositoryService                       ' - com.rekoe.service.RepositoryService
+2020-01-11 20:53:36,090 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'uploadService                           ' - com.rekoe.service.UploadService
+2020-01-11 20:53:36,092 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectUserService                      ' - com.rekoe.service.ProjectUserService
+2020-01-11 20:53:36,092 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'authorityService                        ' - com.rekoe.service.AuthorityServiceImpl
+2020-01-11 20:53:36,093 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'emailService                            ' - com.rekoe.service.EmailServiceImpl
+2020-01-11 20:53:36,096 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'svnUserService                          ' - com.rekoe.service.SvnUserService
+2020-01-11 20:53:36,099 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectGroupUsrService                  ' - com.rekoe.service.ProjectGroupUsrService
+2020-01-11 20:53:36,100 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'idFactory                               ' - com.rekoe.service.IdWorkerService
+2020-01-11 20:53:36,101 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectConfigService                    ' - com.rekoe.service.ProjectConfigService
+2020-01-11 20:53:36,101 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'defaultTreeFactory                      ' - com.rekoe.service.DefaultTreeFactory
+2020-01-11 20:53:36,103 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionService                       ' - com.rekoe.service.PermissionService
+2020-01-11 20:53:36,112 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroRealm                              ' - com.rekoe.shiro.realm.UsernamePasswordRealm
+2020-01-11 20:53:36,133 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -  > scan 'org.nutz.boot.starter'
+2020-01-11 20:53:36,190 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroFilterStarter                      ' - org.nutz.boot.starter.shiro.ShiroFilterStarter
+2020-01-11 20:53:36,194 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroEnvStarter                         ' - org.nutz.boot.starter.shiro.ShiroEnvStarter
+2020-01-11 20:53:36,200 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'freeMarkerConfigurer                    ' - org.nutz.boot.starter.freemarker.FreeMarkerConfigurer
+2020-01-11 20:53:36,207 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add '$views_freekmarker                      ' - org.nutz.boot.starter.freemarker.FreemarkerViewMaker
+2020-01-11 20:53:36,208 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'quartzStarter                           ' - org.nutz.boot.starter.quartz.QuartzStarter
+2020-01-11 20:53:36,208 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'whaleFilterStarter                      ' - org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter
+2020-01-11 20:53:36,211 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nutFilterStarter                        ' - org.nutz.boot.starter.nutz.mvc.NutFilterStarter
+2020-01-11 20:53:36,214 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nutDaoStarter                           ' - org.nutz.boot.starter.nutz.dao.NutDaoStarter
+2020-01-11 20:53:36,222 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'druidWebStatFilterStarter               ' - org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter
+2020-01-11 20:53:36,222 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'druidWebStatServletStarter              ' - org.nutz.boot.starter.jdbc.DruidWebStatServletStarter
+2020-01-11 20:53:36,224 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'dataSourceStarter                       ' - org.nutz.boot.starter.jdbc.DataSourceStarter
+2020-01-11 20:53:36,225 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'jettyStarter                            ' - org.nutz.boot.starter.jetty.JettyStarter
+2020-01-11 20:53:36,274 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nbServletContextListener                ' - org.nutz.boot.starter.servlet3.NbServletContextListener
+2020-01-11 20:53:36,284 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'ngrokClientStarter                      ' - org.nutz.boot.starter.ngrok.NgrokClientStarter
+2020-01-11 20:53:36,289 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-redis/2.3.9-SNAPSHOT/nutzboot-starter-redis-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,291 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-shiro/2.3.9-SNAPSHOT/nutzboot-starter-shiro-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,292 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-freemarker/2.3.9-SNAPSHOT/nutzboot-starter-freemarker-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,293 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-quartz/2.3.9-SNAPSHOT/nutzboot-starter-quartz-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,297 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-mvc/2.3.9-SNAPSHOT/nutzboot-starter-nutz-mvc-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,298 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-dao/2.3.9-SNAPSHOT/nutzboot-starter-nutz-dao-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,298 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-jdbc/2.3.9-SNAPSHOT/nutzboot-starter-jdbc-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,299 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-jetty/2.3.9-SNAPSHOT/nutzboot-starter-jetty-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,300 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-email/2.3.9-SNAPSHOT/nutzboot-starter-email-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,301 [DEBUG][org.nutz.boot.NbApp] - Found file:/Users/kouxian/git/nutzboot/nutzboot-starter/nutzboot-starter-freemarker/target/classes/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,303 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-ngrok/2.3.9-SNAPSHOT/nutzboot-starter-ngrok-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 20:53:36,323 [INFO][org.nutz.boot.NbApp] - Configure Manual:
+|id  |key                                     |required  |Possible Values     |Default   |Description         |                                starters|
+|----|----------------------------------------|----------|--------------------|----------|--------------------|----------------------------------------|
+|0   |druid.web.filter.exclusions             |no        |                    |          |需要排除的路径             |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|1   |druid.web.filter.principalCookieName    |no        |                    |          |用户权限信息的cookie属性名称   |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|2   |druid.web.filter.principalSessionName   |no        |                    |          |用户权限信息的session属性名称  |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|3   |druid.web.filter.profileEnable          |no        |                    |          |是否开启性能监控            |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|4   |druid.web.filter.realIpHeader           |no        |                    |          |Header中ReadIp对应的key |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|5   |druid.web.filter.sessionStatEnable      |no        |                    |true      |是否开启session状态监控     |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|6   |druid.web.filter.sessionStatMaxCount    |no        |                    |          |session最大状态数量       |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|7   |druid.web.servlet.allow                 |no        |                    |          |允许访问的ip列表           |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|8   |druid.web.servlet.deny                  |no        |                    |          |禁止访问的ip列表           |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|9   |druid.web.servlet.jmxPassword           |no        |                    |          |JMX的密码              |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|10  |druid.web.servlet.jmxUrl                |no        |                    |          |读取JMX信息的URL         |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|11  |druid.web.servlet.jmxUsername           |no        |                    |          |JMX的用户名             |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|12  |druid.web.servlet.loginPassword         |no        |                    |随机值,打印在日志中|访问monitor页面的密码      |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|13  |druid.web.servlet.loginUsername         |no        |                    |driud     |访问monitor页面的用户名     |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|14  |druid.web.servlet.resetEnable           |no        |                    |true      |是否允许重置统计结果          |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|15  |email.From                              |yes       |                    |          |email的写信人           |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|16  |email.HostName                          |yes       |                    |          |email的ip或域名地址       |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|17  |email.Password                          |yes       |                    |          |email的密码            |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|18  |email.SSLOnConnect                      |no        |                    |true      |email开启SSL连接        |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|19  |email.SmtpPort                          |yes       |                    |          |email的SmtpPort端口    |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|20  |email.UserName                          |yes       |                    |          |email的用户名           |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|21  |email.charset                           |no        |                    |UTF-8     |email的编码            |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|22  |freemarker.cache_time                   |no        |                    |-1000     |模版缓存时间              |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|23  |freemarker.prefix                       |no        |                    |template  |模版路径                |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|24  |freemarker.suffix                       |no        |                    |.html     |文件后缀                |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|25  |jdbc.password                           |no        |                    |          |数据库密码               |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|26  |jdbc.type                               |no        |druid,simple,hikari |druid     |连接池类型               |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|27  |jdbc.url                                |yes       |                    |          |JDBC URL            |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|28  |jdbc.username                           |no        |                    |          |数据库用户名              |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|29  |jetty.contextPath                       |no        |                    |/         |上下文路径               |org.nutz.boot.starter.jetty.JettyStarter|
+|30  |jetty.gzip.enable                       |no        |                    |false     |是否启用gzip            |org.nutz.boot.starter.jetty.JettyStarter|
+|31  |jetty.gzip.level                        |no        |                    |-1        |gzip压缩级别            |org.nutz.boot.starter.jetty.JettyStarter|
+|32  |jetty.gzip.minContentSize               |no        |                    |512       |gzip压缩最小触发大小        |org.nutz.boot.starter.jetty.JettyStarter|
+|33  |jetty.host                              |no        |                    |0.0.0.0   |监听的ip地址             |org.nutz.boot.starter.jetty.JettyStarter|
+|34  |jetty.http.idleTimeout                  |no        |                    |300000    |空闲时间,单位毫秒           |org.nutz.boot.starter.jetty.JettyStarter|
+|35  |jetty.httpConfig.blockingTimeout        |no        |                    |-1        |阻塞超时                |org.nutz.boot.starter.jetty.JettyStarter|
+|36  |jetty.httpConfig.headerCacheSize        |no        |                    |8192      |头部缓冲区大小             |org.nutz.boot.starter.jetty.JettyStarter|
+|37  |jetty.httpConfig.maxErrorDispatches     |no        |                    |10        |最大错误重定向次数           |org.nutz.boot.starter.jetty.JettyStarter|
+|38  |jetty.httpConfig.outputAggregationSize  |no        |                    |8192      |输出聚合大小              |org.nutz.boot.starter.jetty.JettyStarter|
+|39  |jetty.httpConfig.outputBufferSize       |no        |                    |32768     |输出缓冲区大小             |org.nutz.boot.starter.jetty.JettyStarter|
+|40  |jetty.httpConfig.persistentConnectionsEnabled|no        |                    |true      |是否启用持久化连接           |org.nutz.boot.starter.jetty.JettyStarter|
+|41  |jetty.httpConfig.requestHeaderSize      |no        |                    |8192      |请求的头部最大值            |org.nutz.boot.starter.jetty.JettyStarter|
+|42  |jetty.httpConfig.responseHeaderSize     |no        |                    |8192      |响应的头部最大值            |org.nutz.boot.starter.jetty.JettyStarter|
+|43  |jetty.httpConfig.securePort             |no        |                    |          |安全协议的端口,例如8443      |org.nutz.boot.starter.jetty.JettyStarter|
+|44  |jetty.httpConfig.secureScheme           |no        |                    |          |安全协议,例如https        |org.nutz.boot.starter.jetty.JettyStarter|
+|45  |jetty.httpConfig.sendDateHeader         |no        |                    |true      |是否发送日期信息            |org.nutz.boot.starter.jetty.JettyStarter|
+|46  |jetty.httpConfig.sendServerVersion      |no        |                    |true      |是否发送jetty版本号        |org.nutz.boot.starter.jetty.JettyStarter|
+|47  |jetty.https.keystore.password           |no        |                    |          |Https的KeyStore的密码   |org.nutz.boot.starter.jetty.JettyStarter|
+|48  |jetty.https.keystore.path               |no        |                    |          |Https的KeyStore路径    |org.nutz.boot.starter.jetty.JettyStarter|
+|49  |jetty.https.port                        |no        |                    |          |Https端口号            |org.nutz.boot.starter.jetty.JettyStarter|
+|50  |jetty.maxFormContentSize                |no        |                    |1gb       |表单最大尺寸              |org.nutz.boot.starter.jetty.JettyStarter|
+|51  |jetty.maxFormKeys                       |no        |                    |1000      |表单最大key数量           |org.nutz.boot.starter.jetty.JettyStarter|
+|52  |jetty.page.404                          |no        |                    |          |自定义404页面,同理,其他状态码也是支持的|org.nutz.boot.starter.jetty.JettyStarter|
+|53  |jetty.page.java.lang.Throwable          |no        |                    |          |自定义java.lang.Throwable页面,同理,其他异常也支持|org.nutz.boot.starter.jetty.JettyStarter|
+|54  |jetty.port                              |no        |                    |8080      |监听的端口               |org.nutz.boot.starter.jetty.JettyStarter|
+|55  |jetty.session.file.storeDir             |no        |                    |./session |session持久化,file所用的目录|org.nutz.boot.starter.jetty.JettyStarter|
+|56  |jetty.session.ioc.datastore             |no        |                    |jettySessionDataStore|session持久化,SessionDataStore对应的ioc名称|org.nutz.boot.starter.jetty.JettyStarter|
+|57  |jetty.session.jdbc.datasource.iocname   |no        |                    |dataSource|session持久化,jdbc所用数据库源的ioc名称|org.nutz.boot.starter.jetty.JettyStarter|
+|58  |jetty.session.store.enable              |no        |                    |false     |是否启用session持久化      |org.nutz.boot.starter.jetty.JettyStarter|
+|59  |jetty.session.store.type                |no        |jdbc,file,ioc,redis |jdbc      |session持久化类型        |org.nutz.boot.starter.jetty.JettyStarter|
+|60  |jetty.staticPath                        |no        |                    |          |额外的静态文件路径           |org.nutz.boot.starter.jetty.JettyStarter|
+|61  |jetty.staticPathLocal                   |no        |                    |          |静态文件所在的本地路径         |org.nutz.boot.starter.jetty.JettyStarter|
+|62  |jetty.threadpool.idleTimeout            |no        |                    |60000     |线程池idleTimeout,单位毫秒 |org.nutz.boot.starter.jetty.JettyStarter|
+|63  |jetty.threadpool.maxThreads             |no        |                    |500       |线程池最大线程数maxThreads  |org.nutz.boot.starter.jetty.JettyStarter|
+|64  |jetty.threadpool.minThreads             |no        |                    |200       |线程池最小线程数minThreads  |org.nutz.boot.starter.jetty.JettyStarter|
+|65  |jetty.welcome_files                     |no        |                    |index.html,index.htm,index.do|WelcomeFile列表       |org.nutz.boot.starter.jetty.JettyStarter|
+|66  |ngrok.client.auth_token                 |no        |                    |4kg9lckq5og4ip02j736e3i7ku|秘钥                  |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|67  |ngrok.client.enable                     |no        |                    |true      |开关                  |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|68  |ngrok.client.hostname                   |no        |                    |          |期望的域名               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|69  |ngrok.client.srv_host                   |no        |                    |wendal.cn |服务器域名               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|70  |ngrok.client.srv_port                   |no        |                    |4443      |服务器端口               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|71  |ngrok.client.to_port                    |no        |                    |8080      |目标端口                |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|72  |nutz.dao.interceptor.cache.cache4Null   |no        |                    |true      |是否缓存null结果          |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|73  |nutz.dao.interceptor.cache.debug        |no        |                    |false     |打印daocache详细调试日志    |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|74  |nutz.dao.interceptor.cache.enable       |no        |                    |false     |是否使用daocache        |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|75  |nutz.dao.interceptor.cache.enableWhenTrans|no        |                    |false     |事务内是否启用daocache     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|76  |nutz.dao.interceptor.cache.provider.ioc.name|no        |                    |daoCacheProvider|daocache提供者DaoCacheProvider的IocBean名称|org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|77  |nutz.dao.interceptor.cache.provider.memory.cacheSize|no        |                    |          |daocache提供者MemoryDaoCacheProvider的默认缓存大小|org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|78  |nutz.dao.interceptor.cache.provider.type|no        |memory,ehcache,jedis,ioc|memory    |daocache提供者         |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|79  |nutz.dao.interceptor.cache.table.names  |no        |                    |          |需要缓存的表名称,英文逗号分隔     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|80  |nutz.dao.interceptor.cache.table.pattern|no        |                    |          |需要缓存的表名称的正则表达式      |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|81  |nutz.dao.interceptor.log.enable         |no        |                    |true      |是否打印dao的SQL日志       |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|82  |nutz.dao.interceptor.time.enable        |no        |                    |false     |是否打印dao的SQL耗时日志     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|83  |nutz.dao.sqls.path                      |no        |                    |sqls/     |sql目录               |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|84  |nutz.mvc.exclusions                     |no        |                    |          |排除指定请求路径的正则表达式      |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|85  |nutz.mvc.ignore                         |no        |                    |          |过滤指定请求路径的正则表达式      |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|86  |nutz.mvc.whale.enc.input                |no        |                    |UTF-8     |在其他Filter之前设置input编码|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|87  |nutz.mvc.whale.enc.output               |no        |                    |UTF-8     |在其他Filter之前设置output编码|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|88  |nutz.mvc.whale.http.hidden_method_param |no        |                    |          |隐形http方法参数转换所对应的参数名 |org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|89  |nutz.mvc.whale.http.method_override     |no        |                    |false     |是否允许使用X-HTTP-Method-Override|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|90  |nutz.mvc.whale.upload.enable            |no        |                    |false     |是否启用隐形Upload支持      |org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|91  |redis.database                          |no        |                    |0         |redis数据库序号          |org.nutz.boot.starter.redis.JedisStarter|
+|92  |redis.host                              |no        |                    |127.0.0.1 |redis服务器ip或域名       |org.nutz.boot.starter.redis.JedisStarter|
+|93  |redis.max_redir                         |no        |                    |10        |redis集群最大重定向次数      |org.nutz.boot.starter.redis.JedisStarter|
+|94  |redis.nodes                             |no        |                    |          |redis集群节点列表         |org.nutz.boot.starter.redis.JedisStarter|
+|95  |redis.password                          |no        |                    |          |redis密码             |org.nutz.boot.starter.redis.JedisStarter|
+|96  |redis.port                              |no        |                    |6379      |redis服务器端口          |org.nutz.boot.starter.redis.JedisStarter|
+|97  |redis.soTimeout                         |no        |                    |0         |redis写超时            |org.nutz.boot.starter.redis.JedisStarter|
+|98  |redis.timeout                           |no        |                    |2000      |redis读写超时           |org.nutz.boot.starter.redis.JedisStarter|
+|99  |shiro.ini.path                          |no        |                    |          |shiro.ini的路径,如果shiro.ini存在,就会使用它,否则走NB的内部逻辑|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|100 |shiro.ini.urls                          |no        |                    |          |urls过滤清单            |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|101 |shiro.realm.cache.enable                |no        |                    |          |realm是否缓存           |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|102 |shiro.session.cache.redis.debug         |no        |                    |false     |session持久化时redis的debug模式|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|103 |shiro.session.cache.redis.mode          |no        |                    |kv        |设置redis缓存的模式        |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|104 |shiro.session.cache.redis.ttl           |no        |                    |-1        |redis缓存的过期时间        |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|105 |shiro.session.cache.type                |no        |                    |memory    |设置使用的缓存类型           |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|106 |shiro.session.cookie.httpOnly           |no        |                    |true      |Cookie是否只读          |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|107 |shiro.session.cookie.maxAge             |no        |                    |946080000 |Cookie的过期时间,单位:毫秒   |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|108 |shiro.session.cookie.name               |no        |                    |sid       |Cookie的name         |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|109 |shiro.session.dao.iocName               |no        |                    |shiroSessionDao|SessionDao的ioc名称,设置并声明该IocBean,就能覆盖默认的SessionDao实现|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|110 |shiro.session.enable                    |no        |                    |true      |是否启用Shiro的Session管理 |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|111 |shiro.session.manager.globalSessionTimeout|no        |                    |1800000   |全局session过期时间       |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|112 |shiro.session.manager.sessionValidationInterval|no        |                    |3600000   |定期检查session过期的周期    |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|113 |shiro.session.manager.sessionValidationSchedulerEnabled|no        |                    |true      |是否定期检查session过期     |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|114 |shiro.url.login                         |no        |                    |/user/login|默认登录路径              |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|115 |shiro.url.logout_redirect               |no        |                    |/         |退出登录后的重定向路径         |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|116 |shiro.url.unauth                        |no        |                    |/user/login|访问未授权页面后的重定向路径      |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|117 |web.filter.order.nutz                   |no        |                    |          |指定NutFilter执行顺序     |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|118 |web.session.timeout                     |no        |                    |30        |Session空闲时间,单位分钟    |org.nutz.boot.starter.jetty.JettyStarter|
+2020-01-11 20:53:36,333 [INFO][org.nutz.ioc.impl.NutIoc] - ... NutIoc init complete
+2020-01-11 20:53:36,445 [INFO][org.quartz.impl.StdSchedulerFactory] - Using default implementation for ThreadExecutor
+2020-01-11 20:53:36,517 [INFO][org.quartz.core.SchedulerSignalerImpl] - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
+2020-01-11 20:53:36,518 [INFO][org.quartz.core.QuartzScheduler] - Quartz Scheduler v.2.3.0 created.
+2020-01-11 20:53:36,522 [INFO][org.quartz.simpl.RAMJobStore] - RAMJobStore initialized.
+2020-01-11 20:53:36,543 [INFO][org.quartz.core.QuartzScheduler] - Scheduler meta-data: Quartz Scheduler (v2.3.0) 'NutzbootScheduler' with instanceId 'NON_CLUSTERED'
+  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
+  NOT STARTED.
+  Currently in standby mode.
+  Number of jobs executed: 0
+  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 8 threads.
+  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
+
+2020-01-11 20:53:36,543 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'NutzbootScheduler' initialized from an externally provided properties instance.
+2020-01-11 20:53:36,543 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 2.3.0
+2020-01-11 20:53:36,544 [INFO][org.quartz.core.QuartzScheduler] - JobFactory set to: org.nutz.integration.quartz.NutQuartzJobFactory@10cf09e8
+2020-01-11 20:53:37,345 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add Servlet name=druid pathSpec=/druid/*
+2020-01-11 20:53:37,349 [INFO][org.nutz.boot.starter.jdbc.DruidWebStatServletStarter] - druid stat view random user=druid password=57i5uvjummhjqr53934n5vlfrp
+2020-01-11 20:53:37,356 [INFO][org.apache.shiro.web.env.EnvironmentLoader] - Starting Shiro environment initialization.
+2020-01-11 20:53:37,705 [DEBUG][org.nutz.boot.starter.shiro.ShiroEnvStarter] - using default SessionDAO = EnterpriseCacheSessionDAO
+2020-01-11 20:53:37,720 [DEBUG][org.nutz.boot.starter.shiro.ShiroEnvStarter] - using session cache = redis
+2020-01-11 20:53:37,773 [WARN][net.sf.ehcache.config.CacheConfiguration] - Statistics can no longer be enabled via configuration.
+2020-01-11 20:53:38,085 [INFO][org.nutz.plugins.cache.impl.lcache.LCacheManager] - JedisAgent is Ready ...
+2020-01-11 20:53:38,085 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCacheManager] - psubscribe LCache:*
+2020-01-11 20:53:38,389 [DEBUG][org.nutz.dao.jdbc.Jdbcs] - Jdbcs init complete
+2020-01-11 20:53:38,391 [INFO][org.nutz.dao.jdbc.Jdbcs] - Get Connection from DataSource for JdbcExpert, if you lock at here, check your database server and configure
+2020-01-11 20:53:38,551 [INFO][com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} inited
+2020-01-11 20:53:38,843 [DEBUG][org.nutz.dao.impl.DaoSupport] - select expert : org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert
+2020-01-11 20:53:38,851 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC Driver --> mysql-connector-java-8.0.18 (Revision: fef2894d751d47223192b706977b4a5bc41e6be4)
+2020-01-11 20:53:38,852 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC Name   --> MySQL Connector/J
+2020-01-11 20:53:38,852 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC URL    --> jdbc:mysql://127.0.0.1:3306/rk_admin?characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+2020-01-11 20:53:39,054 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_client=utf8mb4
+2020-01-11 20:53:39,054 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_connection=utf8mb4
+2020-01-11 20:53:39,054 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_database=utf8
+2020-01-11 20:53:39,054 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_filesystem=binary
+2020-01-11 20:53:39,055 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_results=
+2020-01-11 20:53:39,055 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_server=utf8mb4
+2020-01-11 20:53:39,055 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_system=utf8
+2020-01-11 20:53:39,055 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_sets_dir=/usr/share/mysql-8.0/charsets/
+2020-01-11 20:53:39,060 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : binlog_format=ROW
+2020-01-11 20:53:39,064 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : database=rk_admin
+2020-01-11 20:53:39,067 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : user=root@172.17.0.1
+2020-01-11 20:53:39,122 [DEBUG][org.nutz.dao.impl.DaoSupport] - Database info --> MYSQL:[MySQL - 8.0.18]
+2020-01-11 20:53:39,131 [DEBUG][org.nutz.dao.impl.DaoSupport] - SqlManager Sql count=0
+2020-01-11 20:53:39,301 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.User
+2020-01-11 20:53:39,310 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Role
+2020-01-11 20:53:39,314 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Cache with name 'com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache' does not yet exist.  Creating now.
+2020-01-11 20:53:39,340 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Added EhCache named [com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache]
+2020-01-11 20:53:39,369 [DEBUG][org.nutz.boot.starter.shiro.NbResourceBasedWebEnvironment] - ioc name=shiroFilterChainResolver not found, fallback to shiro.ini.urls
+2020-01-11 20:53:39,371 [DEBUG][org.nutz.boot.starter.shiro.NbResourceBasedWebEnvironment] - shiro ini urls  ---> 
+[urls]
+
+2020-01-11 20:53:39,386 [INFO][org.apache.shiro.web.env.EnvironmentLoader] - Shiro environment initialized in 2028 ms.
+2020-01-11 20:53:39,393 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=whale pathSpec=/*
+2020-01-11 20:53:39,398 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=druid pathSpec=/*
+2020-01-11 20:53:39,401 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=shiro pathSpec=/*
+2020-01-11 20:53:39,404 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=nutz pathSpec=/*
+2020-01-11 20:53:39,441 [INFO][org.nutz.mvc.NutFilter] - NutFilter[nutz] starting ...
+2020-01-11 20:53:39,444 [INFO][org.nutz.resource.impl.ErrorResourceLocation] - [loc=/Users/kouxian/git/rk_svnadmin/target/classes/static/WEB-INF/classes]not exist
+2020-01-11 20:53:39,446 [DEBUG][org.nutz.mvc.config.AbstractNutConfig] - Loading by class org.nutz.boot.starter.nutz.mvc.NbMvcLoading
+2020-01-11 20:53:39,452 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz Version : 1.r.68-SNAPSHOT 
+2020-01-11 20:53:39,452 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is initializing ...
+2020-01-11 20:53:39,453 [DEBUG][org.nutz.mvc.impl.NutLoading] - Web Container Information:
+2020-01-11 20:53:39,453 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Default Charset : UTF-8
+2020-01-11 20:53:39,453 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Current . path  : /Users/kouxian/git/rk_svnadmin/.
+2020-01-11 20:53:39,453 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Java Version    : 1.8.0_144
+2020-01-11 20:53:39,454 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - File separator  : /
+2020-01-11 20:53:39,456 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Timezone        : Asia/Shanghai
+2020-01-11 20:53:39,457 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - OS              : Mac OS X x86_64
+2020-01-11 20:53:39,457 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - ServerInfo      : jetty/9.4.22.v20191022
+2020-01-11 20:53:39,457 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Servlet API     : 3.1
+2020-01-11 20:53:39,457 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - ContextPath     : 
+2020-01-11 20:53:39,458 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - context.tempdir : /Users/kouxian/git/rk_svnadmin/temp
+2020-01-11 20:53:39,459 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - MainModule      : com.rekoe.CloudLauncher
+2020-01-11 20:53:39,462 [DEBUG][org.nutz.mvc.impl.NutLoading] - >> app.root = /Users/kouxian/git/rk_svnadmin/target/classes/static
+2020-01-11 20:53:39,467 [INFO][org.nutz.mvc.impl.NutLoading] - Build URL mapping by org.nutz.mvc.impl.UrlMappingImpl ...
+2020-01-11 20:53:39,468 [DEBUG][org.nutz.mvc.impl.NutLoading] - add ViewMaker from Ioc by name=$views_freekmarker
+2020-01-11 20:53:39,469 [DEBUG][org.nutz.mvc.impl.NutLoading] - @Views(FreemarkerViewMaker.class,DefaultViewMaker.class)
+2020-01-11 20:53:39,471 [DEBUG][org.nutz.mvc.impl.NutLoading] - @ChainBy(org.nutz.mvc.impl.NutActionChainMaker)
+2020-01-11 20:53:39,477 [DEBUG][org.nutz.mvc.impl.Loadings] - module class location 'file:/Users/kouxian/git/rk_svnadmin/target/classes/'
+2020-01-11 20:53:39,477 [DEBUG][org.nutz.mvc.impl.Loadings] -  > scan 'com.rekoe'
+2020-01-11 20:53:39,517 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.PermissionAct'
+2020-01-11 20:53:39,520 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminUserAct'
+2020-01-11 20:53:39,520 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.FrameAct'
+2020-01-11 20:53:39,520 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminSvnUserAct'
+2020-01-11 20:53:39,520 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectAct'
+2020-01-11 20:53:39,521 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminCommonAct'
+2020-01-11 20:53:39,521 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminRoleAct'
+2020-01-11 20:53:39,521 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.PermissionCategoryAct'
+2020-01-11 20:53:39,522 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.WelcomeAct'
+2020-01-11 20:53:39,522 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectGroupUsrAct'
+2020-01-11 20:53:39,522 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminLoginAct'
+2020-01-11 20:53:39,522 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectGroupAct'
+2020-01-11 20:53:39,522 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.IndexAct'
+2020-01-11 20:53:39,522 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.IpSearchAction'
+2020-01-11 20:53:39,523 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.OauthLoginAct'
+2020-01-11 20:53:39,638 [DEBUG][org.nutz.mvc.impl.NutLoading] - Use org.nutz.mvc.impl.NutEntryDeterminer as EntryMethodDeterminer
+2020-01-11 20:53:39,696 [INFO][org.nutz.mvc.impl.NutActionChainMaker] - Optional processor class not found, disabled : org.nutz.plugins.validation.ValidationProcessor
+2020-01-11 20:53:39,812 [INFO][org.nutz.boot.starter.freemarker.FreeMarkerConfigurer] - using Directory for TemplateLoading : /Users/kouxian/git/rk_svnadmin/src/main/resources/
+2020-01-11 20:53:39,830 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/add' >> (AdminProjectGroupUsrAct.java:67).add : String     | @Ok(fm:template.admin.project_group_usr.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,834 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/delete' >> (AdminProjectGroupUsrAct.java:99).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,836 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/list' >> (AdminProjectGroupUsrAct.java:55).list : Pagination | @Ok(fm:template.admin.project_group_usr.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,837 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/all_email' >> (AdminProjectGroupUsrAct.java:117).all_email : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,839 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/email' >> (AdminProjectGroupUsrAct.java:128).email : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,841 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/o_save' >> (AdminProjectGroupUsrAct.java:77).o_save : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,844 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/index_main'         >> (WelcomeAct.java:18).index            : void       | @Ok(fm:template.admin.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,846 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/main'               >> (WelcomeAct.java:30).main             : void       | @Ok(fm:template.admin.index) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,850 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/left'               >> (WelcomeAct.java:35).left             : void       | @Ok(fm:template.admin.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,850 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/right'              >> (WelcomeAct.java:40).right            : void       | @Ok(fm:template.admin.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,851 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/top'                >> (WelcomeAct.java:24).top              : boolean    | @Ok(fm:template.admin.top) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,853 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/add' >> (PermissionCategoryAct.java:58).add   : void       | @Ok(fm:template.admin.user.permission_category.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,854 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/update' >> (PermissionCategoryAct.java:50).update : boolean    | @Ok(>>:/admin/permission/category/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,855 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/delete' >> (PermissionCategoryAct.java:73).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,856 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/list' >> (PermissionCategoryAct.java:36).list  : Pagination | @Ok(fm:template.admin.user.permission_category.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,856 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/save' >> (PermissionCategoryAct.java:64).save  : void       | @Ok(>>:/admin/permission/category/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,860 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/edit' >> (PermissionCategoryAct.java:43).edit  : PermissionCategory | @Ok(fm:template.admin.user.permission_category.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,866 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/success'     >> (AdminCommonAct.java:38).success      : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,867 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/forbit'      >> (AdminCommonAct.java:32).forbit       : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,868 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/unauthorized' >> (AdminCommonAct.java:26).unauthorized : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,869 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/login'               >> (IndexAct.java:20).login              : void       | @Ok(fm:template.login.login) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,875 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/main'    >> (FrameAct.java:14).userMain           : void       | @Ok(fm:template.admin.user.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,876 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/left'    >> (FrameAct.java:19).userLeft           : void       | @Ok(fm:template.admin.user.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,876 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/right'   >> (FrameAct.java:24).userRight          : void       | @Ok(fm:template.admin.user.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,878 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/main' >> (FrameAct.java:32).accountPwdMain     : void       | @Ok(fm:template.admin.account.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,878 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/left' >> (FrameAct.java:37).accountPwdLeft     : void       | @Ok(fm:template.admin.account.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,879 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/right' >> (FrameAct.java:42).gamePwdRight       : void       | @Ok(fm:template.admin.account.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,880 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/main' >> (FrameAct.java:50).svn_user_main      : void       | @Ok(fm:template.admin.svn_user.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,880 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/left' >> (FrameAct.java:55).svn_user_left      : void       | @Ok(fm:template.admin.svn_user.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,882 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/right' >> (FrameAct.java:60).svn_user_right     : void       | @Ok(fm:template.admin.svn_user.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,886 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/main' >> (FrameAct.java:68).project_main       : void       | @Ok(fm:template.admin.project.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,888 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/left' >> (FrameAct.java:73).project_left       : void       | @Ok(fm:template.admin.project.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,889 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/right' >> (FrameAct.java:78).project_right      : void       | @Ok(fm:template.admin.project.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,894 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/main'          >> (AdminUserAct.java:59).main           : void       | @Ok(fm:template.admin.common.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,896 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/add'           >> (AdminUserAct.java:72).add            : List       | @Ok(fm:template.admin.user.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,896 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/lock'          >> (AdminUserAct.java:143).lock          : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,897 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/update'        >> (AdminUserAct.java:129).update        : Object     | @Ok(>>:/admin/user/list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,902 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/check/username' >> (AdminUserAct.java:93).checkName      : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,903 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/delete'        >> (AdminUserAct.java:79).delete         : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,905 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/list'          >> (AdminUserAct.java:65).list           : Pagination | @Ok(fm:template.admin.user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,917 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/save'          >> (AdminUserAct.java:87).save           : boolean    | @Ok(>>:${obj==true?'/admin/user/list.rk':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,921 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/edit'          >> (AdminUserAct.java:107).edit          : User       | @Ok(fm:template.admin.user.edit) @Fail(json ) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,923 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/re_update' >> (AdminUserAct.java:215).regUpate      : boolean    | @Ok(>>:${obj?'/admin/main':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,925 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/add_user'      >> (AdminUserAct.java:185).add_user      : void       | @Ok(fm:template.admin.user.add_user) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,926 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/check_email'   >> (AdminUserAct.java:99).checkEmail     : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,928 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/check_current_password' >> (AdminUserAct.java:160).checkCurrentPassword : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,929 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/edit'  >> (AdminUserAct.java:175).profileEdit   : Subject    | @Ok(fm:template.admin.profile.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,932 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/save_user'     >> (AdminUserAct.java:191).save_user     : Object     | @Ok(>>:/admin/user/list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,932 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/update' >> (AdminUserAct.java:203).profileUpdate : boolean    | @Ok(fm:template.admin.profile.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,937 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/change_pwd'    >> (AdminUserAct.java:236).change_pwd    : void       | @Ok(fm:template.admin.account.change_pwd) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,938 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/pwd_updata'    >> (AdminUserAct.java:242).pwd_updata    : Object     | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,940 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/add'       >> (AdminSvnUserAct.java:86).add         : void       | @Ok(fm:template.admin.svn_user.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,941 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/lock'      >> (AdminSvnUserAct.java:217).lock       : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,941 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/list'      >> (AdminSvnUserAct.java:64).list        : Pagination | @Ok(fm:template.admin.svn_user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,952 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/edit'      >> (AdminSvnUserAct.java:93).edit        : Usr        | @Ok(fm:template.admin.svn_user.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,952 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/lock_list' >> (AdminSvnUserAct.java:75).lock_list   : Pagination | @Ok(fm:template.admin.svn_user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,953 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/o_save'    >> (AdminSvnUserAct.java:101).o_save     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,954 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/o_update'  >> (AdminSvnUserAct.java:136).o_update   : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,954 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/restpwd'   >> (AdminSvnUserAct.java:184).restpwd    : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,955 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/unlock'    >> (AdminSvnUserAct.java:248).unlock     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,956 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/add'           >> (AdminRoleAct.java:84).add            : List       | @Ok(fm:template.admin.user.role.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,956 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/update'        >> (AdminRoleAct.java:66).update         : void       | @Ok(>>:/admin/role/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,957 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/delete'        >> (AdminRoleAct.java:107).delete        : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,958 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/list'          >> (AdminRoleAct.java:49).list           : Object     | @Ok(fm:template.admin.user.role.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,959 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/save'          >> (AdminRoleAct.java:91).save           : boolean    | @Ok(>>:${obj==true?'/role/list.rk':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,960 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/edit'          >> (AdminRoleAct.java:56).edit           : Object     | @Ok(fm:template.admin.user.role.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,963 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/add'     >> (PermissionAct.java:67).add           : List       | @Ok(fm:template.admin.user.permission.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,965 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/update'  >> (PermissionAct.java:87).update        : boolean    | @Ok(>>:/admin/permission/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,967 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/delete'  >> (PermissionAct.java:75).delete        : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,970 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/list'    >> (PermissionAct.java:44).list          : Pagination | @Ok(fm:template.admin.user.permission.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,970 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/save'    >> (PermissionAct.java:98).save          : void       | @Ok(>>:/admin/permission/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,973 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/edit'    >> (PermissionAct.java:58).edit          : List       | @Ok(fm:template.admin.user.permission.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,973 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/list_category/?' >> (PermissionAct.java:51).listCategory  : Pagination | @Ok(fm:template.admin.user.permission.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,974 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/add'  >> (AdminProjectGroupAct.java:40).add    : String     | @Ok(fm:template.admin.project_group.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,975 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/delete' >> (AdminProjectGroupAct.java:59).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,975 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/list' >> (AdminProjectGroupAct.java:32).list   : Pagination | @Ok(fm:template.admin.project_group.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,976 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/o_save' >> (AdminProjectGroupAct.java:47).o_save : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,977 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/add'        >> (AdminProjectAct.java:55).add         : void       | @Ok(fm:template.admin.project.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,977 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/init'       >> (AdminProjectAct.java:120).init       : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,978 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/delete'     >> (AdminProjectAct.java:182).delete     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,978 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/list'       >> (AdminProjectAct.java:48).list        : Pagination | @Ok(fm:template.admin.project.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,978 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/edit'       >> (AdminProjectAct.java:61).edit        : Pj         | @Ok(fm:template.admin.project.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,979 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/conf'       >> (AdminProjectAct.java:208).conf       : ProjectConfig | @Ok(fm:template.admin.project.config) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,979 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/o_save'     >> (AdminProjectAct.java:68).o_save      : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,980 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/o_update'   >> (AdminProjectAct.java:223).o_update   : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,982 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/rep'        >> (AdminProjectAct.java:83).rep         : String     | @Ok(fm:template.admin.project.rep) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,983 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth'     >> (AdminProjectAct.java:135).pjauth     : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,987 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/ajaxtreeservice' >> (AdminProjectAct.java:169).ajaxTreeService : String     | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,991 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth_delete' >> (AdminProjectAct.java:261).pjauth_delete : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,993 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth/delete' >> (AdminProjectAct.java:193).pjauth_delete : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,994 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/conf/update' >> (AdminProjectAct.java:215).conf_update : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,995 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth/save' >> (AdminProjectAct.java:231).pjauth_save : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,995 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/file_add'   >> (AdminProjectAct.java:243).file_add   : String     | @Ok(fm:template.admin.project.add_dir) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,995 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/file_save'  >> (AdminProjectAct.java:253).file_save  : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:39,996 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/register'           >> (AdminLoginAct.java:94).register      : Object     | @Ok(fm:template.front.account.create_user) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:40,038 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/login'              >> (AdminLoginAct.java:56).login         : View       | @Ok(null ) @Fail(>>:/admin/common/unauthorized.rk) | by 1 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:40,039 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/logout'             >> (AdminLoginAct.java:88).logout        : void       | @Ok(>>:/user/login.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:40,040 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/login/?'             >> (OauthLoginAct.java:47).login         : void       | @Ok(void ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:40,040 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/logout'              >> (OauthLoginAct.java:69).logout        : void       | @Ok(>>:/admin/index.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:40,040 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/authonly'            >> (OauthLoginAct.java:40).authOnly      : Object     | @Ok(null ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:40,042 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/api/ip/search'            >> (IpSearchAction.java:20).search       : String     | @Ok(raw:json) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 20:53:40,043 [INFO][org.nutz.mvc.impl.NutLoading] - Found 101 module methods
+2020-01-11 20:53:40,043 [DEBUG][org.nutz.mvc.impl.NutLoading] - Localization: org.nutz.mvc.impl.NutMessageLoader('msg/')  dft<zh-CN>
+2020-01-11 20:54:29,134 [DEBUG][org.nutz.mvc.impl.NutMessageLoader] - Load Messages in 2 resource : [[jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-mvc/2.3.9-SNAPSHOT/nutzboot-starter-nutz-mvc-2.3.9-SNAPSHOT.jar!/msg/emtry.properties, File[/Users/kouxian/git/rk_svnadmin/target/classes/msg/zh_CN/MessageResources.properties]]]
+2020-01-11 21:00:28,377 [DEBUG][org.nutz.mvc.impl.NutMessageLoader] - Message Loaded, size = 2
+2020-01-11 21:01:28,001 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is up in 468541ms
+2020-01-11 21:01:28,001 [INFO][org.nutz.mvc.NutFilter] - exclusionsPrefix  = ^(/druid/)
+2020-01-11 21:01:28,177 [DEBUG][org.nutz.boot.starter.jetty.JettyStarter] - Jetty monitor props:
+----------------------------------------------
+http.port                                : 8084
+http.host                                : 0.0.0.0
+http.idleTimeout                         : 300000
+https.enable                             : false
+welcome_files                            : index.html,index.htm,index.do
+maxFormContentSize                       : 1073741824
+----------------------------------------------
+2020-01-11 21:01:28,211 [INFO][org.nutz.boot.starter.quartz.QuartzStarter] - Starting Quartz Scheduler now
+2020-01-11 21:01:28,243 [INFO][org.quartz.core.QuartzScheduler] - Scheduler NutzbootScheduler_$_NON_CLUSTERED started.
+2020-01-11 21:01:28,273 [DEBUG][org.nutz.integration.quartz.NutQuartzCronJobFactory] - found cron job packages = com.rekoe
+2020-01-11 21:01:28,306 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.ProjectConfig
+2020-01-11 21:01:28,519 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT COUNT(*) FROM system_user 
+2020-01-11 21:01:28,524 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=5ms, sql=SELECT COUNT(*) FROM system_user 
+2020-01-11 21:01:28,543 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM permission_category 
+2020-01-11 21:01:28,552 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=9ms, sql=SELECT * FROM permission_category 
+2020-01-11 21:01:28,554 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM system_permission 
+2020-01-11 21:01:28,570 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=15ms, sql=SELECT * FROM system_permission 
+2020-01-11 21:01:28,587 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM permission_category  WHERE  1 != 1 
+2020-01-11 21:01:28,590 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM permission_category  WHERE  1 != 1 
+2020-01-11 21:01:28,592 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:01:28,605 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=12ms, sql=SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:01:28,616 [INFO][org.nutz.boot.NbApp] - NB started : 473461ms
+2020-01-11 21:01:33,714 [INFO][org.apache.shiro.session.mgt.AbstractValidatingSessionManager] - Enabling session validation scheduler...
+2020-01-11 21:01:33,718 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Using existing EHCache named [shiro-activeSessionCache]
+2020-01-11 21:01:33,863 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=5hk7kcqps6jhho0ens2020tq94:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:01:33,865 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=5hk7kcqps6jhho0ens2020tq94:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:01:33,881 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=5hk7kcqps6jhho0ens2020tq94:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:01:33,884 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=5hk7kcqps6jhho0ens2020tq94:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:01:33,888 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:08:52,460 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=5hk7kcqps6jhho0ens2020tq94:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:08:52,466 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=5hk7kcqps6jhho0ens2020tq94:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:08:52,466 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:08:56,344 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:08:56,344 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:09:03,401 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:09:07,110 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:09:33,214 [INFO][org.nutz.boot.banner.SimpleBannerPrinter] - 
+ _   _ ______                                      ___   
+| \ | || ___ \  ______ ______ ______ ______ ______| \ \  
+|  \| || |_/ / |______|______|______|______|______| |\ \ 
+| . ` || ___ \  ______ ______ ______ ______ ______| | > >
+| |\  || |_/ / |______|______|______|______|______| |/ / 
+\_| \_/\____/                                     |_/_/  
+  
+:: Nutz Boot ::   (2.3.8.v20191031)
+
+2020-01-11 21:09:33,314 [DEBUG][org.nutz.boot.config.impl.PropertiesConfigureLoader] - load /Users/kouxian/git/rk_svnadmin/target/classes/application.properties
+2020-01-11 21:09:33,447 [DEBUG][org.nutz.castor.Castors] - Using 107 castor for Castors
+2020-01-11 21:09:33,475 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -  > scan 'com.rekoe'
+2020-01-11 21:09:33,656 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'cloudLauncher                           ' - com.rekoe.CloudLauncher
+2020-01-11 21:09:33,669 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'currentTime                             ' - com.rekoe.web.freemarker.CurrentTimeDirective
+2020-01-11 21:09:33,678 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'pagination                              ' - com.rekoe.web.freemarker.PaginationDirective
+2020-01-11 21:09:33,678 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permission                              ' - com.rekoe.web.freemarker.PermissionDirective
+2020-01-11 21:09:33,679 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'htmlCut                                 ' - com.rekoe.web.freemarker.HtmlCutDirective
+2020-01-11 21:09:33,680 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'process                                 ' - com.rekoe.web.freemarker.ProcessTimeDirective
+2020-01-11 21:09:33,681 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'timeFormat                              ' - com.rekoe.web.freemarker.TimeFormatDirective
+2020-01-11 21:09:33,683 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionAct                           ' - com.rekoe.module.admin.PermissionAct
+2020-01-11 21:09:33,693 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminUserAct                            ' - com.rekoe.module.admin.AdminUserAct
+2020-01-11 21:09:33,700 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'frameAct                                ' - com.rekoe.module.admin.FrameAct
+2020-01-11 21:09:33,707 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminSvnUserAct                         ' - com.rekoe.module.admin.AdminSvnUserAct
+2020-01-11 21:09:33,711 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectAct                         ' - com.rekoe.module.admin.AdminProjectAct
+2020-01-11 21:09:33,718 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminCommonAct                          ' - com.rekoe.module.admin.AdminCommonAct
+2020-01-11 21:09:33,719 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminRoleAct                            ' - com.rekoe.module.admin.AdminRoleAct
+2020-01-11 21:09:33,721 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionCategoryAct                   ' - com.rekoe.module.admin.PermissionCategoryAct
+2020-01-11 21:09:33,723 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'welcomeAct                              ' - com.rekoe.module.admin.WelcomeAct
+2020-01-11 21:09:33,725 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectGroupUsrAct                 ' - com.rekoe.module.admin.AdminProjectGroupUsrAct
+2020-01-11 21:09:33,728 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminLoginAct                           ' - com.rekoe.module.admin.AdminLoginAct
+2020-01-11 21:09:33,734 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectGroupAct                    ' - com.rekoe.module.admin.AdminProjectGroupAct
+2020-01-11 21:09:33,735 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'indexAct                                ' - com.rekoe.module.IndexAct
+2020-01-11 21:09:33,735 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'ipSearchAction                          ' - com.rekoe.module.IpSearchAction
+2020-01-11 21:09:33,737 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'oauthLoginAct                           ' - com.rekoe.module.OauthLoginAct
+2020-01-11 21:09:33,742 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'doCommit                                ' - com.rekoe.utils.DoCommit
+2020-01-11 21:09:33,744 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'quartzService                           ' - com.rekoe.service.QuartzService
+2020-01-11 21:09:33,748 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'treeService                             ' - com.rekoe.service.DefaultTreeService
+2020-01-11 21:09:33,749 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'userService                             ' - com.rekoe.service.UserService
+2020-01-11 21:09:33,755 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'roleService                             ' - com.rekoe.service.RoleService
+2020-01-11 21:09:33,757 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectGroupService                     ' - com.rekoe.service.ProjectGroupService
+2020-01-11 21:09:33,760 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectAuthService                      ' - com.rekoe.service.ProjectAuthService
+2020-01-11 21:09:33,761 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectService                          ' - com.rekoe.service.ProjectService
+2020-01-11 21:09:33,767 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'usrService                              ' - com.rekoe.service.UsrService
+2020-01-11 21:09:33,768 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'repTreeNodeService                      ' - com.rekoe.service.RepTreeNodeService
+2020-01-11 21:09:33,773 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'svnService                              ' - com.rekoe.service.SvnService
+2020-01-11 21:09:33,774 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionCategoryService               ' - com.rekoe.service.PermissionCategoryService
+2020-01-11 21:09:33,775 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'repositoryService                       ' - com.rekoe.service.RepositoryService
+2020-01-11 21:09:33,782 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'uploadService                           ' - com.rekoe.service.UploadService
+2020-01-11 21:09:33,783 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectUserService                      ' - com.rekoe.service.ProjectUserService
+2020-01-11 21:09:33,784 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'authorityService                        ' - com.rekoe.service.AuthorityServiceImpl
+2020-01-11 21:09:33,785 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'emailService                            ' - com.rekoe.service.EmailServiceImpl
+2020-01-11 21:09:33,786 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'svnUserService                          ' - com.rekoe.service.SvnUserService
+2020-01-11 21:09:33,787 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectGroupUsrService                  ' - com.rekoe.service.ProjectGroupUsrService
+2020-01-11 21:09:33,792 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'idFactory                               ' - com.rekoe.service.IdWorkerService
+2020-01-11 21:09:33,796 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectConfigService                    ' - com.rekoe.service.ProjectConfigService
+2020-01-11 21:09:33,797 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'defaultTreeFactory                      ' - com.rekoe.service.DefaultTreeFactory
+2020-01-11 21:09:33,798 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionService                       ' - com.rekoe.service.PermissionService
+2020-01-11 21:09:33,817 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroRealm                              ' - com.rekoe.shiro.realm.UsernamePasswordRealm
+2020-01-11 21:09:33,839 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -  > scan 'org.nutz.boot.starter'
+2020-01-11 21:09:33,924 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroFilterStarter                      ' - org.nutz.boot.starter.shiro.ShiroFilterStarter
+2020-01-11 21:09:33,928 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroEnvStarter                         ' - org.nutz.boot.starter.shiro.ShiroEnvStarter
+2020-01-11 21:09:33,932 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'freeMarkerConfigurer                    ' - org.nutz.boot.starter.freemarker.FreeMarkerConfigurer
+2020-01-11 21:09:33,938 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add '$views_freekmarker                      ' - org.nutz.boot.starter.freemarker.FreemarkerViewMaker
+2020-01-11 21:09:33,940 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'quartzStarter                           ' - org.nutz.boot.starter.quartz.QuartzStarter
+2020-01-11 21:09:33,940 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'whaleFilterStarter                      ' - org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter
+2020-01-11 21:09:33,943 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nutFilterStarter                        ' - org.nutz.boot.starter.nutz.mvc.NutFilterStarter
+2020-01-11 21:09:33,946 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nutDaoStarter                           ' - org.nutz.boot.starter.nutz.dao.NutDaoStarter
+2020-01-11 21:09:33,955 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'druidWebStatFilterStarter               ' - org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter
+2020-01-11 21:09:33,957 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'druidWebStatServletStarter              ' - org.nutz.boot.starter.jdbc.DruidWebStatServletStarter
+2020-01-11 21:09:33,958 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'dataSourceStarter                       ' - org.nutz.boot.starter.jdbc.DataSourceStarter
+2020-01-11 21:09:33,960 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'jettyStarter                            ' - org.nutz.boot.starter.jetty.JettyStarter
+2020-01-11 21:09:34,001 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nbServletContextListener                ' - org.nutz.boot.starter.servlet3.NbServletContextListener
+2020-01-11 21:09:34,008 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'ngrokClientStarter                      ' - org.nutz.boot.starter.ngrok.NgrokClientStarter
+2020-01-11 21:09:34,012 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-redis/2.3.9-SNAPSHOT/nutzboot-starter-redis-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,012 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-shiro/2.3.9-SNAPSHOT/nutzboot-starter-shiro-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,013 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-freemarker/2.3.9-SNAPSHOT/nutzboot-starter-freemarker-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,013 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-quartz/2.3.9-SNAPSHOT/nutzboot-starter-quartz-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,016 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-mvc/2.3.9-SNAPSHOT/nutzboot-starter-nutz-mvc-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,016 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-dao/2.3.9-SNAPSHOT/nutzboot-starter-nutz-dao-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,017 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-jdbc/2.3.9-SNAPSHOT/nutzboot-starter-jdbc-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,018 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-jetty/2.3.9-SNAPSHOT/nutzboot-starter-jetty-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,019 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-email/2.3.9-SNAPSHOT/nutzboot-starter-email-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,019 [DEBUG][org.nutz.boot.NbApp] - Found file:/Users/kouxian/git/nutzboot/nutzboot-starter/nutzboot-starter-freemarker/target/classes/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,023 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-ngrok/2.3.9-SNAPSHOT/nutzboot-starter-ngrok-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:09:34,091 [INFO][org.nutz.boot.NbApp] - Configure Manual:
+|id  |key                                     |required  |Possible Values     |Default   |Description         |                                starters|
+|----|----------------------------------------|----------|--------------------|----------|--------------------|----------------------------------------|
+|0   |druid.web.filter.exclusions             |no        |                    |          |需要排除的路径             |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|1   |druid.web.filter.principalCookieName    |no        |                    |          |用户权限信息的cookie属性名称   |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|2   |druid.web.filter.principalSessionName   |no        |                    |          |用户权限信息的session属性名称  |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|3   |druid.web.filter.profileEnable          |no        |                    |          |是否开启性能监控            |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|4   |druid.web.filter.realIpHeader           |no        |                    |          |Header中ReadIp对应的key |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|5   |druid.web.filter.sessionStatEnable      |no        |                    |true      |是否开启session状态监控     |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|6   |druid.web.filter.sessionStatMaxCount    |no        |                    |          |session最大状态数量       |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|7   |druid.web.servlet.allow                 |no        |                    |          |允许访问的ip列表           |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|8   |druid.web.servlet.deny                  |no        |                    |          |禁止访问的ip列表           |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|9   |druid.web.servlet.jmxPassword           |no        |                    |          |JMX的密码              |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|10  |druid.web.servlet.jmxUrl                |no        |                    |          |读取JMX信息的URL         |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|11  |druid.web.servlet.jmxUsername           |no        |                    |          |JMX的用户名             |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|12  |druid.web.servlet.loginPassword         |no        |                    |随机值,打印在日志中|访问monitor页面的密码      |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|13  |druid.web.servlet.loginUsername         |no        |                    |driud     |访问monitor页面的用户名     |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|14  |druid.web.servlet.resetEnable           |no        |                    |true      |是否允许重置统计结果          |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|15  |email.From                              |yes       |                    |          |email的写信人           |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|16  |email.HostName                          |yes       |                    |          |email的ip或域名地址       |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|17  |email.Password                          |yes       |                    |          |email的密码            |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|18  |email.SSLOnConnect                      |no        |                    |true      |email开启SSL连接        |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|19  |email.SmtpPort                          |yes       |                    |          |email的SmtpPort端口    |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|20  |email.UserName                          |yes       |                    |          |email的用户名           |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|21  |email.charset                           |no        |                    |UTF-8     |email的编码            |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|22  |freemarker.cache_time                   |no        |                    |-1000     |模版缓存时间              |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|23  |freemarker.prefix                       |no        |                    |template  |模版路径                |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|24  |freemarker.suffix                       |no        |                    |.html     |文件后缀                |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|25  |jdbc.password                           |no        |                    |          |数据库密码               |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|26  |jdbc.type                               |no        |druid,simple,hikari |druid     |连接池类型               |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|27  |jdbc.url                                |yes       |                    |          |JDBC URL            |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|28  |jdbc.username                           |no        |                    |          |数据库用户名              |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|29  |jetty.contextPath                       |no        |                    |/         |上下文路径               |org.nutz.boot.starter.jetty.JettyStarter|
+|30  |jetty.gzip.enable                       |no        |                    |false     |是否启用gzip            |org.nutz.boot.starter.jetty.JettyStarter|
+|31  |jetty.gzip.level                        |no        |                    |-1        |gzip压缩级别            |org.nutz.boot.starter.jetty.JettyStarter|
+|32  |jetty.gzip.minContentSize               |no        |                    |512       |gzip压缩最小触发大小        |org.nutz.boot.starter.jetty.JettyStarter|
+|33  |jetty.host                              |no        |                    |0.0.0.0   |监听的ip地址             |org.nutz.boot.starter.jetty.JettyStarter|
+|34  |jetty.http.idleTimeout                  |no        |                    |300000    |空闲时间,单位毫秒           |org.nutz.boot.starter.jetty.JettyStarter|
+|35  |jetty.httpConfig.blockingTimeout        |no        |                    |-1        |阻塞超时                |org.nutz.boot.starter.jetty.JettyStarter|
+|36  |jetty.httpConfig.headerCacheSize        |no        |                    |8192      |头部缓冲区大小             |org.nutz.boot.starter.jetty.JettyStarter|
+|37  |jetty.httpConfig.maxErrorDispatches     |no        |                    |10        |最大错误重定向次数           |org.nutz.boot.starter.jetty.JettyStarter|
+|38  |jetty.httpConfig.outputAggregationSize  |no        |                    |8192      |输出聚合大小              |org.nutz.boot.starter.jetty.JettyStarter|
+|39  |jetty.httpConfig.outputBufferSize       |no        |                    |32768     |输出缓冲区大小             |org.nutz.boot.starter.jetty.JettyStarter|
+|40  |jetty.httpConfig.persistentConnectionsEnabled|no        |                    |true      |是否启用持久化连接           |org.nutz.boot.starter.jetty.JettyStarter|
+|41  |jetty.httpConfig.requestHeaderSize      |no        |                    |8192      |请求的头部最大值            |org.nutz.boot.starter.jetty.JettyStarter|
+|42  |jetty.httpConfig.responseHeaderSize     |no        |                    |8192      |响应的头部最大值            |org.nutz.boot.starter.jetty.JettyStarter|
+|43  |jetty.httpConfig.securePort             |no        |                    |          |安全协议的端口,例如8443      |org.nutz.boot.starter.jetty.JettyStarter|
+|44  |jetty.httpConfig.secureScheme           |no        |                    |          |安全协议,例如https        |org.nutz.boot.starter.jetty.JettyStarter|
+|45  |jetty.httpConfig.sendDateHeader         |no        |                    |true      |是否发送日期信息            |org.nutz.boot.starter.jetty.JettyStarter|
+|46  |jetty.httpConfig.sendServerVersion      |no        |                    |true      |是否发送jetty版本号        |org.nutz.boot.starter.jetty.JettyStarter|
+|47  |jetty.https.keystore.password           |no        |                    |          |Https的KeyStore的密码   |org.nutz.boot.starter.jetty.JettyStarter|
+|48  |jetty.https.keystore.path               |no        |                    |          |Https的KeyStore路径    |org.nutz.boot.starter.jetty.JettyStarter|
+|49  |jetty.https.port                        |no        |                    |          |Https端口号            |org.nutz.boot.starter.jetty.JettyStarter|
+|50  |jetty.maxFormContentSize                |no        |                    |1gb       |表单最大尺寸              |org.nutz.boot.starter.jetty.JettyStarter|
+|51  |jetty.maxFormKeys                       |no        |                    |1000      |表单最大key数量           |org.nutz.boot.starter.jetty.JettyStarter|
+|52  |jetty.page.404                          |no        |                    |          |自定义404页面,同理,其他状态码也是支持的|org.nutz.boot.starter.jetty.JettyStarter|
+|53  |jetty.page.java.lang.Throwable          |no        |                    |          |自定义java.lang.Throwable页面,同理,其他异常也支持|org.nutz.boot.starter.jetty.JettyStarter|
+|54  |jetty.port                              |no        |                    |8080      |监听的端口               |org.nutz.boot.starter.jetty.JettyStarter|
+|55  |jetty.session.file.storeDir             |no        |                    |./session |session持久化,file所用的目录|org.nutz.boot.starter.jetty.JettyStarter|
+|56  |jetty.session.ioc.datastore             |no        |                    |jettySessionDataStore|session持久化,SessionDataStore对应的ioc名称|org.nutz.boot.starter.jetty.JettyStarter|
+|57  |jetty.session.jdbc.datasource.iocname   |no        |                    |dataSource|session持久化,jdbc所用数据库源的ioc名称|org.nutz.boot.starter.jetty.JettyStarter|
+|58  |jetty.session.store.enable              |no        |                    |false     |是否启用session持久化      |org.nutz.boot.starter.jetty.JettyStarter|
+|59  |jetty.session.store.type                |no        |jdbc,file,ioc,redis |jdbc      |session持久化类型        |org.nutz.boot.starter.jetty.JettyStarter|
+|60  |jetty.staticPath                        |no        |                    |          |额外的静态文件路径           |org.nutz.boot.starter.jetty.JettyStarter|
+|61  |jetty.staticPathLocal                   |no        |                    |          |静态文件所在的本地路径         |org.nutz.boot.starter.jetty.JettyStarter|
+|62  |jetty.threadpool.idleTimeout            |no        |                    |60000     |线程池idleTimeout,单位毫秒 |org.nutz.boot.starter.jetty.JettyStarter|
+|63  |jetty.threadpool.maxThreads             |no        |                    |500       |线程池最大线程数maxThreads  |org.nutz.boot.starter.jetty.JettyStarter|
+|64  |jetty.threadpool.minThreads             |no        |                    |200       |线程池最小线程数minThreads  |org.nutz.boot.starter.jetty.JettyStarter|
+|65  |jetty.welcome_files                     |no        |                    |index.html,index.htm,index.do|WelcomeFile列表       |org.nutz.boot.starter.jetty.JettyStarter|
+|66  |ngrok.client.auth_token                 |no        |                    |4kg9lckq5og4ip02j736e3i7ku|秘钥                  |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|67  |ngrok.client.enable                     |no        |                    |true      |开关                  |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|68  |ngrok.client.hostname                   |no        |                    |          |期望的域名               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|69  |ngrok.client.srv_host                   |no        |                    |wendal.cn |服务器域名               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|70  |ngrok.client.srv_port                   |no        |                    |4443      |服务器端口               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|71  |ngrok.client.to_port                    |no        |                    |8080      |目标端口                |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|72  |nutz.dao.interceptor.cache.cache4Null   |no        |                    |true      |是否缓存null结果          |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|73  |nutz.dao.interceptor.cache.debug        |no        |                    |false     |打印daocache详细调试日志    |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|74  |nutz.dao.interceptor.cache.enable       |no        |                    |false     |是否使用daocache        |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|75  |nutz.dao.interceptor.cache.enableWhenTrans|no        |                    |false     |事务内是否启用daocache     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|76  |nutz.dao.interceptor.cache.provider.ioc.name|no        |                    |daoCacheProvider|daocache提供者DaoCacheProvider的IocBean名称|org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|77  |nutz.dao.interceptor.cache.provider.memory.cacheSize|no        |                    |          |daocache提供者MemoryDaoCacheProvider的默认缓存大小|org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|78  |nutz.dao.interceptor.cache.provider.type|no        |memory,ehcache,jedis,ioc|memory    |daocache提供者         |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|79  |nutz.dao.interceptor.cache.table.names  |no        |                    |          |需要缓存的表名称,英文逗号分隔     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|80  |nutz.dao.interceptor.cache.table.pattern|no        |                    |          |需要缓存的表名称的正则表达式      |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|81  |nutz.dao.interceptor.log.enable         |no        |                    |true      |是否打印dao的SQL日志       |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|82  |nutz.dao.interceptor.time.enable        |no        |                    |false     |是否打印dao的SQL耗时日志     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|83  |nutz.dao.sqls.path                      |no        |                    |sqls/     |sql目录               |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|84  |nutz.mvc.exclusions                     |no        |                    |          |排除指定请求路径的正则表达式      |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|85  |nutz.mvc.ignore                         |no        |                    |          |过滤指定请求路径的正则表达式      |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|86  |nutz.mvc.whale.enc.input                |no        |                    |UTF-8     |在其他Filter之前设置input编码|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|87  |nutz.mvc.whale.enc.output               |no        |                    |UTF-8     |在其他Filter之前设置output编码|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|88  |nutz.mvc.whale.http.hidden_method_param |no        |                    |          |隐形http方法参数转换所对应的参数名 |org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|89  |nutz.mvc.whale.http.method_override     |no        |                    |false     |是否允许使用X-HTTP-Method-Override|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|90  |nutz.mvc.whale.upload.enable            |no        |                    |false     |是否启用隐形Upload支持      |org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|91  |redis.database                          |no        |                    |0         |redis数据库序号          |org.nutz.boot.starter.redis.JedisStarter|
+|92  |redis.host                              |no        |                    |127.0.0.1 |redis服务器ip或域名       |org.nutz.boot.starter.redis.JedisStarter|
+|93  |redis.max_redir                         |no        |                    |10        |redis集群最大重定向次数      |org.nutz.boot.starter.redis.JedisStarter|
+|94  |redis.nodes                             |no        |                    |          |redis集群节点列表         |org.nutz.boot.starter.redis.JedisStarter|
+|95  |redis.password                          |no        |                    |          |redis密码             |org.nutz.boot.starter.redis.JedisStarter|
+|96  |redis.port                              |no        |                    |6379      |redis服务器端口          |org.nutz.boot.starter.redis.JedisStarter|
+|97  |redis.soTimeout                         |no        |                    |0         |redis写超时            |org.nutz.boot.starter.redis.JedisStarter|
+|98  |redis.timeout                           |no        |                    |2000      |redis读写超时           |org.nutz.boot.starter.redis.JedisStarter|
+|99  |shiro.ini.path                          |no        |                    |          |shiro.ini的路径,如果shiro.ini存在,就会使用它,否则走NB的内部逻辑|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|100 |shiro.ini.urls                          |no        |                    |          |urls过滤清单            |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|101 |shiro.realm.cache.enable                |no        |                    |          |realm是否缓存           |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|102 |shiro.session.cache.redis.debug         |no        |                    |false     |session持久化时redis的debug模式|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|103 |shiro.session.cache.redis.mode          |no        |                    |kv        |设置redis缓存的模式        |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|104 |shiro.session.cache.redis.ttl           |no        |                    |-1        |redis缓存的过期时间        |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|105 |shiro.session.cache.type                |no        |                    |memory    |设置使用的缓存类型           |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|106 |shiro.session.cookie.httpOnly           |no        |                    |true      |Cookie是否只读          |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|107 |shiro.session.cookie.maxAge             |no        |                    |946080000 |Cookie的过期时间,单位:毫秒   |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|108 |shiro.session.cookie.name               |no        |                    |sid       |Cookie的name         |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|109 |shiro.session.dao.iocName               |no        |                    |shiroSessionDao|SessionDao的ioc名称,设置并声明该IocBean,就能覆盖默认的SessionDao实现|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|110 |shiro.session.enable                    |no        |                    |true      |是否启用Shiro的Session管理 |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|111 |shiro.session.manager.globalSessionTimeout|no        |                    |1800000   |全局session过期时间       |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|112 |shiro.session.manager.sessionValidationInterval|no        |                    |3600000   |定期检查session过期的周期    |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|113 |shiro.session.manager.sessionValidationSchedulerEnabled|no        |                    |true      |是否定期检查session过期     |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|114 |shiro.url.login                         |no        |                    |/user/login|默认登录路径              |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|115 |shiro.url.logout_redirect               |no        |                    |/         |退出登录后的重定向路径         |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|116 |shiro.url.unauth                        |no        |                    |/user/login|访问未授权页面后的重定向路径      |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|117 |web.filter.order.nutz                   |no        |                    |          |指定NutFilter执行顺序     |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|118 |web.session.timeout                     |no        |                    |30        |Session空闲时间,单位分钟    |org.nutz.boot.starter.jetty.JettyStarter|
+2020-01-11 21:09:34,105 [INFO][org.nutz.ioc.impl.NutIoc] - ... NutIoc init complete
+2020-01-11 21:09:34,205 [INFO][org.quartz.impl.StdSchedulerFactory] - Using default implementation for ThreadExecutor
+2020-01-11 21:09:34,251 [INFO][org.quartz.core.SchedulerSignalerImpl] - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
+2020-01-11 21:09:34,252 [INFO][org.quartz.core.QuartzScheduler] - Quartz Scheduler v.2.3.0 created.
+2020-01-11 21:09:34,266 [INFO][org.quartz.simpl.RAMJobStore] - RAMJobStore initialized.
+2020-01-11 21:09:34,268 [INFO][org.quartz.core.QuartzScheduler] - Scheduler meta-data: Quartz Scheduler (v2.3.0) 'NutzbootScheduler' with instanceId 'NON_CLUSTERED'
+  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
+  NOT STARTED.
+  Currently in standby mode.
+  Number of jobs executed: 0
+  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 8 threads.
+  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
+
+2020-01-11 21:09:34,268 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'NutzbootScheduler' initialized from an externally provided properties instance.
+2020-01-11 21:09:34,268 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 2.3.0
+2020-01-11 21:09:34,269 [INFO][org.quartz.core.QuartzScheduler] - JobFactory set to: org.nutz.integration.quartz.NutQuartzJobFactory@10cf09e8
+2020-01-11 21:09:35,080 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add Servlet name=druid pathSpec=/druid/*
+2020-01-11 21:09:35,082 [INFO][org.nutz.boot.starter.jdbc.DruidWebStatServletStarter] - druid stat view random user=druid password=otedb16h7ejqvol922vpe7pld2
+2020-01-11 21:09:35,088 [INFO][org.apache.shiro.web.env.EnvironmentLoader] - Starting Shiro environment initialization.
+2020-01-11 21:09:35,430 [DEBUG][org.nutz.boot.starter.shiro.ShiroEnvStarter] - using default SessionDAO = EnterpriseCacheSessionDAO
+2020-01-11 21:09:35,445 [DEBUG][org.nutz.boot.starter.shiro.ShiroEnvStarter] - using session cache = redis
+2020-01-11 21:09:35,508 [WARN][net.sf.ehcache.config.CacheConfiguration] - Statistics can no longer be enabled via configuration.
+2020-01-11 21:09:35,870 [INFO][org.nutz.plugins.cache.impl.lcache.LCacheManager] - JedisAgent is Ready ...
+2020-01-11 21:09:35,871 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCacheManager] - psubscribe LCache:*
+2020-01-11 21:09:36,195 [DEBUG][org.nutz.dao.jdbc.Jdbcs] - Jdbcs init complete
+2020-01-11 21:09:36,195 [INFO][org.nutz.dao.jdbc.Jdbcs] - Get Connection from DataSource for JdbcExpert, if you lock at here, check your database server and configure
+2020-01-11 21:09:36,354 [INFO][com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} inited
+2020-01-11 21:09:36,659 [DEBUG][org.nutz.dao.impl.DaoSupport] - select expert : org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert
+2020-01-11 21:09:36,667 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC Driver --> mysql-connector-java-8.0.18 (Revision: fef2894d751d47223192b706977b4a5bc41e6be4)
+2020-01-11 21:09:36,667 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC Name   --> MySQL Connector/J
+2020-01-11 21:09:36,667 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC URL    --> jdbc:mysql://127.0.0.1:3306/rk_admin?characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+2020-01-11 21:09:36,863 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_client=utf8mb4
+2020-01-11 21:09:36,863 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_connection=utf8mb4
+2020-01-11 21:09:36,863 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_database=utf8
+2020-01-11 21:09:36,864 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_filesystem=binary
+2020-01-11 21:09:36,864 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_results=
+2020-01-11 21:09:36,864 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_server=utf8mb4
+2020-01-11 21:09:36,864 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_system=utf8
+2020-01-11 21:09:36,864 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_sets_dir=/usr/share/mysql-8.0/charsets/
+2020-01-11 21:09:36,868 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : binlog_format=ROW
+2020-01-11 21:09:36,871 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : database=rk_admin
+2020-01-11 21:09:36,874 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : user=root@172.17.0.1
+2020-01-11 21:09:36,927 [DEBUG][org.nutz.dao.impl.DaoSupport] - Database info --> MYSQL:[MySQL - 8.0.18]
+2020-01-11 21:09:36,935 [DEBUG][org.nutz.dao.impl.DaoSupport] - SqlManager Sql count=0
+2020-01-11 21:09:37,084 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.User
+2020-01-11 21:09:37,096 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Role
+2020-01-11 21:09:37,100 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Cache with name 'com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache' does not yet exist.  Creating now.
+2020-01-11 21:09:37,121 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Added EhCache named [com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache]
+2020-01-11 21:09:37,136 [DEBUG][org.nutz.boot.starter.shiro.NbResourceBasedWebEnvironment] - ioc name=shiroFilterChainResolver not found, fallback to shiro.ini.urls
+2020-01-11 21:09:37,136 [DEBUG][org.nutz.boot.starter.shiro.NbResourceBasedWebEnvironment] - shiro ini urls  ---> 
+[urls]
+
+2020-01-11 21:09:37,164 [INFO][org.apache.shiro.web.env.EnvironmentLoader] - Shiro environment initialized in 2076 ms.
+2020-01-11 21:09:37,171 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=whale pathSpec=/*
+2020-01-11 21:09:37,176 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=druid pathSpec=/*
+2020-01-11 21:09:37,177 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=shiro pathSpec=/*
+2020-01-11 21:09:37,180 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=nutz pathSpec=/*
+2020-01-11 21:09:37,193 [INFO][org.nutz.mvc.NutFilter] - NutFilter[nutz] starting ...
+2020-01-11 21:09:37,197 [INFO][org.nutz.resource.impl.ErrorResourceLocation] - [loc=/Users/kouxian/git/rk_svnadmin/target/classes/static/WEB-INF/classes]not exist
+2020-01-11 21:09:37,200 [DEBUG][org.nutz.mvc.config.AbstractNutConfig] - Loading by class org.nutz.boot.starter.nutz.mvc.NbMvcLoading
+2020-01-11 21:09:37,205 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz Version : 1.r.68-SNAPSHOT 
+2020-01-11 21:09:37,206 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is initializing ...
+2020-01-11 21:09:37,206 [DEBUG][org.nutz.mvc.impl.NutLoading] - Web Container Information:
+2020-01-11 21:09:37,206 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Default Charset : UTF-8
+2020-01-11 21:09:37,207 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Current . path  : /Users/kouxian/git/rk_svnadmin/.
+2020-01-11 21:09:37,207 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Java Version    : 1.8.0_144
+2020-01-11 21:09:37,207 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - File separator  : /
+2020-01-11 21:09:37,207 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Timezone        : Asia/Shanghai
+2020-01-11 21:09:37,208 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - OS              : Mac OS X x86_64
+2020-01-11 21:09:37,208 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - ServerInfo      : jetty/9.4.22.v20191022
+2020-01-11 21:09:37,208 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Servlet API     : 3.1
+2020-01-11 21:09:37,208 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - ContextPath     : 
+2020-01-11 21:09:37,208 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - context.tempdir : /Users/kouxian/git/rk_svnadmin/temp
+2020-01-11 21:09:37,208 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - MainModule      : com.rekoe.CloudLauncher
+2020-01-11 21:09:37,209 [DEBUG][org.nutz.mvc.impl.NutLoading] - >> app.root = /Users/kouxian/git/rk_svnadmin/target/classes/static
+2020-01-11 21:09:37,213 [INFO][org.nutz.mvc.impl.NutLoading] - Build URL mapping by org.nutz.mvc.impl.UrlMappingImpl ...
+2020-01-11 21:09:37,215 [DEBUG][org.nutz.mvc.impl.NutLoading] - add ViewMaker from Ioc by name=$views_freekmarker
+2020-01-11 21:09:37,217 [DEBUG][org.nutz.mvc.impl.NutLoading] - @Views(FreemarkerViewMaker.class,DefaultViewMaker.class)
+2020-01-11 21:09:37,221 [DEBUG][org.nutz.mvc.impl.NutLoading] - @ChainBy(org.nutz.mvc.impl.NutActionChainMaker)
+2020-01-11 21:09:37,232 [DEBUG][org.nutz.mvc.impl.Loadings] - module class location 'file:/Users/kouxian/git/rk_svnadmin/target/classes/'
+2020-01-11 21:09:37,232 [DEBUG][org.nutz.mvc.impl.Loadings] -  > scan 'com.rekoe'
+2020-01-11 21:09:37,258 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.PermissionAct'
+2020-01-11 21:09:37,259 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminUserAct'
+2020-01-11 21:09:37,259 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.FrameAct'
+2020-01-11 21:09:37,259 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminSvnUserAct'
+2020-01-11 21:09:37,259 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectAct'
+2020-01-11 21:09:37,260 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminCommonAct'
+2020-01-11 21:09:37,260 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminRoleAct'
+2020-01-11 21:09:37,260 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.PermissionCategoryAct'
+2020-01-11 21:09:37,260 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.WelcomeAct'
+2020-01-11 21:09:37,260 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectGroupUsrAct'
+2020-01-11 21:09:37,260 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminLoginAct'
+2020-01-11 21:09:37,261 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectGroupAct'
+2020-01-11 21:09:37,261 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.IndexAct'
+2020-01-11 21:09:37,261 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.IpSearchAction'
+2020-01-11 21:09:37,262 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.OauthLoginAct'
+2020-01-11 21:09:37,357 [DEBUG][org.nutz.mvc.impl.NutLoading] - Use org.nutz.mvc.impl.NutEntryDeterminer as EntryMethodDeterminer
+2020-01-11 21:09:37,404 [INFO][org.nutz.mvc.impl.NutActionChainMaker] - Optional processor class not found, disabled : org.nutz.plugins.validation.ValidationProcessor
+2020-01-11 21:09:37,538 [INFO][org.nutz.boot.starter.freemarker.FreeMarkerConfigurer] - using Directory for TemplateLoading : /Users/kouxian/git/rk_svnadmin/src/main/resources/
+2020-01-11 21:09:37,572 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/add' >> (AdminProjectGroupUsrAct.java:67).add : String     | @Ok(fm:template.admin.project_group_usr.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,575 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/delete' >> (AdminProjectGroupUsrAct.java:99).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,576 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/list' >> (AdminProjectGroupUsrAct.java:55).list : Pagination | @Ok(fm:template.admin.project_group_usr.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,577 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/email' >> (AdminProjectGroupUsrAct.java:128).email : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,579 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/o_save' >> (AdminProjectGroupUsrAct.java:77).o_save : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,579 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/all_email' >> (AdminProjectGroupUsrAct.java:117).all_email : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,581 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/index_main'         >> (WelcomeAct.java:18).index            : void       | @Ok(fm:template.admin.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,582 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/main'               >> (WelcomeAct.java:30).main             : void       | @Ok(fm:template.admin.index) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,583 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/left'               >> (WelcomeAct.java:35).left             : void       | @Ok(fm:template.admin.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,583 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/right'              >> (WelcomeAct.java:40).right            : void       | @Ok(fm:template.admin.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,584 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/top'                >> (WelcomeAct.java:24).top              : boolean    | @Ok(fm:template.admin.top) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,586 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/add' >> (PermissionCategoryAct.java:58).add   : void       | @Ok(fm:template.admin.user.permission_category.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,587 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/update' >> (PermissionCategoryAct.java:50).update : boolean    | @Ok(>>:/admin/permission/category/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,589 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/delete' >> (PermissionCategoryAct.java:73).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,589 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/list' >> (PermissionCategoryAct.java:36).list  : Pagination | @Ok(fm:template.admin.user.permission_category.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,592 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/save' >> (PermissionCategoryAct.java:64).save  : void       | @Ok(>>:/admin/permission/category/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,594 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/edit' >> (PermissionCategoryAct.java:43).edit  : PermissionCategory | @Ok(fm:template.admin.user.permission_category.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,598 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/forbit'      >> (AdminCommonAct.java:32).forbit       : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,599 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/success'     >> (AdminCommonAct.java:38).success      : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,599 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/unauthorized' >> (AdminCommonAct.java:26).unauthorized : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,600 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/login'               >> (IndexAct.java:20).login              : void       | @Ok(fm:template.login.login) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,602 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/main'    >> (FrameAct.java:15).userMain           : void       | @Ok(fm:template.admin.user.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,603 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/left'    >> (FrameAct.java:20).userLeft           : void       | @Ok(fm:template.admin.user.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,603 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/right'   >> (FrameAct.java:26).userRight          : void       | @Ok(fm:template.admin.user.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,605 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/main' >> (FrameAct.java:34).accountPwdMain     : void       | @Ok(fm:template.admin.account.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,608 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/left' >> (FrameAct.java:39).accountPwdLeft     : void       | @Ok(fm:template.admin.account.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,609 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/right' >> (FrameAct.java:44).gamePwdRight       : void       | @Ok(fm:template.admin.account.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,609 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/main' >> (FrameAct.java:52).svn_user_main      : void       | @Ok(fm:template.admin.svn_user.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,609 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/left' >> (FrameAct.java:57).svn_user_left      : void       | @Ok(fm:template.admin.svn_user.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,611 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/right' >> (FrameAct.java:62).svn_user_right     : void       | @Ok(fm:template.admin.svn_user.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,611 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/main' >> (FrameAct.java:70).project_main       : void       | @Ok(fm:template.admin.project.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,612 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/left' >> (FrameAct.java:75).project_left       : void       | @Ok(fm:template.admin.project.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,613 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/right' >> (FrameAct.java:80).project_right      : void       | @Ok(fm:template.admin.project.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,614 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/main'          >> (AdminUserAct.java:59).main           : void       | @Ok(fm:template.admin.common.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,615 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/add'           >> (AdminUserAct.java:72).add            : List       | @Ok(fm:template.admin.user.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,615 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/lock'          >> (AdminUserAct.java:143).lock          : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,617 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/update'        >> (AdminUserAct.java:129).update        : Object     | @Ok(>>:/admin/user/list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,621 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/check/username' >> (AdminUserAct.java:93).checkName      : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,622 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/delete'        >> (AdminUserAct.java:79).delete         : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,623 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/list'          >> (AdminUserAct.java:65).list           : Pagination | @Ok(fm:template.admin.user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,633 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/save'          >> (AdminUserAct.java:87).save           : boolean    | @Ok(>>:${obj==true?'/admin/user/list.rk':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,637 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/edit'          >> (AdminUserAct.java:107).edit          : User       | @Ok(fm:template.admin.user.edit) @Fail(json ) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,638 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/re_update' >> (AdminUserAct.java:215).regUpate      : boolean    | @Ok(>>:${obj?'/admin/main':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,640 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/add_user'      >> (AdminUserAct.java:185).add_user      : void       | @Ok(fm:template.admin.user.add_user) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,641 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/check_email'   >> (AdminUserAct.java:99).checkEmail     : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,642 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/check_current_password' >> (AdminUserAct.java:160).checkCurrentPassword : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,642 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/edit'  >> (AdminUserAct.java:175).profileEdit   : Subject    | @Ok(fm:template.admin.profile.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,643 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/save_user'     >> (AdminUserAct.java:191).save_user     : Object     | @Ok(>>:/admin/user/list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,650 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/update' >> (AdminUserAct.java:203).profileUpdate : boolean    | @Ok(fm:template.admin.profile.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,650 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/change_pwd'    >> (AdminUserAct.java:236).change_pwd    : void       | @Ok(fm:template.admin.account.change_pwd) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,652 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/pwd_updata'    >> (AdminUserAct.java:242).pwd_updata    : Object     | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,653 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/add'       >> (AdminSvnUserAct.java:86).add         : void       | @Ok(fm:template.admin.svn_user.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,654 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/lock'      >> (AdminSvnUserAct.java:217).lock       : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,655 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/list'      >> (AdminSvnUserAct.java:64).list        : Pagination | @Ok(fm:template.admin.svn_user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,657 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/edit'      >> (AdminSvnUserAct.java:93).edit        : Usr        | @Ok(fm:template.admin.svn_user.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,658 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/lock_list' >> (AdminSvnUserAct.java:75).lock_list   : Pagination | @Ok(fm:template.admin.svn_user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,659 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/o_save'    >> (AdminSvnUserAct.java:101).o_save     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,660 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/o_update'  >> (AdminSvnUserAct.java:136).o_update   : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,662 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/restpwd'   >> (AdminSvnUserAct.java:184).restpwd    : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,664 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/unlock'    >> (AdminSvnUserAct.java:248).unlock     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,665 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/add'           >> (AdminRoleAct.java:84).add            : List       | @Ok(fm:template.admin.user.role.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,667 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/update'        >> (AdminRoleAct.java:66).update         : void       | @Ok(>>:/admin/role/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,667 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/delete'        >> (AdminRoleAct.java:107).delete        : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,668 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/list'          >> (AdminRoleAct.java:49).list           : Object     | @Ok(fm:template.admin.user.role.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,670 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/save'          >> (AdminRoleAct.java:91).save           : boolean    | @Ok(>>:${obj==true?'/role/list.rk':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,671 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/edit'          >> (AdminRoleAct.java:56).edit           : Object     | @Ok(fm:template.admin.user.role.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,673 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/add'     >> (PermissionAct.java:67).add           : List       | @Ok(fm:template.admin.user.permission.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,674 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/update'  >> (PermissionAct.java:87).update        : boolean    | @Ok(>>:/admin/permission/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,674 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/delete'  >> (PermissionAct.java:75).delete        : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,675 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/list'    >> (PermissionAct.java:44).list          : Pagination | @Ok(fm:template.admin.user.permission.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,676 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/save'    >> (PermissionAct.java:98).save          : void       | @Ok(>>:/admin/permission/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,676 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/edit'    >> (PermissionAct.java:58).edit          : List       | @Ok(fm:template.admin.user.permission.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,677 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/list_category/?' >> (PermissionAct.java:51).listCategory  : Pagination | @Ok(fm:template.admin.user.permission.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,679 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/add'  >> (AdminProjectGroupAct.java:40).add    : String     | @Ok(fm:template.admin.project_group.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,679 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/delete' >> (AdminProjectGroupAct.java:59).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,680 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/list' >> (AdminProjectGroupAct.java:32).list   : Pagination | @Ok(fm:template.admin.project_group.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,681 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/o_save' >> (AdminProjectGroupAct.java:47).o_save : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,694 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/add'        >> (AdminProjectAct.java:55).add         : void       | @Ok(fm:template.admin.project.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,696 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/init'       >> (AdminProjectAct.java:120).init       : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,696 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/delete'     >> (AdminProjectAct.java:182).delete     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,697 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/list'       >> (AdminProjectAct.java:48).list        : Pagination | @Ok(fm:template.admin.project.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,697 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/edit'       >> (AdminProjectAct.java:61).edit        : Pj         | @Ok(fm:template.admin.project.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,697 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/o_save'     >> (AdminProjectAct.java:68).o_save      : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,705 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/o_update'   >> (AdminProjectAct.java:223).o_update   : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,713 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/rep'        >> (AdminProjectAct.java:83).rep         : String     | @Ok(fm:template.admin.project.rep) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,714 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth'     >> (AdminProjectAct.java:135).pjauth     : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,715 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/ajaxtreeservice' >> (AdminProjectAct.java:169).ajaxTreeService : String     | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,717 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth_delete' >> (AdminProjectAct.java:261).pjauth_delete : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,725 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth/delete' >> (AdminProjectAct.java:193).pjauth_delete : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,728 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/conf/update' >> (AdminProjectAct.java:215).conf_update : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,731 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth/save' >> (AdminProjectAct.java:231).pjauth_save : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,732 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/file_add'   >> (AdminProjectAct.java:243).file_add   : String     | @Ok(fm:template.admin.project.add_dir) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,733 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/file_save'  >> (AdminProjectAct.java:253).file_save  : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,734 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/conf'       >> (AdminProjectAct.java:208).conf       : ProjectConfig | @Ok(fm:template.admin.project.config) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,736 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/register'           >> (AdminLoginAct.java:94).register      : Object     | @Ok(fm:template.front.account.create_user) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,736 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/logout'             >> (AdminLoginAct.java:88).logout        : void       | @Ok(>>:/user/login.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,810 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/login'              >> (AdminLoginAct.java:56).login         : View       | @Ok(null ) @Fail(>>:/admin/common/unauthorized.rk) | by 1 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,820 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/logout'              >> (OauthLoginAct.java:69).logout        : void       | @Ok(>>:/admin/index.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,821 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/login/?'             >> (OauthLoginAct.java:47).login         : void       | @Ok(void ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,822 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/authonly'            >> (OauthLoginAct.java:40).authOnly      : Object     | @Ok(null ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,823 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/api/ip/search'            >> (IpSearchAction.java:20).search       : String     | @Ok(raw:json) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:09:37,823 [INFO][org.nutz.mvc.impl.NutLoading] - Found 101 module methods
+2020-01-11 21:09:37,824 [DEBUG][org.nutz.mvc.impl.NutLoading] - Localization: org.nutz.mvc.impl.NutMessageLoader('msg/')  dft<zh-CN>
+2020-01-11 21:09:37,832 [DEBUG][org.nutz.mvc.impl.NutMessageLoader] - Load Messages in 2 resource : [[jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-mvc/2.3.9-SNAPSHOT/nutzboot-starter-nutz-mvc-2.3.9-SNAPSHOT.jar!/msg/emtry.properties, File[/Users/kouxian/git/rk_svnadmin/target/classes/msg/zh_CN/MessageResources.properties]]]
+2020-01-11 21:09:37,836 [DEBUG][org.nutz.mvc.impl.NutMessageLoader] - Message Loaded, size = 2
+2020-01-11 21:09:37,837 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is up in 629ms
+2020-01-11 21:09:37,837 [INFO][org.nutz.mvc.NutFilter] - exclusionsPrefix  = ^(/druid/)
+2020-01-11 21:09:38,045 [DEBUG][org.nutz.boot.starter.jetty.JettyStarter] - Jetty monitor props:
+----------------------------------------------
+http.port                                : 8084
+http.host                                : 0.0.0.0
+http.idleTimeout                         : 300000
+https.enable                             : false
+welcome_files                            : index.html,index.htm,index.do
+maxFormContentSize                       : 1073741824
+----------------------------------------------
+2020-01-11 21:09:38,074 [INFO][org.nutz.boot.starter.quartz.QuartzStarter] - Starting Quartz Scheduler now
+2020-01-11 21:09:38,077 [INFO][org.quartz.core.QuartzScheduler] - Scheduler NutzbootScheduler_$_NON_CLUSTERED started.
+2020-01-11 21:09:38,095 [DEBUG][org.nutz.integration.quartz.NutQuartzCronJobFactory] - found cron job packages = com.rekoe
+2020-01-11 21:09:38,125 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.ProjectConfig
+2020-01-11 21:09:38,331 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT COUNT(*) FROM system_user 
+2020-01-11 21:09:38,335 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=4ms, sql=SELECT COUNT(*) FROM system_user 
+2020-01-11 21:09:38,357 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM permission_category 
+2020-01-11 21:09:38,369 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=12ms, sql=SELECT * FROM permission_category 
+2020-01-11 21:09:38,371 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM system_permission 
+2020-01-11 21:09:38,388 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=17ms, sql=SELECT * FROM system_permission 
+2020-01-11 21:09:38,402 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM permission_category  WHERE  1 != 1 
+2020-01-11 21:09:38,405 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=2ms, sql=SELECT * FROM permission_category  WHERE  1 != 1 
+2020-01-11 21:09:38,409 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:09:38,420 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=10ms, sql=SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:09:38,430 [INFO][org.nutz.boot.NbApp] - NB started : 5735ms
+2020-01-11 21:09:42,128 [INFO][org.apache.shiro.session.mgt.AbstractValidatingSessionManager] - Enabling session validation scheduler...
+2020-01-11 21:09:42,131 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Using existing EHCache named [shiro-activeSessionCache]
+2020-01-11 21:09:42,232 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=1m9oksl3ouiuequgm8eqk9s8ft:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:09:42,233 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=1m9oksl3ouiuequgm8eqk9s8ft:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:09:42,238 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:09:42,681 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:09:42,684 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:09:43,150 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:09:43,224 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:10:14,078 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=1m9oksl3ouiuequgm8eqk9s8ft:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:10:14,080 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=1m9oksl3ouiuequgm8eqk9s8ft:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:10:14,080 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:10:14,192 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:10:14,215 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:10:14,347 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:10:14,371 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:10:39,101 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:10:39,268 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:10:39,273 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:10:39,368 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:10:39,370 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:10:54,863 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:10:54,993 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:10:55,000 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:10:55,078 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:10:55,088 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:12:21,055 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=1m9oksl3ouiuequgm8eqk9s8ft:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:12:21,059 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=1m9oksl3ouiuequgm8eqk9s8ft:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:12:21,059 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:12:21,222 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:12:21,225 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:12:21,299 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:12:21,299 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:14:29,784 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=1m9oksl3ouiuequgm8eqk9s8ft:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:14:29,786 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=1m9oksl3ouiuequgm8eqk9s8ft:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:14:29,787 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:14:29,909 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:14:29,941 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:14:30,074 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:14:30,078 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:14:50,772 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:14:50,922 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:14:50,922 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:14:51,324 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:14:51,324 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:15:10,613 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:15:10,751 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:15:10,751 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:15:10,841 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:15:10,841 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:16:00,090 [INFO][org.nutz.boot.banner.SimpleBannerPrinter] - 
+ _   _ ______                                      ___   
+| \ | || ___ \  ______ ______ ______ ______ ______| \ \  
+|  \| || |_/ / |______|______|______|______|______| |\ \ 
+| . ` || ___ \  ______ ______ ______ ______ ______| | > >
+| |\  || |_/ / |______|______|______|______|______| |/ / 
+\_| \_/\____/                                     |_/_/  
+  
+:: Nutz Boot ::   (2.3.8.v20191031)
+
+2020-01-11 21:16:00,173 [DEBUG][org.nutz.boot.config.impl.PropertiesConfigureLoader] - load /Users/kouxian/git/rk_svnadmin/target/classes/application.properties
+2020-01-11 21:16:00,261 [DEBUG][org.nutz.castor.Castors] - Using 107 castor for Castors
+2020-01-11 21:16:00,278 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -  > scan 'com.rekoe'
+2020-01-11 21:16:00,367 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'cloudLauncher                           ' - com.rekoe.CloudLauncher
+2020-01-11 21:16:00,378 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'currentTime                             ' - com.rekoe.web.freemarker.CurrentTimeDirective
+2020-01-11 21:16:00,383 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'pagination                              ' - com.rekoe.web.freemarker.PaginationDirective
+2020-01-11 21:16:00,384 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permission                              ' - com.rekoe.web.freemarker.PermissionDirective
+2020-01-11 21:16:00,385 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'htmlCut                                 ' - com.rekoe.web.freemarker.HtmlCutDirective
+2020-01-11 21:16:00,386 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'process                                 ' - com.rekoe.web.freemarker.ProcessTimeDirective
+2020-01-11 21:16:00,388 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'timeFormat                              ' - com.rekoe.web.freemarker.TimeFormatDirective
+2020-01-11 21:16:00,391 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionAct                           ' - com.rekoe.module.admin.PermissionAct
+2020-01-11 21:16:00,399 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminUserAct                            ' - com.rekoe.module.admin.AdminUserAct
+2020-01-11 21:16:00,409 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'frameAct                                ' - com.rekoe.module.admin.FrameAct
+2020-01-11 21:16:00,413 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminSvnUserAct                         ' - com.rekoe.module.admin.AdminSvnUserAct
+2020-01-11 21:16:00,419 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectAct                         ' - com.rekoe.module.admin.AdminProjectAct
+2020-01-11 21:16:00,435 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminCommonAct                          ' - com.rekoe.module.admin.AdminCommonAct
+2020-01-11 21:16:00,436 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminRoleAct                            ' - com.rekoe.module.admin.AdminRoleAct
+2020-01-11 21:16:00,439 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionCategoryAct                   ' - com.rekoe.module.admin.PermissionCategoryAct
+2020-01-11 21:16:00,441 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'welcomeAct                              ' - com.rekoe.module.admin.WelcomeAct
+2020-01-11 21:16:00,444 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectGroupUsrAct                 ' - com.rekoe.module.admin.AdminProjectGroupUsrAct
+2020-01-11 21:16:00,448 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminLoginAct                           ' - com.rekoe.module.admin.AdminLoginAct
+2020-01-11 21:16:00,451 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectGroupAct                    ' - com.rekoe.module.admin.AdminProjectGroupAct
+2020-01-11 21:16:00,454 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'indexAct                                ' - com.rekoe.module.IndexAct
+2020-01-11 21:16:00,457 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'ipSearchAction                          ' - com.rekoe.module.IpSearchAction
+2020-01-11 21:16:00,459 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'oauthLoginAct                           ' - com.rekoe.module.OauthLoginAct
+2020-01-11 21:16:00,462 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'doCommit                                ' - com.rekoe.utils.DoCommit
+2020-01-11 21:16:00,465 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'quartzService                           ' - com.rekoe.service.QuartzService
+2020-01-11 21:16:00,469 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'treeService                             ' - com.rekoe.service.DefaultTreeService
+2020-01-11 21:16:00,470 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'userService                             ' - com.rekoe.service.UserService
+2020-01-11 21:16:00,477 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'roleService                             ' - com.rekoe.service.RoleService
+2020-01-11 21:16:00,482 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectGroupService                     ' - com.rekoe.service.ProjectGroupService
+2020-01-11 21:16:00,488 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectAuthService                      ' - com.rekoe.service.ProjectAuthService
+2020-01-11 21:16:00,490 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectService                          ' - com.rekoe.service.ProjectService
+2020-01-11 21:16:00,493 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'usrService                              ' - com.rekoe.service.UsrService
+2020-01-11 21:16:00,493 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'repTreeNodeService                      ' - com.rekoe.service.RepTreeNodeService
+2020-01-11 21:16:00,494 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'svnService                              ' - com.rekoe.service.SvnService
+2020-01-11 21:16:00,495 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionCategoryService               ' - com.rekoe.service.PermissionCategoryService
+2020-01-11 21:16:00,496 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'repositoryService                       ' - com.rekoe.service.RepositoryService
+2020-01-11 21:16:00,499 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'uploadService                           ' - com.rekoe.service.UploadService
+2020-01-11 21:16:00,500 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectUserService                      ' - com.rekoe.service.ProjectUserService
+2020-01-11 21:16:00,501 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'authorityService                        ' - com.rekoe.service.AuthorityServiceImpl
+2020-01-11 21:16:00,502 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'emailService                            ' - com.rekoe.service.EmailServiceImpl
+2020-01-11 21:16:00,504 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'svnUserService                          ' - com.rekoe.service.SvnUserService
+2020-01-11 21:16:00,507 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectGroupUsrService                  ' - com.rekoe.service.ProjectGroupUsrService
+2020-01-11 21:16:00,509 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'idFactory                               ' - com.rekoe.service.IdWorkerService
+2020-01-11 21:16:00,510 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectConfigService                    ' - com.rekoe.service.ProjectConfigService
+2020-01-11 21:16:00,511 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'defaultTreeFactory                      ' - com.rekoe.service.DefaultTreeFactory
+2020-01-11 21:16:00,512 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionService                       ' - com.rekoe.service.PermissionService
+2020-01-11 21:16:00,523 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroRealm                              ' - com.rekoe.shiro.realm.UsernamePasswordRealm
+2020-01-11 21:16:00,536 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -  > scan 'org.nutz.boot.starter'
+2020-01-11 21:16:00,594 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroFilterStarter                      ' - org.nutz.boot.starter.shiro.ShiroFilterStarter
+2020-01-11 21:16:00,596 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroEnvStarter                         ' - org.nutz.boot.starter.shiro.ShiroEnvStarter
+2020-01-11 21:16:00,599 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'freeMarkerConfigurer                    ' - org.nutz.boot.starter.freemarker.FreeMarkerConfigurer
+2020-01-11 21:16:00,603 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add '$views_freekmarker                      ' - org.nutz.boot.starter.freemarker.FreemarkerViewMaker
+2020-01-11 21:16:00,604 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'quartzStarter                           ' - org.nutz.boot.starter.quartz.QuartzStarter
+2020-01-11 21:16:00,605 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'whaleFilterStarter                      ' - org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter
+2020-01-11 21:16:00,656 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nutFilterStarter                        ' - org.nutz.boot.starter.nutz.mvc.NutFilterStarter
+2020-01-11 21:16:00,691 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nutDaoStarter                           ' - org.nutz.boot.starter.nutz.dao.NutDaoStarter
+2020-01-11 21:16:00,699 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'druidWebStatFilterStarter               ' - org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter
+2020-01-11 21:16:00,701 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'druidWebStatServletStarter              ' - org.nutz.boot.starter.jdbc.DruidWebStatServletStarter
+2020-01-11 21:16:00,704 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'dataSourceStarter                       ' - org.nutz.boot.starter.jdbc.DataSourceStarter
+2020-01-11 21:16:00,707 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'jettyStarter                            ' - org.nutz.boot.starter.jetty.JettyStarter
+2020-01-11 21:16:00,728 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nbServletContextListener                ' - org.nutz.boot.starter.servlet3.NbServletContextListener
+2020-01-11 21:16:00,730 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'ngrokClientStarter                      ' - org.nutz.boot.starter.ngrok.NgrokClientStarter
+2020-01-11 21:16:00,732 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-redis/2.3.9-SNAPSHOT/nutzboot-starter-redis-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,732 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-shiro/2.3.9-SNAPSHOT/nutzboot-starter-shiro-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,733 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-freemarker/2.3.9-SNAPSHOT/nutzboot-starter-freemarker-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,733 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-quartz/2.3.9-SNAPSHOT/nutzboot-starter-quartz-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,734 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-mvc/2.3.9-SNAPSHOT/nutzboot-starter-nutz-mvc-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,734 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-dao/2.3.9-SNAPSHOT/nutzboot-starter-nutz-dao-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,734 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-jdbc/2.3.9-SNAPSHOT/nutzboot-starter-jdbc-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,734 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-jetty/2.3.9-SNAPSHOT/nutzboot-starter-jetty-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,735 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-email/2.3.9-SNAPSHOT/nutzboot-starter-email-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,736 [DEBUG][org.nutz.boot.NbApp] - Found file:/Users/kouxian/git/nutzboot/nutzboot-starter/nutzboot-starter-freemarker/target/classes/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,737 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-ngrok/2.3.9-SNAPSHOT/nutzboot-starter-ngrok-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:16:00,761 [INFO][org.nutz.boot.NbApp] - Configure Manual:
+|id  |key                                     |required  |Possible Values     |Default   |Description         |                                starters|
+|----|----------------------------------------|----------|--------------------|----------|--------------------|----------------------------------------|
+|0   |druid.web.filter.exclusions             |no        |                    |          |需要排除的路径             |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|1   |druid.web.filter.principalCookieName    |no        |                    |          |用户权限信息的cookie属性名称   |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|2   |druid.web.filter.principalSessionName   |no        |                    |          |用户权限信息的session属性名称  |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|3   |druid.web.filter.profileEnable          |no        |                    |          |是否开启性能监控            |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|4   |druid.web.filter.realIpHeader           |no        |                    |          |Header中ReadIp对应的key |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|5   |druid.web.filter.sessionStatEnable      |no        |                    |true      |是否开启session状态监控     |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|6   |druid.web.filter.sessionStatMaxCount    |no        |                    |          |session最大状态数量       |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|7   |druid.web.servlet.allow                 |no        |                    |          |允许访问的ip列表           |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|8   |druid.web.servlet.deny                  |no        |                    |          |禁止访问的ip列表           |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|9   |druid.web.servlet.jmxPassword           |no        |                    |          |JMX的密码              |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|10  |druid.web.servlet.jmxUrl                |no        |                    |          |读取JMX信息的URL         |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|11  |druid.web.servlet.jmxUsername           |no        |                    |          |JMX的用户名             |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|12  |druid.web.servlet.loginPassword         |no        |                    |随机值,打印在日志中|访问monitor页面的密码      |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|13  |druid.web.servlet.loginUsername         |no        |                    |driud     |访问monitor页面的用户名     |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|14  |druid.web.servlet.resetEnable           |no        |                    |true      |是否允许重置统计结果          |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|15  |email.From                              |yes       |                    |          |email的写信人           |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|16  |email.HostName                          |yes       |                    |          |email的ip或域名地址       |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|17  |email.Password                          |yes       |                    |          |email的密码            |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|18  |email.SSLOnConnect                      |no        |                    |true      |email开启SSL连接        |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|19  |email.SmtpPort                          |yes       |                    |          |email的SmtpPort端口    |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|20  |email.UserName                          |yes       |                    |          |email的用户名           |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|21  |email.charset                           |no        |                    |UTF-8     |email的编码            |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|22  |freemarker.cache_time                   |no        |                    |-1000     |模版缓存时间              |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|23  |freemarker.prefix                       |no        |                    |template  |模版路径                |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|24  |freemarker.suffix                       |no        |                    |.html     |文件后缀                |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|25  |jdbc.password                           |no        |                    |          |数据库密码               |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|26  |jdbc.type                               |no        |druid,simple,hikari |druid     |连接池类型               |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|27  |jdbc.url                                |yes       |                    |          |JDBC URL            |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|28  |jdbc.username                           |no        |                    |          |数据库用户名              |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|29  |jetty.contextPath                       |no        |                    |/         |上下文路径               |org.nutz.boot.starter.jetty.JettyStarter|
+|30  |jetty.gzip.enable                       |no        |                    |false     |是否启用gzip            |org.nutz.boot.starter.jetty.JettyStarter|
+|31  |jetty.gzip.level                        |no        |                    |-1        |gzip压缩级别            |org.nutz.boot.starter.jetty.JettyStarter|
+|32  |jetty.gzip.minContentSize               |no        |                    |512       |gzip压缩最小触发大小        |org.nutz.boot.starter.jetty.JettyStarter|
+|33  |jetty.host                              |no        |                    |0.0.0.0   |监听的ip地址             |org.nutz.boot.starter.jetty.JettyStarter|
+|34  |jetty.http.idleTimeout                  |no        |                    |300000    |空闲时间,单位毫秒           |org.nutz.boot.starter.jetty.JettyStarter|
+|35  |jetty.httpConfig.blockingTimeout        |no        |                    |-1        |阻塞超时                |org.nutz.boot.starter.jetty.JettyStarter|
+|36  |jetty.httpConfig.headerCacheSize        |no        |                    |8192      |头部缓冲区大小             |org.nutz.boot.starter.jetty.JettyStarter|
+|37  |jetty.httpConfig.maxErrorDispatches     |no        |                    |10        |最大错误重定向次数           |org.nutz.boot.starter.jetty.JettyStarter|
+|38  |jetty.httpConfig.outputAggregationSize  |no        |                    |8192      |输出聚合大小              |org.nutz.boot.starter.jetty.JettyStarter|
+|39  |jetty.httpConfig.outputBufferSize       |no        |                    |32768     |输出缓冲区大小             |org.nutz.boot.starter.jetty.JettyStarter|
+|40  |jetty.httpConfig.persistentConnectionsEnabled|no        |                    |true      |是否启用持久化连接           |org.nutz.boot.starter.jetty.JettyStarter|
+|41  |jetty.httpConfig.requestHeaderSize      |no        |                    |8192      |请求的头部最大值            |org.nutz.boot.starter.jetty.JettyStarter|
+|42  |jetty.httpConfig.responseHeaderSize     |no        |                    |8192      |响应的头部最大值            |org.nutz.boot.starter.jetty.JettyStarter|
+|43  |jetty.httpConfig.securePort             |no        |                    |          |安全协议的端口,例如8443      |org.nutz.boot.starter.jetty.JettyStarter|
+|44  |jetty.httpConfig.secureScheme           |no        |                    |          |安全协议,例如https        |org.nutz.boot.starter.jetty.JettyStarter|
+|45  |jetty.httpConfig.sendDateHeader         |no        |                    |true      |是否发送日期信息            |org.nutz.boot.starter.jetty.JettyStarter|
+|46  |jetty.httpConfig.sendServerVersion      |no        |                    |true      |是否发送jetty版本号        |org.nutz.boot.starter.jetty.JettyStarter|
+|47  |jetty.https.keystore.password           |no        |                    |          |Https的KeyStore的密码   |org.nutz.boot.starter.jetty.JettyStarter|
+|48  |jetty.https.keystore.path               |no        |                    |          |Https的KeyStore路径    |org.nutz.boot.starter.jetty.JettyStarter|
+|49  |jetty.https.port                        |no        |                    |          |Https端口号            |org.nutz.boot.starter.jetty.JettyStarter|
+|50  |jetty.maxFormContentSize                |no        |                    |1gb       |表单最大尺寸              |org.nutz.boot.starter.jetty.JettyStarter|
+|51  |jetty.maxFormKeys                       |no        |                    |1000      |表单最大key数量           |org.nutz.boot.starter.jetty.JettyStarter|
+|52  |jetty.page.404                          |no        |                    |          |自定义404页面,同理,其他状态码也是支持的|org.nutz.boot.starter.jetty.JettyStarter|
+|53  |jetty.page.java.lang.Throwable          |no        |                    |          |自定义java.lang.Throwable页面,同理,其他异常也支持|org.nutz.boot.starter.jetty.JettyStarter|
+|54  |jetty.port                              |no        |                    |8080      |监听的端口               |org.nutz.boot.starter.jetty.JettyStarter|
+|55  |jetty.session.file.storeDir             |no        |                    |./session |session持久化,file所用的目录|org.nutz.boot.starter.jetty.JettyStarter|
+|56  |jetty.session.ioc.datastore             |no        |                    |jettySessionDataStore|session持久化,SessionDataStore对应的ioc名称|org.nutz.boot.starter.jetty.JettyStarter|
+|57  |jetty.session.jdbc.datasource.iocname   |no        |                    |dataSource|session持久化,jdbc所用数据库源的ioc名称|org.nutz.boot.starter.jetty.JettyStarter|
+|58  |jetty.session.store.enable              |no        |                    |false     |是否启用session持久化      |org.nutz.boot.starter.jetty.JettyStarter|
+|59  |jetty.session.store.type                |no        |jdbc,file,ioc,redis |jdbc      |session持久化类型        |org.nutz.boot.starter.jetty.JettyStarter|
+|60  |jetty.staticPath                        |no        |                    |          |额外的静态文件路径           |org.nutz.boot.starter.jetty.JettyStarter|
+|61  |jetty.staticPathLocal                   |no        |                    |          |静态文件所在的本地路径         |org.nutz.boot.starter.jetty.JettyStarter|
+|62  |jetty.threadpool.idleTimeout            |no        |                    |60000     |线程池idleTimeout,单位毫秒 |org.nutz.boot.starter.jetty.JettyStarter|
+|63  |jetty.threadpool.maxThreads             |no        |                    |500       |线程池最大线程数maxThreads  |org.nutz.boot.starter.jetty.JettyStarter|
+|64  |jetty.threadpool.minThreads             |no        |                    |200       |线程池最小线程数minThreads  |org.nutz.boot.starter.jetty.JettyStarter|
+|65  |jetty.welcome_files                     |no        |                    |index.html,index.htm,index.do|WelcomeFile列表       |org.nutz.boot.starter.jetty.JettyStarter|
+|66  |ngrok.client.auth_token                 |no        |                    |4kg9lckq5og4ip02j736e3i7ku|秘钥                  |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|67  |ngrok.client.enable                     |no        |                    |true      |开关                  |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|68  |ngrok.client.hostname                   |no        |                    |          |期望的域名               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|69  |ngrok.client.srv_host                   |no        |                    |wendal.cn |服务器域名               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|70  |ngrok.client.srv_port                   |no        |                    |4443      |服务器端口               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|71  |ngrok.client.to_port                    |no        |                    |8080      |目标端口                |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|72  |nutz.dao.interceptor.cache.cache4Null   |no        |                    |true      |是否缓存null结果          |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|73  |nutz.dao.interceptor.cache.debug        |no        |                    |false     |打印daocache详细调试日志    |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|74  |nutz.dao.interceptor.cache.enable       |no        |                    |false     |是否使用daocache        |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|75  |nutz.dao.interceptor.cache.enableWhenTrans|no        |                    |false     |事务内是否启用daocache     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|76  |nutz.dao.interceptor.cache.provider.ioc.name|no        |                    |daoCacheProvider|daocache提供者DaoCacheProvider的IocBean名称|org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|77  |nutz.dao.interceptor.cache.provider.memory.cacheSize|no        |                    |          |daocache提供者MemoryDaoCacheProvider的默认缓存大小|org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|78  |nutz.dao.interceptor.cache.provider.type|no        |memory,ehcache,jedis,ioc|memory    |daocache提供者         |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|79  |nutz.dao.interceptor.cache.table.names  |no        |                    |          |需要缓存的表名称,英文逗号分隔     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|80  |nutz.dao.interceptor.cache.table.pattern|no        |                    |          |需要缓存的表名称的正则表达式      |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|81  |nutz.dao.interceptor.log.enable         |no        |                    |true      |是否打印dao的SQL日志       |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|82  |nutz.dao.interceptor.time.enable        |no        |                    |false     |是否打印dao的SQL耗时日志     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|83  |nutz.dao.sqls.path                      |no        |                    |sqls/     |sql目录               |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|84  |nutz.mvc.exclusions                     |no        |                    |          |排除指定请求路径的正则表达式      |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|85  |nutz.mvc.ignore                         |no        |                    |          |过滤指定请求路径的正则表达式      |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|86  |nutz.mvc.whale.enc.input                |no        |                    |UTF-8     |在其他Filter之前设置input编码|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|87  |nutz.mvc.whale.enc.output               |no        |                    |UTF-8     |在其他Filter之前设置output编码|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|88  |nutz.mvc.whale.http.hidden_method_param |no        |                    |          |隐形http方法参数转换所对应的参数名 |org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|89  |nutz.mvc.whale.http.method_override     |no        |                    |false     |是否允许使用X-HTTP-Method-Override|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|90  |nutz.mvc.whale.upload.enable            |no        |                    |false     |是否启用隐形Upload支持      |org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|91  |redis.database                          |no        |                    |0         |redis数据库序号          |org.nutz.boot.starter.redis.JedisStarter|
+|92  |redis.host                              |no        |                    |127.0.0.1 |redis服务器ip或域名       |org.nutz.boot.starter.redis.JedisStarter|
+|93  |redis.max_redir                         |no        |                    |10        |redis集群最大重定向次数      |org.nutz.boot.starter.redis.JedisStarter|
+|94  |redis.nodes                             |no        |                    |          |redis集群节点列表         |org.nutz.boot.starter.redis.JedisStarter|
+|95  |redis.password                          |no        |                    |          |redis密码             |org.nutz.boot.starter.redis.JedisStarter|
+|96  |redis.port                              |no        |                    |6379      |redis服务器端口          |org.nutz.boot.starter.redis.JedisStarter|
+|97  |redis.soTimeout                         |no        |                    |0         |redis写超时            |org.nutz.boot.starter.redis.JedisStarter|
+|98  |redis.timeout                           |no        |                    |2000      |redis读写超时           |org.nutz.boot.starter.redis.JedisStarter|
+|99  |shiro.ini.path                          |no        |                    |          |shiro.ini的路径,如果shiro.ini存在,就会使用它,否则走NB的内部逻辑|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|100 |shiro.ini.urls                          |no        |                    |          |urls过滤清单            |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|101 |shiro.realm.cache.enable                |no        |                    |          |realm是否缓存           |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|102 |shiro.session.cache.redis.debug         |no        |                    |false     |session持久化时redis的debug模式|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|103 |shiro.session.cache.redis.mode          |no        |                    |kv        |设置redis缓存的模式        |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|104 |shiro.session.cache.redis.ttl           |no        |                    |-1        |redis缓存的过期时间        |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|105 |shiro.session.cache.type                |no        |                    |memory    |设置使用的缓存类型           |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|106 |shiro.session.cookie.httpOnly           |no        |                    |true      |Cookie是否只读          |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|107 |shiro.session.cookie.maxAge             |no        |                    |946080000 |Cookie的过期时间,单位:毫秒   |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|108 |shiro.session.cookie.name               |no        |                    |sid       |Cookie的name         |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|109 |shiro.session.dao.iocName               |no        |                    |shiroSessionDao|SessionDao的ioc名称,设置并声明该IocBean,就能覆盖默认的SessionDao实现|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|110 |shiro.session.enable                    |no        |                    |true      |是否启用Shiro的Session管理 |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|111 |shiro.session.manager.globalSessionTimeout|no        |                    |1800000   |全局session过期时间       |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|112 |shiro.session.manager.sessionValidationInterval|no        |                    |3600000   |定期检查session过期的周期    |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|113 |shiro.session.manager.sessionValidationSchedulerEnabled|no        |                    |true      |是否定期检查session过期     |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|114 |shiro.url.login                         |no        |                    |/user/login|默认登录路径              |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|115 |shiro.url.logout_redirect               |no        |                    |/         |退出登录后的重定向路径         |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|116 |shiro.url.unauth                        |no        |                    |/user/login|访问未授权页面后的重定向路径      |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|117 |web.filter.order.nutz                   |no        |                    |          |指定NutFilter执行顺序     |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|118 |web.session.timeout                     |no        |                    |30        |Session空闲时间,单位分钟    |org.nutz.boot.starter.jetty.JettyStarter|
+2020-01-11 21:16:00,776 [INFO][org.nutz.ioc.impl.NutIoc] - ... NutIoc init complete
+2020-01-11 21:16:00,844 [INFO][org.quartz.impl.StdSchedulerFactory] - Using default implementation for ThreadExecutor
+2020-01-11 21:16:00,859 [INFO][org.quartz.core.SchedulerSignalerImpl] - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
+2020-01-11 21:16:00,859 [INFO][org.quartz.core.QuartzScheduler] - Quartz Scheduler v.2.3.0 created.
+2020-01-11 21:16:00,861 [INFO][org.quartz.simpl.RAMJobStore] - RAMJobStore initialized.
+2020-01-11 21:16:00,863 [INFO][org.quartz.core.QuartzScheduler] - Scheduler meta-data: Quartz Scheduler (v2.3.0) 'NutzbootScheduler' with instanceId 'NON_CLUSTERED'
+  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
+  NOT STARTED.
+  Currently in standby mode.
+  Number of jobs executed: 0
+  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 8 threads.
+  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
+
+2020-01-11 21:16:00,863 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'NutzbootScheduler' initialized from an externally provided properties instance.
+2020-01-11 21:16:00,863 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 2.3.0
+2020-01-11 21:16:00,864 [INFO][org.quartz.core.QuartzScheduler] - JobFactory set to: org.nutz.integration.quartz.NutQuartzJobFactory@6150c3ec
+2020-01-11 21:16:01,422 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add Servlet name=druid pathSpec=/druid/*
+2020-01-11 21:16:01,425 [INFO][org.nutz.boot.starter.jdbc.DruidWebStatServletStarter] - druid stat view random user=druid password=04js05lptag87qlcst19td187t
+2020-01-11 21:16:01,429 [INFO][org.apache.shiro.web.env.EnvironmentLoader] - Starting Shiro environment initialization.
+2020-01-11 21:16:01,728 [DEBUG][org.nutz.boot.starter.shiro.ShiroEnvStarter] - using default SessionDAO = EnterpriseCacheSessionDAO
+2020-01-11 21:16:01,742 [DEBUG][org.nutz.boot.starter.shiro.ShiroEnvStarter] - using session cache = redis
+2020-01-11 21:16:01,775 [WARN][net.sf.ehcache.config.CacheConfiguration] - Statistics can no longer be enabled via configuration.
+2020-01-11 21:16:01,953 [INFO][org.nutz.plugins.cache.impl.lcache.LCacheManager] - JedisAgent is Ready ...
+2020-01-11 21:16:01,953 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCacheManager] - psubscribe LCache:*
+2020-01-11 21:16:02,180 [DEBUG][org.nutz.dao.jdbc.Jdbcs] - Jdbcs init complete
+2020-01-11 21:16:02,182 [INFO][org.nutz.dao.jdbc.Jdbcs] - Get Connection from DataSource for JdbcExpert, if you lock at here, check your database server and configure
+2020-01-11 21:16:02,345 [INFO][com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} inited
+2020-01-11 21:16:02,563 [DEBUG][org.nutz.dao.impl.DaoSupport] - select expert : org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert
+2020-01-11 21:16:02,569 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC Driver --> mysql-connector-java-8.0.18 (Revision: fef2894d751d47223192b706977b4a5bc41e6be4)
+2020-01-11 21:16:02,569 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC Name   --> MySQL Connector/J
+2020-01-11 21:16:02,569 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC URL    --> jdbc:mysql://127.0.0.1:3306/rk_admin?characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+2020-01-11 21:16:02,738 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_client=utf8mb4
+2020-01-11 21:16:02,740 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_connection=utf8mb4
+2020-01-11 21:16:02,740 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_database=utf8
+2020-01-11 21:16:02,741 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_filesystem=binary
+2020-01-11 21:16:02,741 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_results=
+2020-01-11 21:16:02,741 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_server=utf8mb4
+2020-01-11 21:16:02,741 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_system=utf8
+2020-01-11 21:16:02,741 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_sets_dir=/usr/share/mysql-8.0/charsets/
+2020-01-11 21:16:02,745 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : binlog_format=ROW
+2020-01-11 21:16:02,748 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : database=rk_admin
+2020-01-11 21:16:02,750 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : user=root@172.17.0.1
+2020-01-11 21:16:02,792 [DEBUG][org.nutz.dao.impl.DaoSupport] - Database info --> MYSQL:[MySQL - 8.0.18]
+2020-01-11 21:16:02,803 [DEBUG][org.nutz.dao.impl.DaoSupport] - SqlManager Sql count=0
+2020-01-11 21:16:02,910 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.User
+2020-01-11 21:16:02,915 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Role
+2020-01-11 21:16:02,919 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Cache with name 'com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache' does not yet exist.  Creating now.
+2020-01-11 21:16:02,948 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Added EhCache named [com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache]
+2020-01-11 21:16:02,960 [DEBUG][org.nutz.boot.starter.shiro.NbResourceBasedWebEnvironment] - ioc name=shiroFilterChainResolver not found, fallback to shiro.ini.urls
+2020-01-11 21:16:02,961 [DEBUG][org.nutz.boot.starter.shiro.NbResourceBasedWebEnvironment] - shiro ini urls  ---> 
+[urls]
+
+2020-01-11 21:16:02,989 [INFO][org.apache.shiro.web.env.EnvironmentLoader] - Shiro environment initialized in 1560 ms.
+2020-01-11 21:16:02,995 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=whale pathSpec=/*
+2020-01-11 21:16:02,999 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=druid pathSpec=/*
+2020-01-11 21:16:03,002 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=shiro pathSpec=/*
+2020-01-11 21:16:03,006 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=nutz pathSpec=/*
+2020-01-11 21:16:03,015 [INFO][org.nutz.mvc.NutFilter] - NutFilter[nutz] starting ...
+2020-01-11 21:16:03,019 [INFO][org.nutz.resource.impl.ErrorResourceLocation] - [loc=/Users/kouxian/git/rk_svnadmin/target/classes/static/WEB-INF/classes]not exist
+2020-01-11 21:16:03,021 [DEBUG][org.nutz.mvc.config.AbstractNutConfig] - Loading by class org.nutz.boot.starter.nutz.mvc.NbMvcLoading
+2020-01-11 21:16:03,027 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz Version : 1.r.68-SNAPSHOT 
+2020-01-11 21:16:03,028 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is initializing ...
+2020-01-11 21:16:03,028 [DEBUG][org.nutz.mvc.impl.NutLoading] - Web Container Information:
+2020-01-11 21:16:03,028 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Default Charset : UTF-8
+2020-01-11 21:16:03,028 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Current . path  : /Users/kouxian/git/rk_svnadmin/.
+2020-01-11 21:16:03,029 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Java Version    : 1.8.0_144
+2020-01-11 21:16:03,044 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - File separator  : /
+2020-01-11 21:16:03,046 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Timezone        : Asia/Shanghai
+2020-01-11 21:16:03,047 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - OS              : Mac OS X x86_64
+2020-01-11 21:16:03,047 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - ServerInfo      : jetty/9.4.22.v20191022
+2020-01-11 21:16:03,048 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Servlet API     : 3.1
+2020-01-11 21:16:03,048 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - ContextPath     : 
+2020-01-11 21:16:03,049 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - context.tempdir : /Users/kouxian/git/rk_svnadmin/temp
+2020-01-11 21:16:03,049 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - MainModule      : com.rekoe.CloudLauncher
+2020-01-11 21:16:03,050 [DEBUG][org.nutz.mvc.impl.NutLoading] - >> app.root = /Users/kouxian/git/rk_svnadmin/target/classes/static
+2020-01-11 21:16:03,053 [INFO][org.nutz.mvc.impl.NutLoading] - Build URL mapping by org.nutz.mvc.impl.UrlMappingImpl ...
+2020-01-11 21:16:03,054 [DEBUG][org.nutz.mvc.impl.NutLoading] - add ViewMaker from Ioc by name=$views_freekmarker
+2020-01-11 21:16:03,054 [DEBUG][org.nutz.mvc.impl.NutLoading] - @Views(FreemarkerViewMaker.class,DefaultViewMaker.class)
+2020-01-11 21:16:03,059 [DEBUG][org.nutz.mvc.impl.NutLoading] - @ChainBy(org.nutz.mvc.impl.NutActionChainMaker)
+2020-01-11 21:16:03,064 [DEBUG][org.nutz.mvc.impl.Loadings] - module class location 'file:/Users/kouxian/git/rk_svnadmin/target/classes/'
+2020-01-11 21:16:03,064 [DEBUG][org.nutz.mvc.impl.Loadings] -  > scan 'com.rekoe'
+2020-01-11 21:16:03,085 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.PermissionAct'
+2020-01-11 21:16:03,087 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminUserAct'
+2020-01-11 21:16:03,088 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.FrameAct'
+2020-01-11 21:16:03,089 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminSvnUserAct'
+2020-01-11 21:16:03,089 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectAct'
+2020-01-11 21:16:03,089 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminCommonAct'
+2020-01-11 21:16:03,090 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminRoleAct'
+2020-01-11 21:16:03,091 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.PermissionCategoryAct'
+2020-01-11 21:16:03,092 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.WelcomeAct'
+2020-01-11 21:16:03,092 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectGroupUsrAct'
+2020-01-11 21:16:03,092 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminLoginAct'
+2020-01-11 21:16:03,092 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectGroupAct'
+2020-01-11 21:16:03,092 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.IndexAct'
+2020-01-11 21:16:03,093 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.IpSearchAction'
+2020-01-11 21:16:03,094 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.OauthLoginAct'
+2020-01-11 21:16:03,158 [DEBUG][org.nutz.mvc.impl.NutLoading] - Use org.nutz.mvc.impl.NutEntryDeterminer as EntryMethodDeterminer
+2020-01-11 21:16:03,191 [INFO][org.nutz.mvc.impl.NutActionChainMaker] - Optional processor class not found, disabled : org.nutz.plugins.validation.ValidationProcessor
+2020-01-11 21:16:03,289 [INFO][org.nutz.boot.starter.freemarker.FreeMarkerConfigurer] - using Directory for TemplateLoading : /Users/kouxian/git/rk_svnadmin/src/main/resources/
+2020-01-11 21:16:03,305 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/main'    >> (FrameAct.java:15).userMain           : void       | @Ok(fm:template.admin.user.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,307 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/left'    >> (FrameAct.java:21).userLeft           : void       | @Ok(fm:template.admin.user.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,311 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/right'   >> (FrameAct.java:26).userRight          : void       | @Ok(fm:template.admin.user.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,314 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/main' >> (FrameAct.java:34).accountPwdMain     : void       | @Ok(fm:template.admin.account.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,317 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/left' >> (FrameAct.java:39).accountPwdLeft     : void       | @Ok(fm:template.admin.account.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,319 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/right' >> (FrameAct.java:44).gamePwdRight       : void       | @Ok(fm:template.admin.account.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,321 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/main' >> (FrameAct.java:52).svn_user_main      : void       | @Ok(fm:template.admin.svn_user.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,324 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/left' >> (FrameAct.java:57).svn_user_left      : void       | @Ok(fm:template.admin.svn_user.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,326 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/right' >> (FrameAct.java:62).svn_user_right     : void       | @Ok(fm:template.admin.svn_user.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,328 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/main' >> (FrameAct.java:70).project_main       : void       | @Ok(fm:template.admin.project.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,330 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/left' >> (FrameAct.java:75).project_left       : void       | @Ok(fm:template.admin.project.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,331 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/right' >> (FrameAct.java:80).project_right      : void       | @Ok(fm:template.admin.project.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,334 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/add'           >> (AdminRoleAct.java:84).add            : List       | @Ok(fm:template.admin.user.role.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,337 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/update'        >> (AdminRoleAct.java:66).update         : void       | @Ok(>>:/admin/role/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,339 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/delete'        >> (AdminRoleAct.java:107).delete        : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,340 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/list'          >> (AdminRoleAct.java:49).list           : Object     | @Ok(fm:template.admin.user.role.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,347 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/save'          >> (AdminRoleAct.java:91).save           : boolean    | @Ok(>>:${obj==true?'/role/list.rk':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,349 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/edit'          >> (AdminRoleAct.java:56).edit           : Object     | @Ok(fm:template.admin.user.role.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,350 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/index_main'         >> (WelcomeAct.java:19).index            : void       | @Ok(fm:template.admin.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,352 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/main'               >> (WelcomeAct.java:31).main             : void       | @Ok(fm:template.admin.index) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,352 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/left'               >> (WelcomeAct.java:36).left             : void       | @Ok(fm:template.admin.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,353 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/right'              >> (WelcomeAct.java:43).right            : void       | @Ok(fm:template.admin.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,354 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/top'                >> (WelcomeAct.java:25).top              : boolean    | @Ok(fm:template.admin.top) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,359 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/login/?'             >> (OauthLoginAct.java:47).login         : void       | @Ok(void ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,360 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/logout'              >> (OauthLoginAct.java:69).logout        : void       | @Ok(>>:/admin/index.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,361 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/authonly'            >> (OauthLoginAct.java:40).authOnly      : Object     | @Ok(null ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,362 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/add' >> (PermissionCategoryAct.java:58).add   : void       | @Ok(fm:template.admin.user.permission_category.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,363 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/update' >> (PermissionCategoryAct.java:50).update : boolean    | @Ok(>>:/admin/permission/category/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,364 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/delete' >> (PermissionCategoryAct.java:73).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,365 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/list' >> (PermissionCategoryAct.java:36).list  : Pagination | @Ok(fm:template.admin.user.permission_category.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,368 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/save' >> (PermissionCategoryAct.java:64).save  : void       | @Ok(>>:/admin/permission/category/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,371 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/edit' >> (PermissionCategoryAct.java:43).edit  : PermissionCategory | @Ok(fm:template.admin.user.permission_category.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,373 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/add'  >> (AdminProjectGroupAct.java:40).add    : String     | @Ok(fm:template.admin.project_group.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,374 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/delete' >> (AdminProjectGroupAct.java:59).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,375 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/list' >> (AdminProjectGroupAct.java:32).list   : Pagination | @Ok(fm:template.admin.project_group.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,376 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/o_save' >> (AdminProjectGroupAct.java:47).o_save : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,377 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/add'        >> (AdminProjectAct.java:55).add         : void       | @Ok(fm:template.admin.project.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,378 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/init'       >> (AdminProjectAct.java:120).init       : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,379 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/delete'     >> (AdminProjectAct.java:182).delete     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,379 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/list'       >> (AdminProjectAct.java:48).list        : Pagination | @Ok(fm:template.admin.project.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,380 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/conf'       >> (AdminProjectAct.java:208).conf       : ProjectConfig | @Ok(fm:template.admin.project.config) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,381 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/o_save'     >> (AdminProjectAct.java:68).o_save      : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,381 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/o_update'   >> (AdminProjectAct.java:223).o_update   : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,381 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/edit'       >> (AdminProjectAct.java:61).edit        : Pj         | @Ok(fm:template.admin.project.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,382 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/rep'        >> (AdminProjectAct.java:83).rep         : String     | @Ok(fm:template.admin.project.rep) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,384 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth'     >> (AdminProjectAct.java:135).pjauth     : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,387 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/ajaxtreeservice' >> (AdminProjectAct.java:169).ajaxTreeService : String     | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,389 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth_delete' >> (AdminProjectAct.java:261).pjauth_delete : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,389 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth/delete' >> (AdminProjectAct.java:193).pjauth_delete : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,390 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/conf/update' >> (AdminProjectAct.java:215).conf_update : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,390 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth/save' >> (AdminProjectAct.java:231).pjauth_save : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,391 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/file_add'   >> (AdminProjectAct.java:243).file_add   : String     | @Ok(fm:template.admin.project.add_dir) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,391 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/file_save'  >> (AdminProjectAct.java:253).file_save  : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,393 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/add' >> (AdminProjectGroupUsrAct.java:67).add : String     | @Ok(fm:template.admin.project_group_usr.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,394 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/delete' >> (AdminProjectGroupUsrAct.java:99).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,394 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/list' >> (AdminProjectGroupUsrAct.java:55).list : Pagination | @Ok(fm:template.admin.project_group_usr.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,395 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/email' >> (AdminProjectGroupUsrAct.java:128).email : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,396 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/o_save' >> (AdminProjectGroupUsrAct.java:77).o_save : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,396 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/all_email' >> (AdminProjectGroupUsrAct.java:117).all_email : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,398 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/add'       >> (AdminSvnUserAct.java:86).add         : void       | @Ok(fm:template.admin.svn_user.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,410 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/lock'      >> (AdminSvnUserAct.java:217).lock       : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,411 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/list'      >> (AdminSvnUserAct.java:64).list        : Pagination | @Ok(fm:template.admin.svn_user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,411 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/lock_list' >> (AdminSvnUserAct.java:75).lock_list   : Pagination | @Ok(fm:template.admin.svn_user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,413 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/o_save'    >> (AdminSvnUserAct.java:101).o_save     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,414 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/o_update'  >> (AdminSvnUserAct.java:136).o_update   : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,414 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/restpwd'   >> (AdminSvnUserAct.java:184).restpwd    : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,416 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/edit'      >> (AdminSvnUserAct.java:93).edit        : Usr        | @Ok(fm:template.admin.svn_user.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,417 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/unlock'    >> (AdminSvnUserAct.java:248).unlock     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,418 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/add'     >> (PermissionAct.java:67).add           : List       | @Ok(fm:template.admin.user.permission.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,419 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/update'  >> (PermissionAct.java:87).update        : boolean    | @Ok(>>:/admin/permission/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,438 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/delete'  >> (PermissionAct.java:75).delete        : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,439 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/list'    >> (PermissionAct.java:44).list          : Pagination | @Ok(fm:template.admin.user.permission.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,439 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/save'    >> (PermissionAct.java:98).save          : void       | @Ok(>>:/admin/permission/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,443 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/list_category/?' >> (PermissionAct.java:51).listCategory  : Pagination | @Ok(fm:template.admin.user.permission.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,446 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/edit'    >> (PermissionAct.java:58).edit          : List       | @Ok(fm:template.admin.user.permission.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,449 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/register'           >> (AdminLoginAct.java:94).register      : Object     | @Ok(fm:template.front.account.create_user) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,483 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/login'              >> (AdminLoginAct.java:56).login         : View       | @Ok(null ) @Fail(>>:/admin/common/unauthorized.rk) | by 1 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,484 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/logout'             >> (AdminLoginAct.java:88).logout        : void       | @Ok(>>:/user/login.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,485 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/success'     >> (AdminCommonAct.java:38).success      : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,485 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/forbit'      >> (AdminCommonAct.java:32).forbit       : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,486 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/unauthorized' >> (AdminCommonAct.java:26).unauthorized : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,487 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/api/ip/search'            >> (IpSearchAction.java:20).search       : String     | @Ok(raw:json) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,488 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/main'          >> (AdminUserAct.java:59).main           : void       | @Ok(fm:template.admin.common.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,493 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/add'           >> (AdminUserAct.java:72).add            : List       | @Ok(fm:template.admin.user.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,495 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/lock'          >> (AdminUserAct.java:143).lock          : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,495 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/update'        >> (AdminUserAct.java:129).update        : Object     | @Ok(>>:/admin/user/list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,496 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/check/username' >> (AdminUserAct.java:93).checkName      : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,497 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/delete'        >> (AdminUserAct.java:79).delete         : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,497 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/list'          >> (AdminUserAct.java:65).list           : Pagination | @Ok(fm:template.admin.user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,504 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/save'          >> (AdminUserAct.java:87).save           : boolean    | @Ok(>>:${obj==true?'/admin/user/list.rk':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,511 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/check_email'   >> (AdminUserAct.java:99).checkEmail     : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,512 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/check_current_password' >> (AdminUserAct.java:160).checkCurrentPassword : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,512 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/edit'  >> (AdminUserAct.java:175).profileEdit   : Subject    | @Ok(fm:template.admin.profile.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,512 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/add_user'      >> (AdminUserAct.java:185).add_user      : void       | @Ok(fm:template.admin.user.add_user) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,513 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/save_user'     >> (AdminUserAct.java:191).save_user     : Object     | @Ok(>>:/admin/user/list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,513 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/update' >> (AdminUserAct.java:203).profileUpdate : boolean    | @Ok(fm:template.admin.profile.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,515 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/re_update' >> (AdminUserAct.java:215).regUpate      : boolean    | @Ok(>>:${obj?'/admin/main':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,515 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/change_pwd'    >> (AdminUserAct.java:236).change_pwd    : void       | @Ok(fm:template.admin.account.change_pwd) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,515 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/pwd_updata'    >> (AdminUserAct.java:242).pwd_updata    : Object     | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,516 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/edit'          >> (AdminUserAct.java:107).edit          : User       | @Ok(fm:template.admin.user.edit) @Fail(json ) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,517 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/login'               >> (IndexAct.java:20).login              : void       | @Ok(fm:template.login.login) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:16:03,517 [INFO][org.nutz.mvc.impl.NutLoading] - Found 101 module methods
+2020-01-11 21:16:03,518 [DEBUG][org.nutz.mvc.impl.NutLoading] - Localization: org.nutz.mvc.impl.NutMessageLoader('msg/')  dft<zh-CN>
+2020-01-11 21:16:03,521 [DEBUG][org.nutz.mvc.impl.NutMessageLoader] - Load Messages in 2 resource : [[jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-mvc/2.3.9-SNAPSHOT/nutzboot-starter-nutz-mvc-2.3.9-SNAPSHOT.jar!/msg/emtry.properties, File[/Users/kouxian/git/rk_svnadmin/target/classes/msg/zh-CN/MessageResources.properties]]]
+2020-01-11 21:16:03,524 [DEBUG][org.nutz.mvc.impl.NutMessageLoader] - Message Loaded, size = 2
+2020-01-11 21:16:03,528 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is up in 477ms
+2020-01-11 21:16:03,529 [INFO][org.nutz.mvc.NutFilter] - exclusionsPrefix  = ^(/druid/)
+2020-01-11 21:16:03,609 [DEBUG][org.nutz.boot.starter.jetty.JettyStarter] - Jetty monitor props:
+----------------------------------------------
+http.port                                : 8084
+http.host                                : 0.0.0.0
+http.idleTimeout                         : 300000
+https.enable                             : false
+welcome_files                            : index.html,index.htm,index.do
+maxFormContentSize                       : 1073741824
+----------------------------------------------
+2020-01-11 21:16:03,657 [INFO][org.nutz.boot.starter.quartz.QuartzStarter] - Starting Quartz Scheduler now
+2020-01-11 21:16:03,658 [INFO][org.quartz.core.QuartzScheduler] - Scheduler NutzbootScheduler_$_NON_CLUSTERED started.
+2020-01-11 21:16:03,674 [DEBUG][org.nutz.integration.quartz.NutQuartzCronJobFactory] - found cron job packages = com.rekoe
+2020-01-11 21:16:03,696 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.ProjectConfig
+2020-01-11 21:16:03,987 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT COUNT(*) FROM system_user 
+2020-01-11 21:16:03,990 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT COUNT(*) FROM system_user 
+2020-01-11 21:16:04,008 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM permission_category 
+2020-01-11 21:16:04,015 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=7ms, sql=SELECT * FROM permission_category 
+2020-01-11 21:16:04,017 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM system_permission 
+2020-01-11 21:16:04,031 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=14ms, sql=SELECT * FROM system_permission 
+2020-01-11 21:16:04,044 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM permission_category  WHERE  1 != 1 
+2020-01-11 21:16:04,047 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM permission_category  WHERE  1 != 1 
+2020-01-11 21:16:04,049 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:16:04,061 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=12ms, sql=SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:16:04,072 [INFO][org.nutz.boot.NbApp] - NB started : 4214ms
+2020-01-11 21:16:06,856 [INFO][org.apache.shiro.session.mgt.AbstractValidatingSessionManager] - Enabling session validation scheduler...
+2020-01-11 21:16:06,858 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Using existing EHCache named [shiro-activeSessionCache]
+2020-01-11 21:16:06,958 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:16:06,990 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:16:07,000 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:16:07,002 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:16:07,003 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:31)
+2020-01-11 21:16:07,450 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:19)
+2020-01-11 21:16:07,451 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:25)
+2020-01-11 21:16:07,583 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:36)
+2020-01-11 21:16:07,802 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:43)
+2020-01-11 21:16:23,358 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/user/main : FrameAct.userMain(FrameAct.java:15)
+2020-01-11 21:16:23,472 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/user/left : FrameAct.userLeft(FrameAct.java:21)
+2020-01-11 21:16:23,502 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/user/right : FrameAct.userRight(FrameAct.java:26)
+2020-01-11 21:16:24,879 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/role/list : AdminRoleAct.list(AdminRoleAct.java:49)
+2020-01-11 21:16:24,888 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Permission
+2020-01-11 21:16:24,893 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.PermissionCategory
+2020-01-11 21:16:24,907 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache msg=5uvmi8qe54i6kp0tj40pinte1q:com.rekoe.domain.User@44c382d0
+2020-01-11 21:16:24,911 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache, msg=5uvmi8qe54i6kp0tj40pinte1q:com.rekoe.domain.User@44c382d0
+2020-01-11 21:17:33,039 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:17:33,042 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:17:33,042 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/svn/user/main : FrameAct.svn_user_main(FrameAct.java:52)
+2020-01-11 21:17:33,596 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/svn/user/left : FrameAct.svn_user_left(FrameAct.java:57)
+2020-01-11 21:17:33,596 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/svn/user/right : FrameAct.svn_user_right(FrameAct.java:62)
+2020-01-11 21:17:34,401 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/svn/user/list : AdminSvnUserAct.list(AdminSvnUserAct.java:64)
+2020-01-11 21:17:34,413 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Usr
+2020-01-11 21:17:34,430 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Pj
+2020-01-11 21:17:34,437 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.PjGr
+2020-01-11 21:17:34,444 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.PjUsr
+2020-01-11 21:17:34,450 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.PjAuth
+2020-01-11 21:17:34,457 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.PjGrUsr
+2020-01-11 21:17:34,464 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Usr
+2020-01-11 21:17:35,468 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/svn/user/lock_list : AdminSvnUserAct.lock_list(AdminSvnUserAct.java:75)
+2020-01-11 21:17:37,349 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/main : FrameAct.project_main(FrameAct.java:70)
+2020-01-11 21:17:37,469 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/left : FrameAct.project_left(FrameAct.java:75)
+2020-01-11 21:17:37,478 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/right : FrameAct.project_right(FrameAct.java:80)
+2020-01-11 21:17:38,727 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:17:39,949 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/conf : AdminProjectAct.conf(AdminProjectAct.java:208)
+2020-01-11 21:19:53,707 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:19:53,709 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:19:53,844 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [POST] path=/admin/project/conf/update : AdminProjectAct.conf_update(AdminProjectAct.java:215)
+2020-01-11 21:19:53,858 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - UPDATE project_config SET repository_path=?,domain_path=?,def_dirs=?,email_notify=?  WHERE id=?
+    |                                      1 |                        2 |                          3 |     4 |                                5 |
+    |----------------------------------------|--------------------------|----------------------------|-------|----------------------------------|
+    | /Users/kouxian/work/data/svn/svn_repo/ | http://svn.test.com/svn/ | ["trunk", "tag", "branch"] | false | 2ae3e7b180f2486c93f1a3aa2d386de2 |
+  For example:> "UPDATE project_config SET repository_path='/Users/kouxian/work/data/svn/svn_repo/',domain_path='http://svn.test.com/svn/',def_dirs='["trunk", "tag", "branch"]',email_notify=false  WHERE id='2ae3e7b180f2486c93f1a3aa2d386de2'"
+2020-01-11 21:19:53,866 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=8ms, sql=UPDATE project_config SET repository_path='/Users/kouxian/work/data/svn/svn_repo/',domain_path='http://svn.test.com/svn/',def_dirs='["trunk", "tag", "branch"]',email_notify=false  WHERE id='2ae3e7b180f2486c93f1a3aa2d386de2'
+2020-01-11 21:19:53,971 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/conf : AdminProjectAct.conf(AdminProjectAct.java:208)
+2020-01-11 21:19:53,974 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:19:53,978 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:20:42,654 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:20:45,849 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/add : AdminProjectAct.add(AdminProjectAct.java:55)
+2020-01-11 21:21:09,571 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:21:09,572 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:21:09,572 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [POST] path=/admin/project/o_save : AdminProjectAct.o_save(AdminProjectAct.java:68)
+2020-01-11 21:21:09,583 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  WHERE pj=? LIMIT 0, 1 
+    |       1 |
+    |---------|
+    | hunnit2 |
+  For example:> "SELECT * FROM pj  WHERE pj='hunnit2' LIMIT 0, 1 "
+2020-01-11 21:21:09,586 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM pj  WHERE pj='hunnit2' LIMIT 0, 1 
+2020-01-11 21:21:09,592 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  WHERE pj=? LIMIT 0, 1 
+    |       1 |
+    |---------|
+    | hunnit2 |
+  For example:> "SELECT * FROM pj  WHERE pj='hunnit2' LIMIT 0, 1 "
+2020-01-11 21:21:09,594 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=2ms, sql=SELECT * FROM pj  WHERE pj='hunnit2' LIMIT 0, 1 
+2020-01-11 21:21:09,595 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:21:09,597 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=2ms, sql=SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:21:11,654 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj(pj,des,type,is_init_templ) VALUES(?,?,?,?) 
+    |       1 |    2 |    3 |     4 |
+    |---------|------|------|-------|
+    | hunnit2 | 缅甸电商 | http | false |
+  For example:> "INSERT INTO pj(pj,des,type,is_init_templ) VALUES('hunnit2','缅甸电商','http',false) "
+2020-01-11 21:21:11,706 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=51ms, sql=INSERT INTO pj(pj,des,type,is_init_templ) VALUES('hunnit2','缅甸电商','http',false) 
+2020-01-11 21:21:11,710 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj_gr  WHERE pj=? AND gr=? LIMIT 0, 1 
+    |       1 |       2 |
+    |---------|---------|
+    | hunnit2 | manager |
+  For example:> "SELECT * FROM pj_gr  WHERE pj='hunnit2' AND gr='manager' LIMIT 0, 1 "
+2020-01-11 21:21:11,715 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=5ms, sql=SELECT * FROM pj_gr  WHERE pj='hunnit2' AND gr='manager' LIMIT 0, 1 
+2020-01-11 21:21:11,720 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj_gr(pj,gr,des) VALUES(?,?,?) 
+    |       1 |       2 |       3 |
+    |---------|---------|---------|
+    | hunnit2 | manager | manager |
+  For example:> "INSERT INTO pj_gr(pj,gr,des) VALUES('hunnit2','manager','manager') "
+2020-01-11 21:21:11,729 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=9ms, sql=INSERT INTO pj_gr(pj,gr,des) VALUES('hunnit2','manager','manager') 
+2020-01-11 21:21:11,732 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj_gr  WHERE pj=? AND gr=? LIMIT 0, 1 
+    |       1 |         2 |
+    |---------|-----------|
+    | hunnit2 | developer |
+  For example:> "SELECT * FROM pj_gr  WHERE pj='hunnit2' AND gr='developer' LIMIT 0, 1 "
+2020-01-11 21:21:11,735 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM pj_gr  WHERE pj='hunnit2' AND gr='developer' LIMIT 0, 1 
+2020-01-11 21:21:11,736 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj_gr(pj,gr,des) VALUES(?,?,?) 
+    |       1 |         2 |         3 |
+    |---------|-----------|-----------|
+    | hunnit2 | developer | developer |
+  For example:> "INSERT INTO pj_gr(pj,gr,des) VALUES('hunnit2','developer','developer') "
+2020-01-11 21:21:11,740 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=4ms, sql=INSERT INTO pj_gr(pj,gr,des) VALUES('hunnit2','developer','developer') 
+2020-01-11 21:21:11,743 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj_gr  WHERE pj=? AND gr=? LIMIT 0, 1 
+    |       1 |      2 |
+    |---------|--------|
+    | hunnit2 | tester |
+  For example:> "SELECT * FROM pj_gr  WHERE pj='hunnit2' AND gr='tester' LIMIT 0, 1 "
+2020-01-11 21:21:11,748 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM pj_gr  WHERE pj='hunnit2' AND gr='tester' LIMIT 0, 1 
+2020-01-11 21:21:11,748 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj_gr(pj,gr,des) VALUES(?,?,?) 
+    |       1 |      2 |      3 |
+    |---------|--------|--------|
+    | hunnit2 | tester | tester |
+  For example:> "INSERT INTO pj_gr(pj,gr,des) VALUES('hunnit2','tester','tester') "
+2020-01-11 21:21:11,752 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=INSERT INTO pj_gr(pj,gr,des) VALUES('hunnit2','tester','tester') 
+2020-01-11 21:21:11,802 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - select a.pj,a.res,a.rw,b.usr,b.name as usrname,' ' gr from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj =? and a.usr=? and a.res=?
+    |       1 |     2 |           3 |
+    |---------|-------|-------------|
+    | hunnit2 | admin | [hunnit2:/] |
+  For example:> "select a.pj,a.res,a.rw,b.usr,b.name as usrname,' ' gr from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj ='hunnit2' and a.usr='admin' and a.res='[hunnit2:/]'"
+2020-01-11 21:21:11,809 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=6ms, sql=select a.pj,a.res,a.rw,b.usr,b.name as usrname,' ' gr from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj ='hunnit2' and a.usr='admin' and a.res='[hunnit2:/]'
+2020-01-11 21:21:11,810 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - insert into pj_usr_auth (pj,usr,res,rw) values (?,?,?,?)
+    |       1 |     2 |           3 |  4 |
+    |---------|-------|-------------|----|
+    | hunnit2 | admin | [hunnit2:/] | rw |
+  For example:> "insert into pj_usr_auth (pj,usr,res,rw) values ('hunnit2','admin','[hunnit2:/]','rw')"
+2020-01-11 21:21:11,843 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SQLException
+java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`rk_admin`.`pj_usr_auth`, CONSTRAINT `FK_Reference_8` FOREIGN KEY (`usr`) REFERENCES `usr` (`usr`) ON DELETE RESTRICT ON UPDATE RESTRICT)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
+	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)
+	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)
+	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
+	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)
+	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)
+	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)
+	at org.nutz.dao.impl.sql.run.NutDaoExecutor._runPreparedStatement(NutDaoExecutor.java:311)
+	at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:96)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:65)
+	at org.nutz.dao.impl.interceptor.DaoTimeInterceptor.filter(DaoTimeInterceptor.java:23)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.dao.impl.interceptor.DaoLogInterceptor.filter(DaoLogInterceptor.java:22)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.plugins.cache.dao.DaoCacheInterceptor._exec(DaoCacheInterceptor.java:28)
+	at org.nutz.plugins.cache.dao.CachedNutDaoExecutor.exec(CachedNutDaoExecutor.java:188)
+	at org.nutz.plugins.cache.dao.DaoCacheInterceptor.filter(DaoCacheInterceptor.java:18)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.dao.DaoInterceptorChain.invoke(DaoInterceptorChain.java:138)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner.runCallback(NutDaoRunner.java:163)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner._runWithTransaction(NutDaoRunner.java:109)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner._run(NutDaoRunner.java:93)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner$1.run(NutDaoRunner.java:79)
+	at org.nutz.trans.Trans.exec(Trans.java:174)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:77)
+	at org.nutz.dao.impl.DaoSupport.run(DaoSupport.java:242)
+	at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:254)
+	at org.nutz.dao.impl.DaoSupport.execute(DaoSupport.java:238)
+	at org.nutz.dao.impl.NutDao.execute(NutDao.java:1097)
+	at com.rekoe.service.ProjectAuthService.saveByUsr(ProjectAuthService.java:253)
+	at com.rekoe.service.ProjectService.save(ProjectService.java:108)
+	at com.rekoe.service.ProjectService$$NUTZAOP._aop_invoke(ProjectService.java:2)
+	at org.nutz.aop.InterceptorChain.invoke(InterceptorChain.java:77)
+	at org.nutz.aop.InterceptorChain.doChain(InterceptorChain.java:57)
+	at org.nutz.aop.interceptor.TransactionInterceptor.filter(TransactionInterceptor.java:34)
+	at org.nutz.aop.InterceptorChain.doChain(InterceptorChain.java:60)
+	at com.rekoe.service.ProjectService$$NUTZAOP.save(ProjectService.java:1)
+	at com.rekoe.module.admin.AdminProjectAct.o_save(AdminProjectAct.java:70)
+	at com.rekoe.module.admin.AdminProjectAct$FM$o_save$26091559242b1ee9c951602f31a10ca2.invoke(AdminProjectAct.java)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 21:21:11,847 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=37ms, sql=insert into pj_usr_auth (pj,usr,res,rw) values ('hunnit2','admin','[hunnit2:/]','rw')
+2020-01-11 21:21:11,852 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/project/o_save :
+org.nutz.dao.DaoException: !Nutz SQL Error: 'insert into pj_usr_auth (pj,usr,res,rw) values ('hunnit2','admin','[hunnit2:/]','rw')'
+PreparedStatement: 
+'insert into pj_usr_auth (pj,usr,res,rw) values (?,?,?,?)'
+CaseMessage=Cannot add or update a child row: a foreign key constraint fails (`rk_admin`.`pj_usr_auth`, CONSTRAINT `FK_Reference_8` FOREIGN KEY (`usr`) REFERENCES `usr` (`usr`) ON DELETE RESTRICT ON UPDATE RESTRICT)
+	at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:110)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:65)
+	at org.nutz.dao.impl.interceptor.DaoTimeInterceptor.filter(DaoTimeInterceptor.java:23)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.dao.impl.interceptor.DaoLogInterceptor.filter(DaoLogInterceptor.java:22)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.plugins.cache.dao.DaoCacheInterceptor._exec(DaoCacheInterceptor.java:28)
+	at org.nutz.plugins.cache.dao.CachedNutDaoExecutor.exec(CachedNutDaoExecutor.java:188)
+	at org.nutz.plugins.cache.dao.DaoCacheInterceptor.filter(DaoCacheInterceptor.java:18)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.dao.DaoInterceptorChain.invoke(DaoInterceptorChain.java:138)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner.runCallback(NutDaoRunner.java:163)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner._runWithTransaction(NutDaoRunner.java:109)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner._run(NutDaoRunner.java:93)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner$1.run(NutDaoRunner.java:79)
+	at org.nutz.trans.Trans.exec(Trans.java:174)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:77)
+	at org.nutz.dao.impl.DaoSupport.run(DaoSupport.java:242)
+	at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:254)
+	at org.nutz.dao.impl.DaoSupport.execute(DaoSupport.java:238)
+	at org.nutz.dao.impl.NutDao.execute(NutDao.java:1097)
+	at com.rekoe.service.ProjectAuthService.saveByUsr(ProjectAuthService.java:253)
+	at com.rekoe.service.ProjectService.save(ProjectService.java:108)
+	at com.rekoe.service.ProjectService$$NUTZAOP._aop_invoke(ProjectService.java:2)
+	at org.nutz.aop.InterceptorChain.invoke(InterceptorChain.java:77)
+	at org.nutz.aop.InterceptorChain.doChain(InterceptorChain.java:57)
+	at org.nutz.aop.interceptor.TransactionInterceptor.filter(TransactionInterceptor.java:34)
+	at org.nutz.aop.InterceptorChain.doChain(InterceptorChain.java:60)
+	at com.rekoe.service.ProjectService$$NUTZAOP.save(ProjectService.java:1)
+	at com.rekoe.module.admin.AdminProjectAct.o_save(AdminProjectAct.java:70)
+	at com.rekoe.module.admin.AdminProjectAct$FM$o_save$26091559242b1ee9c951602f31a10ca2.invoke(AdminProjectAct.java)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`rk_admin`.`pj_usr_auth`, CONSTRAINT `FK_Reference_8` FOREIGN KEY (`usr`) REFERENCES `usr` (`usr`) ON DELETE RESTRICT ON UPDATE RESTRICT)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
+	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)
+	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)
+	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
+	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)
+	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)
+	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)
+	at org.nutz.dao.impl.sql.run.NutDaoExecutor._runPreparedStatement(NutDaoExecutor.java:311)
+	at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:96)
+	... 93 more
+2020-01-11 21:21:11,901 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/common/unauthorized : AdminCommonAct.unauthorized(AdminCommonAct.java:26)
+2020-01-11 21:27:29,517 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:27:29,519 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/main : FrameAct.project_main(FrameAct.java:70)
+2020-01-11 21:27:29,519 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:27:29,621 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/left : FrameAct.project_left(FrameAct.java:75)
+2020-01-11 21:27:29,662 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/right : FrameAct.project_right(FrameAct.java:80)
+2020-01-11 21:27:33,713 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/svn/user/main : FrameAct.svn_user_main(FrameAct.java:52)
+2020-01-11 21:27:33,783 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:27:33,805 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  LIMIT 0, 20 
+2020-01-11 21:27:33,825 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=20ms, sql=SELECT * FROM pj  LIMIT 0, 20 
+2020-01-11 21:27:33,866 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT COUNT(*) FROM pj 
+2020-01-11 21:27:33,868 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=2ms, sql=SELECT COUNT(*) FROM pj 
+2020-01-11 21:27:33,885 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/svn/user/left : FrameAct.svn_user_left(FrameAct.java:57)
+2020-01-11 21:27:33,917 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/svn/user/right : FrameAct.svn_user_right(FrameAct.java:62)
+2020-01-11 21:27:35,700 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/svn/user/list : AdminSvnUserAct.list(AdminSvnUserAct.java:64)
+2020-01-11 21:27:37,312 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/svn/user/add : AdminSvnUserAct.add(AdminSvnUserAct.java:86)
+2020-01-11 21:27:57,150 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [POST] path=/admin/svn/user/o_save : AdminSvnUserAct.o_save(AdminSvnUserAct.java:101)
+2020-01-11 21:27:57,170 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO usr(usr,name,psw,role,email,is_lock,is_local) VALUES(?,?,?,?,?,?,?) 
+    |     1 |     2 |                3 |     4 |                5 |     6 |     7 |
+    |-------|-------|------------------|-------|------------------|-------|-------|
+    | admin | admin | VkdUZ3pTRmxJLQ** | admin | koukou890@qq.com | false | false |
+  For example:> "INSERT INTO usr(usr,name,psw,role,email,is_lock,is_local) VALUES('admin','admin','VkdUZ3pTRmxJLQ**','admin','koukou890@qq.com',false,false) "
+2020-01-11 21:27:57,178 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=7ms, sql=INSERT INTO usr(usr,name,psw,role,email,is_lock,is_local) VALUES('admin','admin','VkdUZ3pTRmxJLQ**','admin','koukou890@qq.com',false,false) 
+2020-01-11 21:27:57,265 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/svn/user/list : AdminSvnUserAct.list(AdminSvnUserAct.java:64)
+2020-01-11 21:27:57,271 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM usr  WHERE  NOT usr=? AND is_lock=? LIMIT 0, 20 
+    | 1 |     2 |
+    |---|-------|
+    | * | false |
+  For example:> "SELECT * FROM usr  WHERE  NOT usr='*' AND is_lock=false LIMIT 0, 20 "
+2020-01-11 21:27:57,278 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=7ms, sql=SELECT * FROM usr  WHERE  NOT usr='*' AND is_lock=false LIMIT 0, 20 
+2020-01-11 21:27:57,290 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT COUNT(*) FROM usr  WHERE  NOT usr=? AND is_lock=?
+    | 1 |     2 |
+    |---|-------|
+    | * | false |
+  For example:> "SELECT COUNT(*) FROM usr  WHERE  NOT usr='*' AND is_lock=false"
+2020-01-11 21:27:57,292 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=2ms, sql=SELECT COUNT(*) FROM usr  WHERE  NOT usr='*' AND is_lock=false
+2020-01-11 21:28:01,426 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/main : FrameAct.project_main(FrameAct.java:70)
+2020-01-11 21:28:01,740 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/left : FrameAct.project_left(FrameAct.java:75)
+2020-01-11 21:28:01,744 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/right : FrameAct.project_right(FrameAct.java:80)
+2020-01-11 21:28:03,007 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:28:05,698 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/conf : AdminProjectAct.conf(AdminProjectAct.java:208)
+2020-01-11 21:28:08,481 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:28:10,066 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/add : AdminProjectAct.add(AdminProjectAct.java:55)
+2020-01-11 21:28:57,739 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:28:57,741 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=5uvmi8qe54i6kp0tj40pinte1q:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:28:57,741 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [POST] path=/admin/project/o_save : AdminProjectAct.o_save(AdminProjectAct.java:68)
+2020-01-11 21:28:57,744 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  WHERE pj=? LIMIT 0, 1 
+    |         1 |
+    |-----------|
+    | popyoupro |
+  For example:> "SELECT * FROM pj  WHERE pj='popyoupro' LIMIT 0, 1 "
+2020-01-11 21:28:57,747 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM pj  WHERE pj='popyoupro' LIMIT 0, 1 
+2020-01-11 21:28:57,752 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  WHERE pj=? LIMIT 0, 1 
+    |         1 |
+    |-----------|
+    | popyoupro |
+  For example:> "SELECT * FROM pj  WHERE pj='popyoupro' LIMIT 0, 1 "
+2020-01-11 21:28:57,754 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=2ms, sql=SELECT * FROM pj  WHERE pj='popyoupro' LIMIT 0, 1 
+2020-01-11 21:28:57,754 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:28:57,757 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:28:57,807 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj(pj,des,type,is_init_templ) VALUES(?,?,?,?) 
+    |         1 |   2 |    3 |     4 |
+    |-----------|-----|------|-------|
+    | popyoupro | POP | http | false |
+  For example:> "INSERT INTO pj(pj,des,type,is_init_templ) VALUES('popyoupro','POP','http',false) "
+2020-01-11 21:28:57,813 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=6ms, sql=INSERT INTO pj(pj,des,type,is_init_templ) VALUES('popyoupro','POP','http',false) 
+2020-01-11 21:28:57,816 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj_gr  WHERE pj=? AND gr=? LIMIT 0, 1 
+    |         1 |       2 |
+    |-----------|---------|
+    | popyoupro | manager |
+  For example:> "SELECT * FROM pj_gr  WHERE pj='popyoupro' AND gr='manager' LIMIT 0, 1 "
+2020-01-11 21:28:57,822 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=5ms, sql=SELECT * FROM pj_gr  WHERE pj='popyoupro' AND gr='manager' LIMIT 0, 1 
+2020-01-11 21:28:57,822 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj_gr(pj,gr,des) VALUES(?,?,?) 
+    |         1 |       2 |       3 |
+    |-----------|---------|---------|
+    | popyoupro | manager | manager |
+  For example:> "INSERT INTO pj_gr(pj,gr,des) VALUES('popyoupro','manager','manager') "
+2020-01-11 21:28:57,829 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=7ms, sql=INSERT INTO pj_gr(pj,gr,des) VALUES('popyoupro','manager','manager') 
+2020-01-11 21:28:57,831 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj_gr  WHERE pj=? AND gr=? LIMIT 0, 1 
+    |         1 |         2 |
+    |-----------|-----------|
+    | popyoupro | developer |
+  For example:> "SELECT * FROM pj_gr  WHERE pj='popyoupro' AND gr='developer' LIMIT 0, 1 "
+2020-01-11 21:28:57,836 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM pj_gr  WHERE pj='popyoupro' AND gr='developer' LIMIT 0, 1 
+2020-01-11 21:28:57,836 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj_gr(pj,gr,des) VALUES(?,?,?) 
+    |         1 |         2 |         3 |
+    |-----------|-----------|-----------|
+    | popyoupro | developer | developer |
+  For example:> "INSERT INTO pj_gr(pj,gr,des) VALUES('popyoupro','developer','developer') "
+2020-01-11 21:28:57,843 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=7ms, sql=INSERT INTO pj_gr(pj,gr,des) VALUES('popyoupro','developer','developer') 
+2020-01-11 21:28:57,846 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj_gr  WHERE pj=? AND gr=? LIMIT 0, 1 
+    |         1 |      2 |
+    |-----------|--------|
+    | popyoupro | tester |
+  For example:> "SELECT * FROM pj_gr  WHERE pj='popyoupro' AND gr='tester' LIMIT 0, 1 "
+2020-01-11 21:28:57,851 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=5ms, sql=SELECT * FROM pj_gr  WHERE pj='popyoupro' AND gr='tester' LIMIT 0, 1 
+2020-01-11 21:28:57,852 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj_gr(pj,gr,des) VALUES(?,?,?) 
+    |         1 |      2 |      3 |
+    |-----------|--------|--------|
+    | popyoupro | tester | tester |
+  For example:> "INSERT INTO pj_gr(pj,gr,des) VALUES('popyoupro','tester','tester') "
+2020-01-11 21:28:57,862 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=9ms, sql=INSERT INTO pj_gr(pj,gr,des) VALUES('popyoupro','tester','tester') 
+2020-01-11 21:28:57,865 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - select a.pj,a.res,a.rw,b.usr,b.name as usrname,' ' gr from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj =? and a.usr=? and a.res=?
+    |         1 |     2 |             3 |
+    |-----------|-------|---------------|
+    | popyoupro | admin | [popyoupro:/] |
+  For example:> "select a.pj,a.res,a.rw,b.usr,b.name as usrname,' ' gr from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj ='popyoupro' and a.usr='admin' and a.res='[popyoupro:/]'"
+2020-01-11 21:28:57,872 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=6ms, sql=select a.pj,a.res,a.rw,b.usr,b.name as usrname,' ' gr from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj ='popyoupro' and a.usr='admin' and a.res='[popyoupro:/]'
+2020-01-11 21:28:57,873 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - insert into pj_usr_auth (pj,usr,res,rw) values (?,?,?,?)
+    |         1 |     2 |             3 |  4 |
+    |-----------|-------|---------------|----|
+    | popyoupro | admin | [popyoupro:/] | rw |
+  For example:> "insert into pj_usr_auth (pj,usr,res,rw) values ('popyoupro','admin','[popyoupro:/]','rw')"
+2020-01-11 21:28:57,878 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=5ms, sql=insert into pj_usr_auth (pj,usr,res,rw) values ('popyoupro','admin','[popyoupro:/]','rw')
+2020-01-11 21:28:57,880 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - select pj,res,rw,gr,' ' usr,' ' usrname from pj_gr_auth  WHERE pj=? AND gr=? AND res=?
+    |         1 |       2 |             3 |
+    |-----------|---------|---------------|
+    | popyoupro | manager | [popyoupro:/] |
+  For example:> "select pj,res,rw,gr,' ' usr,' ' usrname from pj_gr_auth  WHERE pj='popyoupro' AND gr='manager' AND res='[popyoupro:/]'"
+2020-01-11 21:28:57,891 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=11ms, sql=select pj,res,rw,gr,' ' usr,' ' usrname from pj_gr_auth  WHERE pj='popyoupro' AND gr='manager' AND res='[popyoupro:/]'
+2020-01-11 21:28:57,892 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - insert into pj_gr_auth (pj,gr,res,rw) values (?,?,?,?)
+    |         1 |       2 |             3 |  4 |
+    |-----------|---------|---------------|----|
+    | popyoupro | manager | [popyoupro:/] | rw |
+  For example:> "insert into pj_gr_auth (pj,gr,res,rw) values ('popyoupro','manager','[popyoupro:/]','rw')"
+2020-01-11 21:28:57,897 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=5ms, sql=insert into pj_gr_auth (pj,gr,res,rw) values ('popyoupro','manager','[popyoupro:/]','rw')
+2020-01-11 21:28:57,899 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  WHERE pj=? LIMIT 0, 1 
+    |         1 |
+    |-----------|
+    | popyoupro |
+  For example:> "SELECT * FROM pj  WHERE pj='popyoupro' LIMIT 0, 1 "
+2020-01-11 21:28:57,902 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM pj  WHERE pj='popyoupro' LIMIT 0, 1 
+2020-01-11 21:28:57,903 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:28:57,906 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:28:57,910 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - select p.usr,p.name,p.role,CASE WHEN pu.psw IS NOT NULL THEN pu.psw ELSE p.psw END psw from ( select a.usr,a.role,a.psw,a.name from usr a  where  exists (select d.usr from pj_gr_usr d where d.usr=a.usr and d.pj=?)  or exists(select c.usr from pj_usr_auth c where a.usr=c.usr and c.pj=?)  ) p  left join pj_usr pu on (p.usr=pu.usr and pu.pj=?) where p.usr <> '*' order by p.usr
+    |         1 |         2 |         3 |
+    |-----------|-----------|-----------|
+    | popyoupro | popyoupro | popyoupro |
+  For example:> "select p.usr,p.name,p.role,CASE WHEN pu.psw IS NOT NULL THEN pu.psw ELSE p.psw END psw from ( select a.usr,a.role,a.psw,a.name from usr a  where  exists (select d.usr from pj_gr_usr d where d.usr=a.usr and d.pj='popyoupro')  or exists(select c.usr from pj_usr_auth c where a.usr=c.usr and c.pj='popyoupro')  ) p  left join pj_usr pu on (p.usr=pu.usr and pu.pj='popyoupro') where p.usr <> '*' order by p.usr"
+2020-01-11 21:28:57,941 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=31ms, sql=select p.usr,p.name,p.role,CASE WHEN pu.psw IS NOT NULL THEN pu.psw ELSE p.psw END psw from ( select a.usr,a.role,a.psw,a.name from usr a  where  exists (select d.usr from pj_gr_usr d where d.usr=a.usr and d.pj='popyoupro')  or exists(select c.usr from pj_usr_auth c where a.usr=c.usr and c.pj='popyoupro')  ) p  left join pj_usr pu on (p.usr=pu.usr and pu.pj='popyoupro') where p.usr <> '*' order by p.usr
+2020-01-11 21:28:57,942 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - select a.pj,a.gr,b.usr,c.name as usrname from pj_gr a left join pj_gr_usr b on (a.pj=b.pj and a.gr=b.gr) left join usr c on (b.usr = c.usr) where a.pj=? and c.is_lock=falsd order by a.gr,b.usr
+    |         1 |
+    |-----------|
+    | popyoupro |
+  For example:> "select a.pj,a.gr,b.usr,c.name as usrname from pj_gr a left join pj_gr_usr b on (a.pj=b.pj and a.gr=b.gr) left join usr c on (b.usr = c.usr) where a.pj='popyoupro' and c.is_lock=falsd order by a.gr,b.usr"
+2020-01-11 21:28:57,945 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SQLException
+java.sql.SQLSyntaxErrorException: Unknown column 'falsd' in 'where clause'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
+	at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003)
+	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3240)
+	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeQuery(FilterEventAdapter.java:465)
+	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3237)
+	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.executeQuery(PreparedStatementProxyImpl.java:181)
+	at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:227)
+	at org.nutz.dao.impl.sql.run.NutDaoExecutor._runSelect(NutDaoExecutor.java:275)
+	at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:59)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:65)
+	at org.nutz.dao.impl.interceptor.DaoTimeInterceptor.filter(DaoTimeInterceptor.java:23)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.dao.impl.interceptor.DaoLogInterceptor.filter(DaoLogInterceptor.java:22)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.plugins.cache.dao.DaoCacheInterceptor._exec(DaoCacheInterceptor.java:28)
+	at org.nutz.plugins.cache.dao.CachedNutDaoExecutor.exec(CachedNutDaoExecutor.java:188)
+	at org.nutz.plugins.cache.dao.DaoCacheInterceptor.filter(DaoCacheInterceptor.java:18)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.dao.DaoInterceptorChain.invoke(DaoInterceptorChain.java:138)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner.runCallback(NutDaoRunner.java:163)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner._runWithTransaction(NutDaoRunner.java:109)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner._run(NutDaoRunner.java:93)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner$1.run(NutDaoRunner.java:79)
+	at org.nutz.trans.Trans.exec(Trans.java:174)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:77)
+	at org.nutz.dao.impl.DaoSupport.run(DaoSupport.java:242)
+	at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:254)
+	at org.nutz.dao.impl.DaoSupport.execute(DaoSupport.java:238)
+	at org.nutz.dao.impl.NutDao.execute(NutDao.java:1097)
+	at com.rekoe.service.ProjectGroupUsrService.getList(ProjectGroupUsrService.java:111)
+	at com.rekoe.service.SvnService.getPjGrUsrs(SvnService.java:212)
+	at com.rekoe.service.SvnService.exportHTTP(SvnService.java:128)
+	at com.rekoe.service.SvnService.exportConfig(SvnService.java:88)
+	at com.rekoe.service.SvnService.exportConfig(SvnService.java:69)
+	at com.rekoe.service.ProjectService.save(ProjectService.java:119)
+	at com.rekoe.service.ProjectService$$NUTZAOP._aop_invoke(ProjectService.java:2)
+	at org.nutz.aop.InterceptorChain.invoke(InterceptorChain.java:77)
+	at org.nutz.aop.InterceptorChain.doChain(InterceptorChain.java:57)
+	at org.nutz.aop.interceptor.TransactionInterceptor.filter(TransactionInterceptor.java:34)
+	at org.nutz.aop.InterceptorChain.doChain(InterceptorChain.java:60)
+	at com.rekoe.service.ProjectService$$NUTZAOP.save(ProjectService.java:1)
+	at com.rekoe.module.admin.AdminProjectAct.o_save(AdminProjectAct.java:70)
+	at com.rekoe.module.admin.AdminProjectAct$FM$o_save$26091559242b1ee9c951602f31a10ca2.invoke(AdminProjectAct.java)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 21:28:57,946 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=4ms, sql=select a.pj,a.gr,b.usr,c.name as usrname from pj_gr a left join pj_gr_usr b on (a.pj=b.pj and a.gr=b.gr) left join usr c on (b.usr = c.usr) where a.pj='popyoupro' and c.is_lock=falsd order by a.gr,b.usr
+2020-01-11 21:28:57,954 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/project/o_save :
+org.nutz.dao.DaoException: !Nutz SQL Error: 'select a.pj,a.gr,b.usr,c.name as usrname from pj_gr a left join pj_gr_usr b on (a.pj=b.pj and a.gr=b.gr) left join usr c on (b.usr = c.usr) where a.pj='popyoupro' and c.is_lock=falsd order by a.gr,b.usr'
+PreparedStatement: 
+'select a.pj,a.gr,b.usr,c.name as usrname from pj_gr a left join pj_gr_usr b on (a.pj=b.pj and a.gr=b.gr) left join usr c on (b.usr = c.usr) where a.pj=? and c.is_lock=falsd order by a.gr,b.usr'
+CaseMessage=Unknown column 'falsd' in 'where clause'
+	at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:110)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:65)
+	at org.nutz.dao.impl.interceptor.DaoTimeInterceptor.filter(DaoTimeInterceptor.java:23)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.dao.impl.interceptor.DaoLogInterceptor.filter(DaoLogInterceptor.java:22)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.plugins.cache.dao.DaoCacheInterceptor._exec(DaoCacheInterceptor.java:28)
+	at org.nutz.plugins.cache.dao.CachedNutDaoExecutor.exec(CachedNutDaoExecutor.java:188)
+	at org.nutz.plugins.cache.dao.DaoCacheInterceptor.filter(DaoCacheInterceptor.java:18)
+	at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:63)
+	at org.nutz.dao.DaoInterceptorChain.invoke(DaoInterceptorChain.java:138)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner.runCallback(NutDaoRunner.java:163)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner._runWithTransaction(NutDaoRunner.java:109)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner._run(NutDaoRunner.java:93)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner$1.run(NutDaoRunner.java:79)
+	at org.nutz.trans.Trans.exec(Trans.java:174)
+	at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:77)
+	at org.nutz.dao.impl.DaoSupport.run(DaoSupport.java:242)
+	at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:254)
+	at org.nutz.dao.impl.DaoSupport.execute(DaoSupport.java:238)
+	at org.nutz.dao.impl.NutDao.execute(NutDao.java:1097)
+	at com.rekoe.service.ProjectGroupUsrService.getList(ProjectGroupUsrService.java:111)
+	at com.rekoe.service.SvnService.getPjGrUsrs(SvnService.java:212)
+	at com.rekoe.service.SvnService.exportHTTP(SvnService.java:128)
+	at com.rekoe.service.SvnService.exportConfig(SvnService.java:88)
+	at com.rekoe.service.SvnService.exportConfig(SvnService.java:69)
+	at com.rekoe.service.ProjectService.save(ProjectService.java:119)
+	at com.rekoe.service.ProjectService$$NUTZAOP._aop_invoke(ProjectService.java:2)
+	at org.nutz.aop.InterceptorChain.invoke(InterceptorChain.java:77)
+	at org.nutz.aop.InterceptorChain.doChain(InterceptorChain.java:57)
+	at org.nutz.aop.interceptor.TransactionInterceptor.filter(TransactionInterceptor.java:34)
+	at org.nutz.aop.InterceptorChain.doChain(InterceptorChain.java:60)
+	at com.rekoe.service.ProjectService$$NUTZAOP.save(ProjectService.java:1)
+	at com.rekoe.module.admin.AdminProjectAct.o_save(AdminProjectAct.java:70)
+	at com.rekoe.module.admin.AdminProjectAct$FM$o_save$26091559242b1ee9c951602f31a10ca2.invoke(AdminProjectAct.java)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: java.sql.SQLSyntaxErrorException: Unknown column 'falsd' in 'where clause'
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
+	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
+	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
+	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
+	at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003)
+	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3240)
+	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeQuery(FilterEventAdapter.java:465)
+	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3237)
+	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.executeQuery(PreparedStatementProxyImpl.java:181)
+	at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:227)
+	at org.nutz.dao.impl.sql.run.NutDaoExecutor._runSelect(NutDaoExecutor.java:275)
+	at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:59)
+	... 97 more
+2020-01-11 21:28:58,015 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/common/unauthorized : AdminCommonAct.unauthorized(AdminCommonAct.java:26)
+2020-01-11 21:31:34,043 [INFO][org.apache.shiro.session.mgt.AbstractValidatingSessionManager] - Disabled session validation scheduler.
+2020-01-11 21:31:34,045 [INFO][org.nutz.boot.starter.nutz.mvc.NbMvcLoading] - Nutz.Mvc[nutz] is deposing ...
+2020-01-11 21:31:34,045 [INFO][org.nutz.boot.starter.nutz.mvc.NbMvcLoading] - Nutz.Mvc[nutz] is down in 0ms
+2020-01-11 21:31:40,249 [INFO][org.nutz.boot.banner.SimpleBannerPrinter] - 
+ _   _ ______                                      ___   
+| \ | || ___ \  ______ ______ ______ ______ ______| \ \  
+|  \| || |_/ / |______|______|______|______|______| |\ \ 
+| . ` || ___ \  ______ ______ ______ ______ ______| | > >
+| |\  || |_/ / |______|______|______|______|______| |/ / 
+\_| \_/\____/                                     |_/_/  
+  
+:: Nutz Boot ::   (2.3.8.v20191031)
+
+2020-01-11 21:31:40,335 [DEBUG][org.nutz.boot.config.impl.PropertiesConfigureLoader] - load /Users/kouxian/git/rk_svnadmin/target/classes/application.properties
+2020-01-11 21:31:40,407 [DEBUG][org.nutz.castor.Castors] - Using 107 castor for Castors
+2020-01-11 21:31:40,435 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -  > scan 'com.rekoe'
+2020-01-11 21:31:40,586 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'cloudLauncher                           ' - com.rekoe.CloudLauncher
+2020-01-11 21:31:40,595 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'currentTime                             ' - com.rekoe.web.freemarker.CurrentTimeDirective
+2020-01-11 21:31:40,598 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'pagination                              ' - com.rekoe.web.freemarker.PaginationDirective
+2020-01-11 21:31:40,599 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permission                              ' - com.rekoe.web.freemarker.PermissionDirective
+2020-01-11 21:31:40,600 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'htmlCut                                 ' - com.rekoe.web.freemarker.HtmlCutDirective
+2020-01-11 21:31:40,600 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'process                                 ' - com.rekoe.web.freemarker.ProcessTimeDirective
+2020-01-11 21:31:40,601 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'timeFormat                              ' - com.rekoe.web.freemarker.TimeFormatDirective
+2020-01-11 21:31:40,603 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionAct                           ' - com.rekoe.module.admin.PermissionAct
+2020-01-11 21:31:40,613 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminUserAct                            ' - com.rekoe.module.admin.AdminUserAct
+2020-01-11 21:31:40,621 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'frameAct                                ' - com.rekoe.module.admin.FrameAct
+2020-01-11 21:31:40,622 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminSvnUserAct                         ' - com.rekoe.module.admin.AdminSvnUserAct
+2020-01-11 21:31:40,626 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectAct                         ' - com.rekoe.module.admin.AdminProjectAct
+2020-01-11 21:31:40,633 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminCommonAct                          ' - com.rekoe.module.admin.AdminCommonAct
+2020-01-11 21:31:40,634 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminRoleAct                            ' - com.rekoe.module.admin.AdminRoleAct
+2020-01-11 21:31:40,635 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionCategoryAct                   ' - com.rekoe.module.admin.PermissionCategoryAct
+2020-01-11 21:31:40,638 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'welcomeAct                              ' - com.rekoe.module.admin.WelcomeAct
+2020-01-11 21:31:40,640 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectGroupUsrAct                 ' - com.rekoe.module.admin.AdminProjectGroupUsrAct
+2020-01-11 21:31:40,650 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminLoginAct                           ' - com.rekoe.module.admin.AdminLoginAct
+2020-01-11 21:31:40,655 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'adminProjectGroupAct                    ' - com.rekoe.module.admin.AdminProjectGroupAct
+2020-01-11 21:31:40,658 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'indexAct                                ' - com.rekoe.module.IndexAct
+2020-01-11 21:31:40,659 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'ipSearchAction                          ' - com.rekoe.module.IpSearchAction
+2020-01-11 21:31:40,665 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'oauthLoginAct                           ' - com.rekoe.module.OauthLoginAct
+2020-01-11 21:31:40,669 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'doCommit                                ' - com.rekoe.utils.DoCommit
+2020-01-11 21:31:40,671 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'quartzService                           ' - com.rekoe.service.QuartzService
+2020-01-11 21:31:40,678 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'treeService                             ' - com.rekoe.service.DefaultTreeService
+2020-01-11 21:31:40,678 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'userService                             ' - com.rekoe.service.UserService
+2020-01-11 21:31:40,684 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'roleService                             ' - com.rekoe.service.RoleService
+2020-01-11 21:31:40,687 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectGroupService                     ' - com.rekoe.service.ProjectGroupService
+2020-01-11 21:31:40,690 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectAuthService                      ' - com.rekoe.service.ProjectAuthService
+2020-01-11 21:31:40,691 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectService                          ' - com.rekoe.service.ProjectService
+2020-01-11 21:31:40,709 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'usrService                              ' - com.rekoe.service.UsrService
+2020-01-11 21:31:40,709 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'repTreeNodeService                      ' - com.rekoe.service.RepTreeNodeService
+2020-01-11 21:31:40,711 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'svnService                              ' - com.rekoe.service.SvnService
+2020-01-11 21:31:40,712 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionCategoryService               ' - com.rekoe.service.PermissionCategoryService
+2020-01-11 21:31:40,715 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'repositoryService                       ' - com.rekoe.service.RepositoryService
+2020-01-11 21:31:40,718 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'uploadService                           ' - com.rekoe.service.UploadService
+2020-01-11 21:31:40,719 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectUserService                      ' - com.rekoe.service.ProjectUserService
+2020-01-11 21:31:40,720 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'authorityService                        ' - com.rekoe.service.AuthorityServiceImpl
+2020-01-11 21:31:40,721 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'emailService                            ' - com.rekoe.service.EmailServiceImpl
+2020-01-11 21:31:40,725 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'svnUserService                          ' - com.rekoe.service.SvnUserService
+2020-01-11 21:31:40,727 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectGroupUsrService                  ' - com.rekoe.service.ProjectGroupUsrService
+2020-01-11 21:31:40,728 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'idFactory                               ' - com.rekoe.service.IdWorkerService
+2020-01-11 21:31:40,730 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'projectConfigService                    ' - com.rekoe.service.ProjectConfigService
+2020-01-11 21:31:40,731 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'defaultTreeFactory                      ' - com.rekoe.service.DefaultTreeFactory
+2020-01-11 21:31:40,733 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'permissionService                       ' - com.rekoe.service.PermissionService
+2020-01-11 21:31:40,743 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroRealm                              ' - com.rekoe.shiro.realm.UsernamePasswordRealm
+2020-01-11 21:31:40,761 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -  > scan 'org.nutz.boot.starter'
+2020-01-11 21:31:40,804 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroFilterStarter                      ' - org.nutz.boot.starter.shiro.ShiroFilterStarter
+2020-01-11 21:31:40,807 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'shiroEnvStarter                         ' - org.nutz.boot.starter.shiro.ShiroEnvStarter
+2020-01-11 21:31:40,809 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'freeMarkerConfigurer                    ' - org.nutz.boot.starter.freemarker.FreeMarkerConfigurer
+2020-01-11 21:31:40,812 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add '$views_freekmarker                      ' - org.nutz.boot.starter.freemarker.FreemarkerViewMaker
+2020-01-11 21:31:40,813 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'quartzStarter                           ' - org.nutz.boot.starter.quartz.QuartzStarter
+2020-01-11 21:31:40,814 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'whaleFilterStarter                      ' - org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter
+2020-01-11 21:31:40,817 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nutFilterStarter                        ' - org.nutz.boot.starter.nutz.mvc.NutFilterStarter
+2020-01-11 21:31:40,818 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nutDaoStarter                           ' - org.nutz.boot.starter.nutz.dao.NutDaoStarter
+2020-01-11 21:31:40,823 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'druidWebStatFilterStarter               ' - org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter
+2020-01-11 21:31:40,824 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'druidWebStatServletStarter              ' - org.nutz.boot.starter.jdbc.DruidWebStatServletStarter
+2020-01-11 21:31:40,825 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'dataSourceStarter                       ' - org.nutz.boot.starter.jdbc.DataSourceStarter
+2020-01-11 21:31:40,826 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'jettyStarter                            ' - org.nutz.boot.starter.jetty.JettyStarter
+2020-01-11 21:31:40,845 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'nbServletContextListener                ' - org.nutz.boot.starter.servlet3.NbServletContextListener
+2020-01-11 21:31:40,846 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] -    > add 'ngrokClientStarter                      ' - org.nutz.boot.starter.ngrok.NgrokClientStarter
+2020-01-11 21:31:40,848 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-redis/2.3.9-SNAPSHOT/nutzboot-starter-redis-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,848 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-shiro/2.3.9-SNAPSHOT/nutzboot-starter-shiro-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,849 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-freemarker/2.3.9-SNAPSHOT/nutzboot-starter-freemarker-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,850 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-quartz/2.3.9-SNAPSHOT/nutzboot-starter-quartz-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,851 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-mvc/2.3.9-SNAPSHOT/nutzboot-starter-nutz-mvc-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,852 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-dao/2.3.9-SNAPSHOT/nutzboot-starter-nutz-dao-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,852 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-jdbc/2.3.9-SNAPSHOT/nutzboot-starter-jdbc-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,853 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-jetty/2.3.9-SNAPSHOT/nutzboot-starter-jetty-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,853 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-email/2.3.9-SNAPSHOT/nutzboot-starter-email-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,853 [DEBUG][org.nutz.boot.NbApp] - Found file:/Users/kouxian/git/nutzboot/nutzboot-starter/nutzboot-starter-freemarker/target/classes/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,856 [DEBUG][org.nutz.boot.NbApp] - Found jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-ngrok/2.3.9-SNAPSHOT/nutzboot-starter-ngrok-2.3.9-SNAPSHOT.jar!/META-INF/nutz/org.nutz.boot.starter.NbStarter
+2020-01-11 21:31:40,884 [INFO][org.nutz.boot.NbApp] - Configure Manual:
+|id  |key                                     |required  |Possible Values     |Default   |Description         |                                starters|
+|----|----------------------------------------|----------|--------------------|----------|--------------------|----------------------------------------|
+|0   |druid.web.filter.exclusions             |no        |                    |          |需要排除的路径             |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|1   |druid.web.filter.principalCookieName    |no        |                    |          |用户权限信息的cookie属性名称   |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|2   |druid.web.filter.principalSessionName   |no        |                    |          |用户权限信息的session属性名称  |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|3   |druid.web.filter.profileEnable          |no        |                    |          |是否开启性能监控            |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|4   |druid.web.filter.realIpHeader           |no        |                    |          |Header中ReadIp对应的key |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|5   |druid.web.filter.sessionStatEnable      |no        |                    |true      |是否开启session状态监控     |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|6   |druid.web.filter.sessionStatMaxCount    |no        |                    |          |session最大状态数量       |org.nutz.boot.starter.jdbc.DruidWebStatFilterStarter|
+|7   |druid.web.servlet.allow                 |no        |                    |          |允许访问的ip列表           |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|8   |druid.web.servlet.deny                  |no        |                    |          |禁止访问的ip列表           |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|9   |druid.web.servlet.jmxPassword           |no        |                    |          |JMX的密码              |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|10  |druid.web.servlet.jmxUrl                |no        |                    |          |读取JMX信息的URL         |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|11  |druid.web.servlet.jmxUsername           |no        |                    |          |JMX的用户名             |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|12  |druid.web.servlet.loginPassword         |no        |                    |随机值,打印在日志中|访问monitor页面的密码      |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|13  |druid.web.servlet.loginUsername         |no        |                    |driud     |访问monitor页面的用户名     |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|14  |druid.web.servlet.resetEnable           |no        |                    |true      |是否允许重置统计结果          |org.nutz.boot.starter.jdbc.DruidWebStatServletStarter|
+|15  |email.From                              |yes       |                    |          |email的写信人           |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|16  |email.HostName                          |yes       |                    |          |email的ip或域名地址       |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|17  |email.Password                          |yes       |                    |          |email的密码            |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|18  |email.SSLOnConnect                      |no        |                    |true      |email开启SSL连接        |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|19  |email.SmtpPort                          |yes       |                    |          |email的SmtpPort端口    |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|20  |email.UserName                          |yes       |                    |          |email的用户名           |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|21  |email.charset                           |no        |                    |UTF-8     |email的编码            |org.nutz.boot.starter.email.EmailIocLoaderStarter|
+|22  |freemarker.cache_time                   |no        |                    |-1000     |模版缓存时间              |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|23  |freemarker.prefix                       |no        |                    |template  |模版路径                |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|24  |freemarker.suffix                       |no        |                    |.html     |文件后缀                |org.nutz.boot.starter.freemarker.FreemarkerViewMaker|
+|25  |jdbc.password                           |no        |                    |          |数据库密码               |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|26  |jdbc.type                               |no        |druid,simple,hikari |druid     |连接池类型               |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|27  |jdbc.url                                |yes       |                    |          |JDBC URL            |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|28  |jdbc.username                           |no        |                    |          |数据库用户名              |org.nutz.boot.starter.jdbc.DataSourceStarter|
+|29  |jetty.contextPath                       |no        |                    |/         |上下文路径               |org.nutz.boot.starter.jetty.JettyStarter|
+|30  |jetty.gzip.enable                       |no        |                    |false     |是否启用gzip            |org.nutz.boot.starter.jetty.JettyStarter|
+|31  |jetty.gzip.level                        |no        |                    |-1        |gzip压缩级别            |org.nutz.boot.starter.jetty.JettyStarter|
+|32  |jetty.gzip.minContentSize               |no        |                    |512       |gzip压缩最小触发大小        |org.nutz.boot.starter.jetty.JettyStarter|
+|33  |jetty.host                              |no        |                    |0.0.0.0   |监听的ip地址             |org.nutz.boot.starter.jetty.JettyStarter|
+|34  |jetty.http.idleTimeout                  |no        |                    |300000    |空闲时间,单位毫秒           |org.nutz.boot.starter.jetty.JettyStarter|
+|35  |jetty.httpConfig.blockingTimeout        |no        |                    |-1        |阻塞超时                |org.nutz.boot.starter.jetty.JettyStarter|
+|36  |jetty.httpConfig.headerCacheSize        |no        |                    |8192      |头部缓冲区大小             |org.nutz.boot.starter.jetty.JettyStarter|
+|37  |jetty.httpConfig.maxErrorDispatches     |no        |                    |10        |最大错误重定向次数           |org.nutz.boot.starter.jetty.JettyStarter|
+|38  |jetty.httpConfig.outputAggregationSize  |no        |                    |8192      |输出聚合大小              |org.nutz.boot.starter.jetty.JettyStarter|
+|39  |jetty.httpConfig.outputBufferSize       |no        |                    |32768     |输出缓冲区大小             |org.nutz.boot.starter.jetty.JettyStarter|
+|40  |jetty.httpConfig.persistentConnectionsEnabled|no        |                    |true      |是否启用持久化连接           |org.nutz.boot.starter.jetty.JettyStarter|
+|41  |jetty.httpConfig.requestHeaderSize      |no        |                    |8192      |请求的头部最大值            |org.nutz.boot.starter.jetty.JettyStarter|
+|42  |jetty.httpConfig.responseHeaderSize     |no        |                    |8192      |响应的头部最大值            |org.nutz.boot.starter.jetty.JettyStarter|
+|43  |jetty.httpConfig.securePort             |no        |                    |          |安全协议的端口,例如8443      |org.nutz.boot.starter.jetty.JettyStarter|
+|44  |jetty.httpConfig.secureScheme           |no        |                    |          |安全协议,例如https        |org.nutz.boot.starter.jetty.JettyStarter|
+|45  |jetty.httpConfig.sendDateHeader         |no        |                    |true      |是否发送日期信息            |org.nutz.boot.starter.jetty.JettyStarter|
+|46  |jetty.httpConfig.sendServerVersion      |no        |                    |true      |是否发送jetty版本号        |org.nutz.boot.starter.jetty.JettyStarter|
+|47  |jetty.https.keystore.password           |no        |                    |          |Https的KeyStore的密码   |org.nutz.boot.starter.jetty.JettyStarter|
+|48  |jetty.https.keystore.path               |no        |                    |          |Https的KeyStore路径    |org.nutz.boot.starter.jetty.JettyStarter|
+|49  |jetty.https.port                        |no        |                    |          |Https端口号            |org.nutz.boot.starter.jetty.JettyStarter|
+|50  |jetty.maxFormContentSize                |no        |                    |1gb       |表单最大尺寸              |org.nutz.boot.starter.jetty.JettyStarter|
+|51  |jetty.maxFormKeys                       |no        |                    |1000      |表单最大key数量           |org.nutz.boot.starter.jetty.JettyStarter|
+|52  |jetty.page.404                          |no        |                    |          |自定义404页面,同理,其他状态码也是支持的|org.nutz.boot.starter.jetty.JettyStarter|
+|53  |jetty.page.java.lang.Throwable          |no        |                    |          |自定义java.lang.Throwable页面,同理,其他异常也支持|org.nutz.boot.starter.jetty.JettyStarter|
+|54  |jetty.port                              |no        |                    |8080      |监听的端口               |org.nutz.boot.starter.jetty.JettyStarter|
+|55  |jetty.session.file.storeDir             |no        |                    |./session |session持久化,file所用的目录|org.nutz.boot.starter.jetty.JettyStarter|
+|56  |jetty.session.ioc.datastore             |no        |                    |jettySessionDataStore|session持久化,SessionDataStore对应的ioc名称|org.nutz.boot.starter.jetty.JettyStarter|
+|57  |jetty.session.jdbc.datasource.iocname   |no        |                    |dataSource|session持久化,jdbc所用数据库源的ioc名称|org.nutz.boot.starter.jetty.JettyStarter|
+|58  |jetty.session.store.enable              |no        |                    |false     |是否启用session持久化      |org.nutz.boot.starter.jetty.JettyStarter|
+|59  |jetty.session.store.type                |no        |jdbc,file,ioc,redis |jdbc      |session持久化类型        |org.nutz.boot.starter.jetty.JettyStarter|
+|60  |jetty.staticPath                        |no        |                    |          |额外的静态文件路径           |org.nutz.boot.starter.jetty.JettyStarter|
+|61  |jetty.staticPathLocal                   |no        |                    |          |静态文件所在的本地路径         |org.nutz.boot.starter.jetty.JettyStarter|
+|62  |jetty.threadpool.idleTimeout            |no        |                    |60000     |线程池idleTimeout,单位毫秒 |org.nutz.boot.starter.jetty.JettyStarter|
+|63  |jetty.threadpool.maxThreads             |no        |                    |500       |线程池最大线程数maxThreads  |org.nutz.boot.starter.jetty.JettyStarter|
+|64  |jetty.threadpool.minThreads             |no        |                    |200       |线程池最小线程数minThreads  |org.nutz.boot.starter.jetty.JettyStarter|
+|65  |jetty.welcome_files                     |no        |                    |index.html,index.htm,index.do|WelcomeFile列表       |org.nutz.boot.starter.jetty.JettyStarter|
+|66  |ngrok.client.auth_token                 |no        |                    |4kg9lckq5og4ip02j736e3i7ku|秘钥                  |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|67  |ngrok.client.enable                     |no        |                    |true      |开关                  |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|68  |ngrok.client.hostname                   |no        |                    |          |期望的域名               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|69  |ngrok.client.srv_host                   |no        |                    |wendal.cn |服务器域名               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|70  |ngrok.client.srv_port                   |no        |                    |4443      |服务器端口               |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|71  |ngrok.client.to_port                    |no        |                    |8080      |目标端口                |org.nutz.boot.starter.ngrok.NgrokClientStarter|
+|72  |nutz.dao.interceptor.cache.cache4Null   |no        |                    |true      |是否缓存null结果          |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|73  |nutz.dao.interceptor.cache.debug        |no        |                    |false     |打印daocache详细调试日志    |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|74  |nutz.dao.interceptor.cache.enable       |no        |                    |false     |是否使用daocache        |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|75  |nutz.dao.interceptor.cache.enableWhenTrans|no        |                    |false     |事务内是否启用daocache     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|76  |nutz.dao.interceptor.cache.provider.ioc.name|no        |                    |daoCacheProvider|daocache提供者DaoCacheProvider的IocBean名称|org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|77  |nutz.dao.interceptor.cache.provider.memory.cacheSize|no        |                    |          |daocache提供者MemoryDaoCacheProvider的默认缓存大小|org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|78  |nutz.dao.interceptor.cache.provider.type|no        |memory,ehcache,jedis,ioc|memory    |daocache提供者         |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|79  |nutz.dao.interceptor.cache.table.names  |no        |                    |          |需要缓存的表名称,英文逗号分隔     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|80  |nutz.dao.interceptor.cache.table.pattern|no        |                    |          |需要缓存的表名称的正则表达式      |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|81  |nutz.dao.interceptor.log.enable         |no        |                    |true      |是否打印dao的SQL日志       |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|82  |nutz.dao.interceptor.time.enable        |no        |                    |false     |是否打印dao的SQL耗时日志     |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|83  |nutz.dao.sqls.path                      |no        |                    |sqls/     |sql目录               |org.nutz.boot.starter.nutz.dao.NutDaoStarter|
+|84  |nutz.mvc.exclusions                     |no        |                    |          |排除指定请求路径的正则表达式      |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|85  |nutz.mvc.ignore                         |no        |                    |          |过滤指定请求路径的正则表达式      |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|86  |nutz.mvc.whale.enc.input                |no        |                    |UTF-8     |在其他Filter之前设置input编码|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|87  |nutz.mvc.whale.enc.output               |no        |                    |UTF-8     |在其他Filter之前设置output编码|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|88  |nutz.mvc.whale.http.hidden_method_param |no        |                    |          |隐形http方法参数转换所对应的参数名 |org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|89  |nutz.mvc.whale.http.method_override     |no        |                    |false     |是否允许使用X-HTTP-Method-Override|org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|90  |nutz.mvc.whale.upload.enable            |no        |                    |false     |是否启用隐形Upload支持      |org.nutz.boot.starter.nutz.mvc.WhaleFilterStarter|
+|91  |redis.database                          |no        |                    |0         |redis数据库序号          |org.nutz.boot.starter.redis.JedisStarter|
+|92  |redis.host                              |no        |                    |127.0.0.1 |redis服务器ip或域名       |org.nutz.boot.starter.redis.JedisStarter|
+|93  |redis.max_redir                         |no        |                    |10        |redis集群最大重定向次数      |org.nutz.boot.starter.redis.JedisStarter|
+|94  |redis.nodes                             |no        |                    |          |redis集群节点列表         |org.nutz.boot.starter.redis.JedisStarter|
+|95  |redis.password                          |no        |                    |          |redis密码             |org.nutz.boot.starter.redis.JedisStarter|
+|96  |redis.port                              |no        |                    |6379      |redis服务器端口          |org.nutz.boot.starter.redis.JedisStarter|
+|97  |redis.soTimeout                         |no        |                    |0         |redis写超时            |org.nutz.boot.starter.redis.JedisStarter|
+|98  |redis.timeout                           |no        |                    |2000      |redis读写超时           |org.nutz.boot.starter.redis.JedisStarter|
+|99  |shiro.ini.path                          |no        |                    |          |shiro.ini的路径,如果shiro.ini存在,就会使用它,否则走NB的内部逻辑|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|100 |shiro.ini.urls                          |no        |                    |          |urls过滤清单            |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|101 |shiro.realm.cache.enable                |no        |                    |          |realm是否缓存           |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|102 |shiro.session.cache.redis.debug         |no        |                    |false     |session持久化时redis的debug模式|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|103 |shiro.session.cache.redis.mode          |no        |                    |kv        |设置redis缓存的模式        |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|104 |shiro.session.cache.redis.ttl           |no        |                    |-1        |redis缓存的过期时间        |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|105 |shiro.session.cache.type                |no        |                    |memory    |设置使用的缓存类型           |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|106 |shiro.session.cookie.httpOnly           |no        |                    |true      |Cookie是否只读          |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|107 |shiro.session.cookie.maxAge             |no        |                    |946080000 |Cookie的过期时间,单位:毫秒   |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|108 |shiro.session.cookie.name               |no        |                    |sid       |Cookie的name         |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|109 |shiro.session.dao.iocName               |no        |                    |shiroSessionDao|SessionDao的ioc名称,设置并声明该IocBean,就能覆盖默认的SessionDao实现|org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|110 |shiro.session.enable                    |no        |                    |true      |是否启用Shiro的Session管理 |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|111 |shiro.session.manager.globalSessionTimeout|no        |                    |1800000   |全局session过期时间       |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|112 |shiro.session.manager.sessionValidationInterval|no        |                    |3600000   |定期检查session过期的周期    |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|113 |shiro.session.manager.sessionValidationSchedulerEnabled|no        |                    |true      |是否定期检查session过期     |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|114 |shiro.url.login                         |no        |                    |/user/login|默认登录路径              |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|115 |shiro.url.logout_redirect               |no        |                    |/         |退出登录后的重定向路径         |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|116 |shiro.url.unauth                        |no        |                    |/user/login|访问未授权页面后的重定向路径      |org.nutz.boot.starter.shiro.ShiroEnvStarter|
+|117 |web.filter.order.nutz                   |no        |                    |          |指定NutFilter执行顺序     |org.nutz.boot.starter.nutz.mvc.NutFilterStarter|
+|118 |web.session.timeout                     |no        |                    |30        |Session空闲时间,单位分钟    |org.nutz.boot.starter.jetty.JettyStarter|
+2020-01-11 21:31:40,893 [INFO][org.nutz.ioc.impl.NutIoc] - ... NutIoc init complete
+2020-01-11 21:31:40,964 [INFO][org.quartz.impl.StdSchedulerFactory] - Using default implementation for ThreadExecutor
+2020-01-11 21:31:40,978 [INFO][org.quartz.core.SchedulerSignalerImpl] - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
+2020-01-11 21:31:40,978 [INFO][org.quartz.core.QuartzScheduler] - Quartz Scheduler v.2.3.0 created.
+2020-01-11 21:31:40,979 [INFO][org.quartz.simpl.RAMJobStore] - RAMJobStore initialized.
+2020-01-11 21:31:40,981 [INFO][org.quartz.core.QuartzScheduler] - Scheduler meta-data: Quartz Scheduler (v2.3.0) 'NutzbootScheduler' with instanceId 'NON_CLUSTERED'
+  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
+  NOT STARTED.
+  Currently in standby mode.
+  Number of jobs executed: 0
+  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 8 threads.
+  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
+
+2020-01-11 21:31:40,981 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'NutzbootScheduler' initialized from an externally provided properties instance.
+2020-01-11 21:31:40,981 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 2.3.0
+2020-01-11 21:31:40,982 [INFO][org.quartz.core.QuartzScheduler] - JobFactory set to: org.nutz.integration.quartz.NutQuartzJobFactory@6150c3ec
+2020-01-11 21:31:41,502 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add Servlet name=druid pathSpec=/druid/*
+2020-01-11 21:31:41,504 [INFO][org.nutz.boot.starter.jdbc.DruidWebStatServletStarter] - druid stat view random user=druid password=67ngs9jkmsgcnqaqpg03d5n2m5
+2020-01-11 21:31:41,508 [INFO][org.apache.shiro.web.env.EnvironmentLoader] - Starting Shiro environment initialization.
+2020-01-11 21:31:41,798 [DEBUG][org.nutz.boot.starter.shiro.ShiroEnvStarter] - using default SessionDAO = EnterpriseCacheSessionDAO
+2020-01-11 21:31:41,811 [DEBUG][org.nutz.boot.starter.shiro.ShiroEnvStarter] - using session cache = redis
+2020-01-11 21:31:41,846 [WARN][net.sf.ehcache.config.CacheConfiguration] - Statistics can no longer be enabled via configuration.
+2020-01-11 21:31:42,012 [INFO][org.nutz.plugins.cache.impl.lcache.LCacheManager] - JedisAgent is Ready ...
+2020-01-11 21:31:42,012 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCacheManager] - psubscribe LCache:*
+2020-01-11 21:31:42,186 [DEBUG][org.nutz.dao.jdbc.Jdbcs] - Jdbcs init complete
+2020-01-11 21:31:42,187 [INFO][org.nutz.dao.jdbc.Jdbcs] - Get Connection from DataSource for JdbcExpert, if you lock at here, check your database server and configure
+2020-01-11 21:31:42,276 [INFO][com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} inited
+2020-01-11 21:31:42,481 [DEBUG][org.nutz.dao.impl.DaoSupport] - select expert : org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert
+2020-01-11 21:31:42,487 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC Driver --> mysql-connector-java-8.0.18 (Revision: fef2894d751d47223192b706977b4a5bc41e6be4)
+2020-01-11 21:31:42,487 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC Name   --> MySQL Connector/J
+2020-01-11 21:31:42,487 [DEBUG][org.nutz.dao.impl.DaoSupport] - JDBC URL    --> jdbc:mysql://127.0.0.1:3306/rk_admin?characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+2020-01-11 21:31:42,636 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_client=utf8mb4
+2020-01-11 21:31:42,637 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_connection=utf8mb4
+2020-01-11 21:31:42,638 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_database=utf8
+2020-01-11 21:31:42,638 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_filesystem=binary
+2020-01-11 21:31:42,638 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_results=
+2020-01-11 21:31:42,638 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_server=utf8mb4
+2020-01-11 21:31:42,638 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_set_system=utf8
+2020-01-11 21:31:42,638 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : character_sets_dir=/usr/share/mysql-8.0/charsets/
+2020-01-11 21:31:42,645 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : binlog_format=ROW
+2020-01-11 21:31:42,647 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : database=rk_admin
+2020-01-11 21:31:42,650 [DEBUG][org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert] - Mysql : user=root@172.17.0.1
+2020-01-11 21:31:42,687 [DEBUG][org.nutz.dao.impl.DaoSupport] - Database info --> MYSQL:[MySQL - 8.0.18]
+2020-01-11 21:31:42,693 [DEBUG][org.nutz.dao.impl.DaoSupport] - SqlManager Sql count=0
+2020-01-11 21:31:42,809 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.User
+2020-01-11 21:31:42,816 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Role
+2020-01-11 21:31:42,819 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Cache with name 'com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache' does not yet exist.  Creating now.
+2020-01-11 21:31:42,839 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Added EhCache named [com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache]
+2020-01-11 21:31:42,851 [DEBUG][org.nutz.boot.starter.shiro.NbResourceBasedWebEnvironment] - ioc name=shiroFilterChainResolver not found, fallback to shiro.ini.urls
+2020-01-11 21:31:42,853 [DEBUG][org.nutz.boot.starter.shiro.NbResourceBasedWebEnvironment] - shiro ini urls  ---> 
+[urls]
+
+2020-01-11 21:31:42,883 [INFO][org.apache.shiro.web.env.EnvironmentLoader] - Shiro environment initialized in 1375 ms.
+2020-01-11 21:31:42,887 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=whale pathSpec=/*
+2020-01-11 21:31:42,891 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=druid pathSpec=/*
+2020-01-11 21:31:42,893 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=shiro pathSpec=/*
+2020-01-11 21:31:42,897 [DEBUG][org.nutz.boot.starter.servlet3.NbServletContextListener] - add filter name=nutz pathSpec=/*
+2020-01-11 21:31:42,904 [INFO][org.nutz.mvc.NutFilter] - NutFilter[nutz] starting ...
+2020-01-11 21:31:42,906 [INFO][org.nutz.resource.impl.ErrorResourceLocation] - [loc=/Users/kouxian/git/rk_svnadmin/target/classes/static/WEB-INF/classes]not exist
+2020-01-11 21:31:42,909 [DEBUG][org.nutz.mvc.config.AbstractNutConfig] - Loading by class org.nutz.boot.starter.nutz.mvc.NbMvcLoading
+2020-01-11 21:31:42,913 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz Version : 1.r.68-SNAPSHOT 
+2020-01-11 21:31:42,914 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is initializing ...
+2020-01-11 21:31:42,914 [DEBUG][org.nutz.mvc.impl.NutLoading] - Web Container Information:
+2020-01-11 21:31:42,914 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Default Charset : UTF-8
+2020-01-11 21:31:42,914 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Current . path  : /Users/kouxian/git/rk_svnadmin/.
+2020-01-11 21:31:42,915 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Java Version    : 1.8.0_144
+2020-01-11 21:31:42,915 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - File separator  : /
+2020-01-11 21:31:42,915 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Timezone        : Asia/Shanghai
+2020-01-11 21:31:42,915 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - OS              : Mac OS X x86_64
+2020-01-11 21:31:42,915 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - ServerInfo      : jetty/9.4.22.v20191022
+2020-01-11 21:31:42,916 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - Servlet API     : 3.1
+2020-01-11 21:31:42,916 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - ContextPath     : 
+2020-01-11 21:31:42,917 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - context.tempdir : /Users/kouxian/git/rk_svnadmin/temp
+2020-01-11 21:31:42,917 [DEBUG][org.nutz.mvc.impl.NutLoading] -  - MainModule      : com.rekoe.CloudLauncher
+2020-01-11 21:31:42,918 [DEBUG][org.nutz.mvc.impl.NutLoading] - >> app.root = /Users/kouxian/git/rk_svnadmin/target/classes/static
+2020-01-11 21:31:42,925 [INFO][org.nutz.mvc.impl.NutLoading] - Build URL mapping by org.nutz.mvc.impl.UrlMappingImpl ...
+2020-01-11 21:31:42,926 [DEBUG][org.nutz.mvc.impl.NutLoading] - add ViewMaker from Ioc by name=$views_freekmarker
+2020-01-11 21:31:42,927 [DEBUG][org.nutz.mvc.impl.NutLoading] - @Views(FreemarkerViewMaker.class,DefaultViewMaker.class)
+2020-01-11 21:31:42,933 [DEBUG][org.nutz.mvc.impl.NutLoading] - @ChainBy(org.nutz.mvc.impl.NutActionChainMaker)
+2020-01-11 21:31:42,938 [DEBUG][org.nutz.mvc.impl.Loadings] - module class location 'file:/Users/kouxian/git/rk_svnadmin/target/classes/'
+2020-01-11 21:31:42,939 [DEBUG][org.nutz.mvc.impl.Loadings] -  > scan 'com.rekoe'
+2020-01-11 21:31:42,959 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.PermissionAct'
+2020-01-11 21:31:42,960 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminUserAct'
+2020-01-11 21:31:42,961 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.FrameAct'
+2020-01-11 21:31:42,961 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminSvnUserAct'
+2020-01-11 21:31:42,961 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectAct'
+2020-01-11 21:31:42,962 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminCommonAct'
+2020-01-11 21:31:42,962 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminRoleAct'
+2020-01-11 21:31:42,962 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.PermissionCategoryAct'
+2020-01-11 21:31:42,963 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.WelcomeAct'
+2020-01-11 21:31:42,964 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectGroupUsrAct'
+2020-01-11 21:31:42,964 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminLoginAct'
+2020-01-11 21:31:42,964 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.admin.AdminProjectGroupAct'
+2020-01-11 21:31:42,964 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.IndexAct'
+2020-01-11 21:31:42,964 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.IpSearchAction'
+2020-01-11 21:31:42,965 [DEBUG][org.nutz.mvc.impl.Loadings] -    >> add 'com.rekoe.module.OauthLoginAct'
+2020-01-11 21:31:43,048 [DEBUG][org.nutz.mvc.impl.NutLoading] - Use org.nutz.mvc.impl.NutEntryDeterminer as EntryMethodDeterminer
+2020-01-11 21:31:43,073 [INFO][org.nutz.mvc.impl.NutActionChainMaker] - Optional processor class not found, disabled : org.nutz.plugins.validation.ValidationProcessor
+2020-01-11 21:31:43,150 [INFO][org.nutz.boot.starter.freemarker.FreeMarkerConfigurer] - using Directory for TemplateLoading : /Users/kouxian/git/rk_svnadmin/src/main/resources/
+2020-01-11 21:31:43,159 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/main'    >> (FrameAct.java:15).userMain           : void       | @Ok(fm:template.admin.user.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,165 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/left'    >> (FrameAct.java:21).userLeft           : void       | @Ok(fm:template.admin.user.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,166 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/user/right'   >> (FrameAct.java:26).userRight          : void       | @Ok(fm:template.admin.user.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,166 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/main' >> (FrameAct.java:34).accountPwdMain     : void       | @Ok(fm:template.admin.account.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,167 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/left' >> (FrameAct.java:39).accountPwdLeft     : void       | @Ok(fm:template.admin.account.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,167 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/account/right' >> (FrameAct.java:44).gamePwdRight       : void       | @Ok(fm:template.admin.account.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,167 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/main' >> (FrameAct.java:52).svn_user_main      : void       | @Ok(fm:template.admin.svn_user.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,168 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/left' >> (FrameAct.java:57).svn_user_left      : void       | @Ok(fm:template.admin.svn_user.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,169 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/svn/user/right' >> (FrameAct.java:62).svn_user_right     : void       | @Ok(fm:template.admin.svn_user.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,170 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/main' >> (FrameAct.java:70).project_main       : void       | @Ok(fm:template.admin.project.frame.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,171 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/left' >> (FrameAct.java:75).project_left       : void       | @Ok(fm:template.admin.project.frame.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,172 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/frame/project/right' >> (FrameAct.java:80).project_right      : void       | @Ok(fm:template.admin.project.frame.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,176 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/add'           >> (AdminRoleAct.java:84).add            : List       | @Ok(fm:template.admin.user.role.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,180 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/update'        >> (AdminRoleAct.java:66).update         : void       | @Ok(>>:/admin/role/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,182 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/delete'        >> (AdminRoleAct.java:107).delete        : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,182 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/list'          >> (AdminRoleAct.java:49).list           : Object     | @Ok(fm:template.admin.user.role.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,191 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/save'          >> (AdminRoleAct.java:91).save           : boolean    | @Ok(>>:${obj==true?'/role/list.rk':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,191 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/role/edit'          >> (AdminRoleAct.java:56).edit           : Object     | @Ok(fm:template.admin.user.role.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,194 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/index_main'         >> (WelcomeAct.java:18).index            : void       | @Ok(fm:template.admin.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,196 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/main'               >> (WelcomeAct.java:30).main             : void       | @Ok(fm:template.admin.index) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,198 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/left'               >> (WelcomeAct.java:35).left             : void       | @Ok(fm:template.admin.left) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,198 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/right'              >> (WelcomeAct.java:40).right            : void       | @Ok(fm:template.admin.right) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,199 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/top'                >> (WelcomeAct.java:24).top              : boolean    | @Ok(fm:template.admin.top) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,201 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/login/?'             >> (OauthLoginAct.java:47).login         : void       | @Ok(void ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,201 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/logout'              >> (OauthLoginAct.java:69).logout        : void       | @Ok(>>:/admin/index.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,202 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/authonly'            >> (OauthLoginAct.java:40).authOnly      : Object     | @Ok(null ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,203 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/add' >> (PermissionCategoryAct.java:58).add   : void       | @Ok(fm:template.admin.user.permission_category.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,206 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/update' >> (PermissionCategoryAct.java:50).update : boolean    | @Ok(>>:/admin/permission/category/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,207 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/delete' >> (PermissionCategoryAct.java:73).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,207 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/list' >> (PermissionCategoryAct.java:36).list  : Pagination | @Ok(fm:template.admin.user.permission_category.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,208 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/save' >> (PermissionCategoryAct.java:64).save  : void       | @Ok(>>:/admin/permission/category/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,208 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/category/edit' >> (PermissionCategoryAct.java:43).edit  : PermissionCategory | @Ok(fm:template.admin.user.permission_category.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,210 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/add'  >> (AdminProjectGroupAct.java:40).add    : String     | @Ok(fm:template.admin.project_group.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,211 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/delete' >> (AdminProjectGroupAct.java:59).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,212 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/list' >> (AdminProjectGroupAct.java:32).list   : Pagination | @Ok(fm:template.admin.project_group.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,213 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/o_save' >> (AdminProjectGroupAct.java:47).o_save : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,214 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/add'        >> (AdminProjectAct.java:55).add         : void       | @Ok(fm:template.admin.project.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,215 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/init'       >> (AdminProjectAct.java:120).init       : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,215 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/delete'     >> (AdminProjectAct.java:182).delete     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,217 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/list'       >> (AdminProjectAct.java:48).list        : Pagination | @Ok(fm:template.admin.project.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,217 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/conf'       >> (AdminProjectAct.java:208).conf       : ProjectConfig | @Ok(fm:template.admin.project.config) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,218 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/o_save'     >> (AdminProjectAct.java:68).o_save      : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,218 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/o_update'   >> (AdminProjectAct.java:223).o_update   : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,219 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/rep'        >> (AdminProjectAct.java:83).rep         : String     | @Ok(fm:template.admin.project.rep) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,219 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth'     >> (AdminProjectAct.java:135).pjauth     : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,221 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/ajaxtreeservice' >> (AdminProjectAct.java:169).ajaxTreeService : String     | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,223 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth_delete' >> (AdminProjectAct.java:261).pjauth_delete : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,227 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth/delete' >> (AdminProjectAct.java:193).pjauth_delete : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,234 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/conf/update' >> (AdminProjectAct.java:215).conf_update : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,234 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/pjauth/save' >> (AdminProjectAct.java:231).pjauth_save : String     | @Ok(fm:template.admin.project.pjauth) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,235 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/file_add'   >> (AdminProjectAct.java:243).file_add   : String     | @Ok(fm:template.admin.project.add_dir) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,237 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/file_save'  >> (AdminProjectAct.java:253).file_save  : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,239 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/edit'       >> (AdminProjectAct.java:61).edit        : Pj         | @Ok(fm:template.admin.project.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,243 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/add' >> (AdminProjectGroupUsrAct.java:67).add : String     | @Ok(fm:template.admin.project_group_usr.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,246 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/delete' >> (AdminProjectGroupUsrAct.java:99).delete : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,248 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/list' >> (AdminProjectGroupUsrAct.java:55).list : Pagination | @Ok(fm:template.admin.project_group_usr.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,250 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/o_save' >> (AdminProjectGroupUsrAct.java:77).o_save : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,252 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/all_email' >> (AdminProjectGroupUsrAct.java:117).all_email : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,254 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/project/group/usr/email' >> (AdminProjectGroupUsrAct.java:128).email : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,300 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/add'       >> (AdminSvnUserAct.java:86).add         : void       | @Ok(fm:template.admin.svn_user.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,304 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/lock'      >> (AdminSvnUserAct.java:217).lock       : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,307 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/list'      >> (AdminSvnUserAct.java:64).list        : Pagination | @Ok(fm:template.admin.svn_user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,307 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/lock_list' >> (AdminSvnUserAct.java:75).lock_list   : Pagination | @Ok(fm:template.admin.svn_user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,333 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/o_save'    >> (AdminSvnUserAct.java:101).o_save     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,335 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/o_update'  >> (AdminSvnUserAct.java:136).o_update   : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,337 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/restpwd'   >> (AdminSvnUserAct.java:184).restpwd    : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,339 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/edit'      >> (AdminSvnUserAct.java:93).edit        : Usr        | @Ok(fm:template.admin.svn_user.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,341 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/svn/user/unlock'    >> (AdminSvnUserAct.java:248).unlock     : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,345 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/add'     >> (PermissionAct.java:67).add           : List       | @Ok(fm:template.admin.user.permission.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,348 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/update'  >> (PermissionAct.java:87).update        : boolean    | @Ok(>>:/admin/permission/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,350 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/delete'  >> (PermissionAct.java:75).delete        : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,351 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/list'    >> (PermissionAct.java:44).list          : Pagination | @Ok(fm:template.admin.user.permission.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,362 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/save'    >> (PermissionAct.java:98).save          : void       | @Ok(>>:/admin/permission/list.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,364 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/list_category/?' >> (PermissionAct.java:51).listCategory  : Pagination | @Ok(fm:template.admin.user.permission.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,367 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/permission/edit'    >> (PermissionAct.java:58).edit          : List       | @Ok(fm:template.admin.user.permission.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,370 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/register'           >> (AdminLoginAct.java:94).register      : Object     | @Ok(fm:template.front.account.create_user) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,390 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/login'              >> (AdminLoginAct.java:56).login         : View       | @Ok(null ) @Fail(>>:/admin/common/unauthorized.rk) | by 1 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,391 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/logout'             >> (AdminLoginAct.java:88).logout        : void       | @Ok(>>:/user/login.rk) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,394 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/forbit'      >> (AdminCommonAct.java:32).forbit       : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,394 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/unauthorized' >> (AdminCommonAct.java:26).unauthorized : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,395 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/common/success'     >> (AdminCommonAct.java:38).success      : Message    | @Ok(fm:template.admin.common.error) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,397 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/api/ip/search'            >> (IpSearchAction.java:20).search       : String     | @Ok(raw:json) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,399 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/main'          >> (AdminUserAct.java:59).main           : void       | @Ok(fm:template.admin.common.main) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,401 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/add'           >> (AdminUserAct.java:72).add            : List       | @Ok(fm:template.admin.user.add) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,402 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/lock'          >> (AdminUserAct.java:143).lock          : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,404 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/update'        >> (AdminUserAct.java:129).update        : Object     | @Ok(>>:/admin/user/list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,472 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/check/username' >> (AdminUserAct.java:93).checkName      : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,485 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/delete'        >> (AdminUserAct.java:79).delete         : Message    | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,487 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/list'          >> (AdminUserAct.java:65).list           : Pagination | @Ok(fm:template.admin.user.list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,489 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/save'          >> (AdminUserAct.java:87).save           : boolean    | @Ok(>>:${obj==true?'/admin/user/list.rk':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,491 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/edit'          >> (AdminUserAct.java:107).edit          : User       | @Ok(fm:template.admin.user.edit) @Fail(json ) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,494 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/check_email'   >> (AdminUserAct.java:99).checkEmail     : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,496 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/check_current_password' >> (AdminUserAct.java:160).checkCurrentPassword : boolean    | @Ok(raw  ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,497 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/edit'  >> (AdminUserAct.java:175).profileEdit   : Subject    | @Ok(fm:template.admin.profile.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,497 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/add_user'      >> (AdminUserAct.java:185).add_user      : void       | @Ok(fm:template.admin.user.add_user) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,498 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/save_user'     >> (AdminUserAct.java:191).save_user     : Object     | @Ok(>>:/admin/user/list) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,501 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/update' >> (AdminUserAct.java:203).profileUpdate : boolean    | @Ok(fm:template.admin.profile.edit) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,502 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/profile/re_update' >> (AdminUserAct.java:215).regUpate      : boolean    | @Ok(>>:${obj?'/admin/main':'/admin/common/unauthorized.rk'}) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,503 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/change_pwd'    >> (AdminUserAct.java:236).change_pwd    : void       | @Ok(fm:template.admin.account.change_pwd) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,504 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/admin/user/pwd_updata'    >> (AdminUserAct.java:242).pwd_updata    : Object     | @Ok(json ) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,504 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] -    '/user/login'               >> (IndexAct.java:20).login              : void       | @Ok(fm:template.login.login) @Fail(>>:/admin/common/unauthorized.rk) | by 0 Filters | (I:UTF-8/O:UTF-8)
+2020-01-11 21:31:43,504 [INFO][org.nutz.mvc.impl.NutLoading] - Found 101 module methods
+2020-01-11 21:31:43,505 [DEBUG][org.nutz.mvc.impl.NutLoading] - Localization: org.nutz.mvc.impl.NutMessageLoader('msg/')  dft<zh-CN>
+2020-01-11 21:31:43,511 [DEBUG][org.nutz.mvc.impl.NutMessageLoader] - Load Messages in 2 resource : [[jar:file:/Users/kouxian/.m2/repository/org/nutz/nutzboot-starter-nutz-mvc/2.3.9-SNAPSHOT/nutzboot-starter-nutz-mvc-2.3.9-SNAPSHOT.jar!/msg/emtry.properties, File[/Users/kouxian/git/rk_svnadmin/target/classes/msg/zh-CN/MessageResources.properties]]]
+2020-01-11 21:31:43,516 [DEBUG][org.nutz.mvc.impl.NutMessageLoader] - Message Loaded, size = 2
+2020-01-11 21:31:43,517 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is up in 600ms
+2020-01-11 21:31:43,518 [INFO][org.nutz.mvc.NutFilter] - exclusionsPrefix  = ^(/druid/)
+2020-01-11 21:31:43,564 [DEBUG][org.nutz.boot.starter.jetty.JettyStarter] - Jetty monitor props:
+----------------------------------------------
+http.port                                : 8084
+http.host                                : 0.0.0.0
+http.idleTimeout                         : 300000
+https.enable                             : false
+welcome_files                            : index.html,index.htm,index.do
+maxFormContentSize                       : 1073741824
+----------------------------------------------
+2020-01-11 21:31:43,617 [INFO][org.nutz.boot.starter.quartz.QuartzStarter] - Starting Quartz Scheduler now
+2020-01-11 21:31:43,619 [INFO][org.quartz.core.QuartzScheduler] - Scheduler NutzbootScheduler_$_NON_CLUSTERED started.
+2020-01-11 21:31:43,649 [DEBUG][org.nutz.integration.quartz.NutQuartzCronJobFactory] - found cron job packages = com.rekoe
+2020-01-11 21:31:43,679 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.ProjectConfig
+2020-01-11 21:31:43,960 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT COUNT(*) FROM system_user 
+2020-01-11 21:31:43,965 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=5ms, sql=SELECT COUNT(*) FROM system_user 
+2020-01-11 21:31:43,985 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM permission_category 
+2020-01-11 21:31:43,993 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=8ms, sql=SELECT * FROM permission_category 
+2020-01-11 21:31:43,996 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM system_permission 
+2020-01-11 21:31:44,006 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=8ms, sql=SELECT * FROM system_permission 
+2020-01-11 21:31:44,017 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM permission_category  WHERE  1 != 1 
+2020-01-11 21:31:44,020 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM permission_category  WHERE  1 != 1 
+2020-01-11 21:31:44,022 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:31:44,031 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=8ms, sql=SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:31:44,038 [INFO][org.nutz.boot.NbApp] - NB started : 3993ms
+2020-01-11 21:31:51,853 [INFO][org.apache.shiro.session.mgt.AbstractValidatingSessionManager] - Enabling session validation scheduler...
+2020-01-11 21:31:51,855 [INFO][org.apache.shiro.cache.ehcache.EhCacheManager] - Using existing EHCache named [shiro-activeSessionCache]
+2020-01-11 21:31:51,917 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:31:51,921 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:31:51,923 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:31:51,927 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:31:51,930 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/main : FrameAct.project_main(FrameAct.java:70)
+2020-01-11 21:31:51,933 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:31:51,939 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:31:51,939 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:31:52,568 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:31:52,621 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:31:52,667 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:31:52,743 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:31:54,190 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/main : FrameAct.project_main(FrameAct.java:70)
+2020-01-11 21:31:54,348 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/left : FrameAct.project_left(FrameAct.java:75)
+2020-01-11 21:31:54,348 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/right : FrameAct.project_right(FrameAct.java:80)
+2020-01-11 21:31:55,973 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:31:56,004 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Pj
+2020-01-11 21:31:56,009 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.PjGr
+2020-01-11 21:31:56,020 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.PjUsr
+2020-01-11 21:31:56,028 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.PjAuth
+2020-01-11 21:31:56,047 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.PjGrUsr
+2020-01-11 21:31:56,053 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Usr
+2020-01-11 21:31:56,130 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache msg=sm98dabljihh3rpkujgsuc21sh:com.rekoe.domain.User@55bae254
+2020-01-11 21:31:56,132 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache, msg=sm98dabljihh3rpkujgsuc21sh:com.rekoe.domain.User@55bae254
+2020-01-11 21:31:56,135 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  LIMIT 0, 20 
+2020-01-11 21:31:56,139 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=4ms, sql=SELECT * FROM pj  LIMIT 0, 20 
+2020-01-11 21:31:56,148 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT COUNT(*) FROM pj 
+2020-01-11 21:31:56,150 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=2ms, sql=SELECT COUNT(*) FROM pj 
+2020-01-11 21:31:57,816 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:32:00,604 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/conf : AdminProjectAct.conf(AdminProjectAct.java:208)
+2020-01-11 21:32:01,635 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:32:02,918 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/svn/user/main : FrameAct.svn_user_main(FrameAct.java:52)
+2020-01-11 21:32:03,056 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/svn/user/right : FrameAct.svn_user_right(FrameAct.java:62)
+2020-01-11 21:32:03,057 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/svn/user/left : FrameAct.svn_user_left(FrameAct.java:57)
+2020-01-11 21:32:04,166 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/svn/user/list : AdminSvnUserAct.list(AdminSvnUserAct.java:64)
+2020-01-11 21:32:04,189 [DEBUG][org.nutz.service.EntityService] - Get TypeParams for self : com.rekoe.domain.Usr
+2020-01-11 21:32:07,858 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/main : FrameAct.project_main(FrameAct.java:70)
+2020-01-11 21:32:07,946 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/left : FrameAct.project_left(FrameAct.java:75)
+2020-01-11 21:32:07,963 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/right : FrameAct.project_right(FrameAct.java:80)
+2020-01-11 21:32:09,145 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:32:11,395 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/add : AdminProjectAct.add(AdminProjectAct.java:55)
+2020-01-11 21:32:22,212 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [POST] path=/admin/project/o_save : AdminProjectAct.o_save(AdminProjectAct.java:68)
+2020-01-11 21:32:22,229 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  WHERE pj=? LIMIT 0, 1 
+    |    1 |
+    |------|
+    | pop2 |
+  For example:> "SELECT * FROM pj  WHERE pj='pop2' LIMIT 0, 1 "
+2020-01-11 21:32:22,233 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=4ms, sql=SELECT * FROM pj  WHERE pj='pop2' LIMIT 0, 1 
+2020-01-11 21:32:22,241 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  WHERE pj=? LIMIT 0, 1 
+    |    1 |
+    |------|
+    | pop2 |
+  For example:> "SELECT * FROM pj  WHERE pj='pop2' LIMIT 0, 1 "
+2020-01-11 21:32:22,244 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM pj  WHERE pj='pop2' LIMIT 0, 1 
+2020-01-11 21:32:22,244 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:32:22,247 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:32:24,062 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj(pj,des,type,is_init_templ) VALUES(?,?,?,?) 
+    |    1 |    2 |          3 |     4 |
+    |------|------|------------|-------|
+    | pop2 | pop2 | http-mutil | false |
+  For example:> "INSERT INTO pj(pj,des,type,is_init_templ) VALUES('pop2','pop2','http-mutil',false) "
+2020-01-11 21:32:24,110 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=47ms, sql=INSERT INTO pj(pj,des,type,is_init_templ) VALUES('pop2','pop2','http-mutil',false) 
+2020-01-11 21:32:24,114 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj_gr  WHERE pj=? AND gr=? LIMIT 0, 1 
+    |    1 |       2 |
+    |------|---------|
+    | pop2 | manager |
+  For example:> "SELECT * FROM pj_gr  WHERE pj='pop2' AND gr='manager' LIMIT 0, 1 "
+2020-01-11 21:32:24,118 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM pj_gr  WHERE pj='pop2' AND gr='manager' LIMIT 0, 1 
+2020-01-11 21:32:24,128 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj_gr(pj,gr,des) VALUES(?,?,?) 
+    |    1 |       2 |       3 |
+    |------|---------|---------|
+    | pop2 | manager | manager |
+  For example:> "INSERT INTO pj_gr(pj,gr,des) VALUES('pop2','manager','manager') "
+2020-01-11 21:32:24,133 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=4ms, sql=INSERT INTO pj_gr(pj,gr,des) VALUES('pop2','manager','manager') 
+2020-01-11 21:32:24,135 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj_gr  WHERE pj=? AND gr=? LIMIT 0, 1 
+    |    1 |         2 |
+    |------|-----------|
+    | pop2 | developer |
+  For example:> "SELECT * FROM pj_gr  WHERE pj='pop2' AND gr='developer' LIMIT 0, 1 "
+2020-01-11 21:32:24,139 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=2ms, sql=SELECT * FROM pj_gr  WHERE pj='pop2' AND gr='developer' LIMIT 0, 1 
+2020-01-11 21:32:24,140 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj_gr(pj,gr,des) VALUES(?,?,?) 
+    |    1 |         2 |         3 |
+    |------|-----------|-----------|
+    | pop2 | developer | developer |
+  For example:> "INSERT INTO pj_gr(pj,gr,des) VALUES('pop2','developer','developer') "
+2020-01-11 21:32:24,145 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=5ms, sql=INSERT INTO pj_gr(pj,gr,des) VALUES('pop2','developer','developer') 
+2020-01-11 21:32:24,148 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj_gr  WHERE pj=? AND gr=? LIMIT 0, 1 
+    |    1 |      2 |
+    |------|--------|
+    | pop2 | tester |
+  For example:> "SELECT * FROM pj_gr  WHERE pj='pop2' AND gr='tester' LIMIT 0, 1 "
+2020-01-11 21:32:24,151 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=2ms, sql=SELECT * FROM pj_gr  WHERE pj='pop2' AND gr='tester' LIMIT 0, 1 
+2020-01-11 21:32:24,153 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - INSERT INTO pj_gr(pj,gr,des) VALUES(?,?,?) 
+    |    1 |      2 |      3 |
+    |------|--------|--------|
+    | pop2 | tester | tester |
+  For example:> "INSERT INTO pj_gr(pj,gr,des) VALUES('pop2','tester','tester') "
+2020-01-11 21:32:24,157 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=INSERT INTO pj_gr(pj,gr,des) VALUES('pop2','tester','tester') 
+2020-01-11 21:32:24,236 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - select a.pj,a.res,a.rw,b.usr,b.name as usrname,' ' gr from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj =? and a.usr=? and a.res=?
+    |    1 |     2 |        3 |
+    |------|-------|----------|
+    | pop2 | admin | [pop2:/] |
+  For example:> "select a.pj,a.res,a.rw,b.usr,b.name as usrname,' ' gr from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj ='pop2' and a.usr='admin' and a.res='[pop2:/]'"
+2020-01-11 21:32:24,243 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=7ms, sql=select a.pj,a.res,a.rw,b.usr,b.name as usrname,' ' gr from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj ='pop2' and a.usr='admin' and a.res='[pop2:/]'
+2020-01-11 21:32:24,243 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - insert into pj_usr_auth (pj,usr,res,rw) values (?,?,?,?)
+    |    1 |     2 |        3 |  4 |
+    |------|-------|----------|----|
+    | pop2 | admin | [pop2:/] | rw |
+  For example:> "insert into pj_usr_auth (pj,usr,res,rw) values ('pop2','admin','[pop2:/]','rw')"
+2020-01-11 21:32:24,253 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=9ms, sql=insert into pj_usr_auth (pj,usr,res,rw) values ('pop2','admin','[pop2:/]','rw')
+2020-01-11 21:32:24,258 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - select pj,res,rw,gr,' ' usr,' ' usrname from pj_gr_auth  WHERE pj=? AND gr=? AND res=?
+    |    1 |       2 |        3 |
+    |------|---------|----------|
+    | pop2 | manager | [pop2:/] |
+  For example:> "select pj,res,rw,gr,' ' usr,' ' usrname from pj_gr_auth  WHERE pj='pop2' AND gr='manager' AND res='[pop2:/]'"
+2020-01-11 21:32:24,270 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=11ms, sql=select pj,res,rw,gr,' ' usr,' ' usrname from pj_gr_auth  WHERE pj='pop2' AND gr='manager' AND res='[pop2:/]'
+2020-01-11 21:32:24,270 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - insert into pj_gr_auth (pj,gr,res,rw) values (?,?,?,?)
+    |    1 |       2 |        3 |  4 |
+    |------|---------|----------|----|
+    | pop2 | manager | [pop2:/] | rw |
+  For example:> "insert into pj_gr_auth (pj,gr,res,rw) values ('pop2','manager','[pop2:/]','rw')"
+2020-01-11 21:32:24,280 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=9ms, sql=insert into pj_gr_auth (pj,gr,res,rw) values ('pop2','manager','[pop2:/]','rw')
+2020-01-11 21:32:24,283 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  WHERE pj=? LIMIT 0, 1 
+    |    1 |
+    |------|
+    | pop2 |
+  For example:> "SELECT * FROM pj  WHERE pj='pop2' LIMIT 0, 1 "
+2020-01-11 21:32:24,287 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM pj  WHERE pj='pop2' LIMIT 0, 1 
+2020-01-11 21:32:24,288 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:32:24,296 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=7ms, sql=SELECT * FROM project_config  LIMIT 0, 1 
+2020-01-11 21:32:24,302 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - select p.usr,p.name,p.role,CASE WHEN pu.psw IS NOT NULL THEN pu.psw ELSE p.psw END psw from ( select a.usr,a.role,a.psw,a.name from usr a  where  exists (select d.usr from pj_gr_usr d where d.usr=a.usr and d.pj in (select distinct pj from pj where type=?))  or exists(select c.usr from pj_usr_auth c where a.usr=c.usr and c.pj in (select distinct pj from pj where type=?))  ) p  left join pj_usr pu on (p.usr=pu.usr) where p.usr <> '*' order by p.usr
+    |          1 |          2 |
+    |------------|------------|
+    | http-mutil | http-mutil |
+  For example:> "select p.usr,p.name,p.role,CASE WHEN pu.psw IS NOT NULL THEN pu.psw ELSE p.psw END psw from ( select a.usr,a.role,a.psw,a.name from usr a  where  exists (select d.usr from pj_gr_usr d where d.usr=a.usr and d.pj in (select distinct pj from pj where type='http-mutil'))  or exists(select c.usr from pj_usr_auth c where a.usr=c.usr and c.pj in (select distinct pj from pj where type='http-mutil'))  ) p  left join pj_usr pu on (p.usr=pu.usr) where p.usr <> '*' order by p.usr"
+2020-01-11 21:32:24,312 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=10ms, sql=select p.usr,p.name,p.role,CASE WHEN pu.psw IS NOT NULL THEN pu.psw ELSE p.psw END psw from ( select a.usr,a.role,a.psw,a.name from usr a  where  exists (select d.usr from pj_gr_usr d where d.usr=a.usr and d.pj in (select distinct pj from pj where type='http-mutil'))  or exists(select c.usr from pj_usr_auth c where a.usr=c.usr and c.pj in (select distinct pj from pj where type='http-mutil'))  ) p  left join pj_usr pu on (p.usr=pu.usr) where p.usr <> '*' order by p.usr
+2020-01-11 21:32:24,315 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - select a.pj,a.gr,b.usr,c.name as usrname from pj_gr a left join pj_gr_usr b on (a.pj=b.pj and a.gr=b.gr) left join usr c on (b.usr=c.usr)  where a.pj in (select distinct pj from pj where type=?) order by a.pj,a.gr,b.usr
+    |          1 |
+    |------------|
+    | http-mutil |
+  For example:> "select a.pj,a.gr,b.usr,c.name as usrname from pj_gr a left join pj_gr_usr b on (a.pj=b.pj and a.gr=b.gr) left join usr c on (b.usr=c.usr)  where a.pj in (select distinct pj from pj where type='http-mutil') order by a.pj,a.gr,b.usr"
+2020-01-11 21:32:24,321 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=5ms, sql=select a.pj,a.gr,b.usr,c.name as usrname from pj_gr a left join pj_gr_usr b on (a.pj=b.pj and a.gr=b.gr) left join usr c on (b.usr=c.usr)  where a.pj in (select distinct pj from pj where type='http-mutil') order by a.pj,a.gr,b.usr
+2020-01-11 21:32:24,325 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - select pj,res,rw,gr,' ' usr,' ' usrname from pj_gr_auth where pj in (select distinct pj from pj where type=?)  UNION  select a.pj,a.res,a.rw,' ' gr,a.usr,b.name usrname from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj in (select distinct pj from pj where type=?)  order by res,gr,usr
+    |          1 |          2 |
+    |------------|------------|
+    | http-mutil | http-mutil |
+  For example:> "select pj,res,rw,gr,' ' usr,' ' usrname from pj_gr_auth where pj in (select distinct pj from pj where type='http-mutil')  UNION  select a.pj,a.res,a.rw,' ' gr,a.usr,b.name usrname from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj in (select distinct pj from pj where type='http-mutil')  order by res,gr,usr"
+2020-01-11 21:32:24,331 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=6ms, sql=select pj,res,rw,gr,' ' usr,' ' usrname from pj_gr_auth where pj in (select distinct pj from pj where type='http-mutil')  UNION  select a.pj,a.res,a.rw,' ' gr,a.usr,b.name usrname from pj_usr_auth a left join usr b on (a.usr=b.usr) where a.pj in (select distinct pj from pj where type='http-mutil')  order by res,gr,usr
+2020-01-11 21:32:24,470 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:32:24,473 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  LIMIT 0, 20 
+2020-01-11 21:32:24,476 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=3ms, sql=SELECT * FROM pj  LIMIT 0, 20 
+2020-01-11 21:32:24,481 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT COUNT(*) FROM pj 
+2020-01-11 21:32:24,485 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=4ms, sql=SELECT COUNT(*) FROM pj 
+2020-01-11 21:33:13,017 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:33:13,022 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [POST] path=/admin/project/init : AdminProjectAct.init(AdminProjectAct.java:120)
+2020-01-11 21:33:13,022 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:33:13,026 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM pj  WHERE pj=? LIMIT 0, 1 
+    |    1 |
+    |------|
+    | pop2 |
+  For example:> "SELECT * FROM pj  WHERE pj='pop2' LIMIT 0, 1 "
+2020-01-11 21:33:13,032 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=6ms, sql=SELECT * FROM pj  WHERE pj='pop2' LIMIT 0, 1 
+2020-01-11 21:33:13,055 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/project/init :
+java.lang.RuntimeException: 当前线程没有设置用户!
+	at com.rekoe.utils.UsrProvider.getCurrentUsr(UsrProvider.java:24)
+	at com.rekoe.utils.DoCommit.mkdirs(DoCommit.java:52)
+	at com.rekoe.utils.DoCommit.mkdirs(DoCommit.java:47)
+	at com.rekoe.service.RepositoryService.createDir(RepositoryService.java:158)
+	at com.rekoe.module.admin.AdminProjectAct.init(AdminProjectAct.java:124)
+	at com.rekoe.module.admin.AdminProjectAct$FM$init$f3f944c6b106266ffa30b19e6085854c.invoke(AdminProjectAct.java)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 21:33:13,148 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/common/unauthorized : AdminCommonAct.unauthorized(AdminCommonAct.java:26)
+2020-01-11 21:33:41,794 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/rep : AdminProjectAct.rep(AdminProjectAct.java:83)
+2020-01-11 21:33:41,798 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/project/rep :
+java.lang.RuntimeException: 当前线程没有设置用户!
+	at com.rekoe.utils.UsrProvider.getCurrentUsr(UsrProvider.java:24)
+	at com.rekoe.service.RepositoryService.getRepository(RepositoryService.java:117)
+	at com.rekoe.service.RepositoryService.getRepositoryRoot(RepositoryService.java:212)
+	at com.rekoe.module.admin.AdminProjectAct.rep(AdminProjectAct.java:84)
+	at com.rekoe.module.admin.AdminProjectAct$FM$rep$eb204f9c1b51d0af9e92d9fef7867af4.invoke(AdminProjectAct.java)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 21:33:41,854 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/common/unauthorized : AdminCommonAct.unauthorized(AdminCommonAct.java:26)
+2020-01-11 21:34:00,256 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/file_add : AdminProjectAct.file_add(AdminProjectAct.java:243)
+2020-01-11 21:34:07,663 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [POST] path=/admin/project/file_save : AdminProjectAct.file_save(AdminProjectAct.java:253)
+2020-01-11 21:34:07,671 [WARN][org.nutz.mvc.impl.processor.FailProcessor] - Error@/admin/project/file_save :
+java.lang.RuntimeException: 当前线程没有设置用户!
+	at com.rekoe.utils.UsrProvider.getCurrentUsr(UsrProvider.java:24)
+	at com.rekoe.utils.DoCommit.mkdirs(DoCommit.java:52)
+	at com.rekoe.module.admin.AdminProjectAct.file_save(AdminProjectAct.java:253)
+	at com.rekoe.module.admin.AdminProjectAct$FM$file_save$aa80c2f4b36a879947b8391f59904bee.invoke(AdminProjectAct.java)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 21:34:07,710 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/common/unauthorized : AdminCommonAct.unauthorized(AdminCommonAct.java:26)
+2020-01-11 21:37:14,407 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:37:14,409 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:37:14,410 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/user/login : IndexAct.login(IndexAct.java:20)
+2020-01-11 21:39:19,862 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:39:19,886 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:39:19,886 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [POST] path=/admin/login : AdminLoginAct.login(AdminLoginAct.java:56)
+2020-01-11 21:39:19,955 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM system_role  WHERE id IN (SELECT roleid FROM system_user_role WHERE userid=1)
+2020-01-11 21:39:19,966 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=11ms, sql=SELECT * FROM system_role  WHERE id IN (SELECT roleid FROM system_user_role WHERE userid=1)
+2020-01-11 21:39:19,982 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM system_permission  WHERE id IN (SELECT permissionid FROM system_role_permission WHERE roleid=1)
+2020-01-11 21:39:19,989 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=7ms, sql=SELECT * FROM system_permission  WHERE id IN (SELECT permissionid FROM system_role_permission WHERE roleid=1)
+2020-01-11 21:39:20,003 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:39:20,004 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:39:20,010 [DEBUG][org.nutz.dao.impl.sql.run.NutDaoExecutor] - SELECT * FROM usr  WHERE usr=? LIMIT 0, 1 
+    |     1 |
+    |-------|
+    | admin |
+  For example:> "SELECT * FROM usr  WHERE usr='admin' LIMIT 0, 1 "
+2020-01-11 21:39:20,019 [DEBUG][org.nutz.dao.impl.interceptor.DaoTimeInterceptor] - time=9ms, sql=SELECT * FROM usr  WHERE usr='admin' LIMIT 0, 1 
+2020-01-11 21:39:20,063 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:39:20,066 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:39:20,073 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:shiro-activeSessionCache msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:39:20,075 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:shiro-activeSessionCache, msg=sm98dabljihh3rpkujgsuc21sh:q1u0dr20s4j07q75pkq945ha5j
+2020-01-11 21:39:20,124 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/main : WelcomeAct.main(WelcomeAct.java:30)
+2020-01-11 21:39:20,215 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/top : WelcomeAct.top(WelcomeAct.java:24)
+2020-01-11 21:39:20,220 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/index_main : WelcomeAct.index(WelcomeAct.java:18)
+2020-01-11 21:39:20,300 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/left : WelcomeAct.left(WelcomeAct.java:35)
+2020-01-11 21:39:20,303 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/right : WelcomeAct.right(WelcomeAct.java:40)
+2020-01-11 21:39:23,591 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/main : FrameAct.project_main(FrameAct.java:70)
+2020-01-11 21:39:23,683 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/right : FrameAct.project_right(FrameAct.java:80)
+2020-01-11 21:39:23,683 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/frame/project/left : FrameAct.project_left(FrameAct.java:75)
+2020-01-11 21:39:24,725 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/list : AdminProjectAct.list(AdminProjectAct.java:48)
+2020-01-11 21:39:24,729 [DEBUG][org.nutz.plugins.cache.impl.lcache.LCache] - fire channel=LCache:com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache msg=sm98dabljihh3rpkujgsuc21sh:com.rekoe.domain.User@de785ee
+2020-01-11 21:39:24,732 [DEBUG][org.nutz.plugins.cache.impl.lcache.CachePubSub] - channel=LCache:com.rekoe.shiro.realm.UsernamePasswordRealm.authorizationCache, msg=sm98dabljihh3rpkujgsuc21sh:com.rekoe.domain.User@de785ee
+2020-01-11 21:39:27,208 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/file_add : AdminProjectAct.file_add(AdminProjectAct.java:243)
+2020-01-11 21:39:35,718 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [POST] path=/admin/project/file_save : AdminProjectAct.file_save(AdminProjectAct.java:253)
+2020-01-11 21:39:38,060 [ERROR][com.rekoe.utils.DoCommit] - svn: E170001: Authentication required for '<http://svn.test.com:80> Subversion Repository'
+org.tmatesoft.svn.core.SVNAuthenticationException: svn: E170001: Authentication required for '<http://svn.test.com:80> Subversion Repository'
+	at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.authenticationFailed(SVNErrorManager.java:47)
+	at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.authenticationFailed(SVNErrorManager.java:41)
+	at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getNextAuthentication(DefaultSVNAuthenticationManager.java:218)
+	at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:657)
+	at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:362)
+	at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:350)
+	at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:708)
+	at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:628)
+	at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103)
+	at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1016)
+	at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getCommitEditorInternal(DAVRepository.java:1146)
+	at org.tmatesoft.svn.core.io.SVNRepository.getCommitEditor(SVNRepository.java:2468)
+	at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteRemoteMkDir.doRun(SvnRemoteRemoteMkDir.java:127)
+	at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteRemoteMkDir.run(SvnRemoteRemoteMkDir.java:39)
+	at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteRemoteMkDir.run(SvnRemoteRemoteMkDir.java:35)
+	at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
+	at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
+	at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291)
+	at org.tmatesoft.svn.core.wc.SVNCommitClient.doMkDir(SVNCommitClient.java:318)
+	at com.rekoe.utils.DoCommit.mkdirs(DoCommit.java:85)
+	at com.rekoe.module.admin.AdminProjectAct.file_save(AdminProjectAct.java:253)
+	at com.rekoe.module.admin.AdminProjectAct$FM$file_save$aa80c2f4b36a879947b8391f59904bee.invoke(AdminProjectAct.java)
+	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:38)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:139)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
+	at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
+	at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
+	at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
+	at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:56)
+	at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
+	at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:202)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
+	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
+	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
+	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
+	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
+	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.nutz.mvc.WhaleFilter.doFilter(WhaleFilter.java:171)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
+	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
+	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
+	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
+	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
+	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
+	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
+	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
+	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
+	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
+	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
+	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
+	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
+	at org.eclipse.jetty.server.Server.handle(Server.java:500)
+	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
+	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
+	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
+	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
+	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
+	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
+	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
+	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
+	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
+	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
+	at java.lang.Thread.run(Thread.java:748)
+2020-01-11 21:39:38,151 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Found mapping for [GET] path=/admin/project/file_add : AdminProjectAct.file_add(AdminProjectAct.java:243)
+2020-01-11 21:43:48,533 [DEBUG][org.nutz.mvc.impl.UrlMappingImpl] - Search mapping for [GET] path=/ : NOT Action match
+2020-01-11 21:54:09,581 [INFO][org.apache.shiro.session.mgt.AbstractValidatingSessionManager] - Disabled session validation scheduler.
+2020-01-11 21:54:09,584 [INFO][org.nutz.boot.starter.nutz.mvc.NbMvcLoading] - Nutz.Mvc[nutz] is deposing ...
+2020-01-11 21:54:09,584 [INFO][org.nutz.boot.starter.nutz.mvc.NbMvcLoading] - Nutz.Mvc[nutz] is down in 0ms
diff --git a/src/main/java/com/rekoe/CloudLauncher.java b/src/main/java/com/rekoe/CloudLauncher.java
index 3099841..9a56139 100644
--- a/src/main/java/com/rekoe/CloudLauncher.java
+++ b/src/main/java/com/rekoe/CloudLauncher.java
@@ -22,6 +22,7 @@ import org.nutz.lang.Each;
 import org.nutz.lang.ExitLoop;
 import org.nutz.lang.Lang;
 import org.nutz.lang.LoopException;
+import org.nutz.mvc.Mvcs;
 import org.nutz.mvc.annotation.Encoding;
 import org.nutz.mvc.annotation.Fail;
 import org.nutz.mvc.annotation.IocBy;
diff --git a/src/main/java/com/rekoe/module/admin/FrameAct.java b/src/main/java/com/rekoe/module/admin/FrameAct.java
index 5f969c9..ebf86e9 100644
--- a/src/main/java/com/rekoe/module/admin/FrameAct.java
+++ b/src/main/java/com/rekoe/module/admin/FrameAct.java
@@ -1,6 +1,7 @@
 package com.rekoe.module.admin;
 
 import org.nutz.ioc.loader.annotation.IocBean;
+import org.nutz.mvc.Mvcs;
 import org.nutz.mvc.annotation.At;
 import org.nutz.mvc.annotation.Ok;
 
@@ -16,6 +17,7 @@ public class FrameAct {
 	@At("/admin/frame/user/left")
 	@Ok("fm:template.admin.user.frame.left")
 	public void userLeft() {
+		 
 	}
 
 	@At("/admin/frame/user/right")
diff --git a/src/main/java/com/rekoe/service/ProjectGroupUsrService.java b/src/main/java/com/rekoe/service/ProjectGroupUsrService.java
index a10c0ba..7bea310 100644
--- a/src/main/java/com/rekoe/service/ProjectGroupUsrService.java
+++ b/src/main/java/com/rekoe/service/ProjectGroupUsrService.java
@@ -95,7 +95,7 @@ public class ProjectGroupUsrService extends BaseService<PjGrUsr> {
 	 * @return 项目的组用户列表
 	 */
 	public List<PjGrUsr> getList(String pj) {
-		Sql sql = Sqls.create("select a.pj,a.gr,b.usr,c.name as usrname from pj_gr a left join pj_gr_usr b on (a.pj=b.pj and a.gr=b.gr) left join usr c on (b.usr = c.usr) where a.pj=@pj and c.is_lock=falsd order by a.gr,b.usr");
+		Sql sql = Sqls.create("select a.pj,a.gr,b.usr,c.name as usrname from pj_gr a left join pj_gr_usr b on (a.pj=b.pj and a.gr=b.gr) left join usr c on (b.usr = c.usr) where a.pj=@pj and c.is_lock=false order by a.gr,b.usr");
 		sql.setParam("pj", pj);
 		final List<PjGrUsr> list = new ArrayList<PjGrUsr>();
 		sql.setCallback(new SqlCallback() {
diff --git a/src/main/java/com/rekoe/service/RepositoryService.java b/src/main/java/com/rekoe/service/RepositoryService.java
index 69e25ac..ba3002e 100644
--- a/src/main/java/com/rekoe/service/RepositoryService.java
+++ b/src/main/java/com/rekoe/service/RepositoryService.java
@@ -186,12 +186,15 @@ public class RepositoryService {
 	}
 
 	public static void main(String[] args) {
-		ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager("admin", "john");
+		DAVRepositoryFactory.setup();
+		SVNRepositoryFactoryImpl.setup();
+		FSRepositoryFactory.setup();
+		ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager("admin", "123456");
 		SVNClientManager manager = SVNClientManager.newInstance();
 		manager.setAuthenticationManager(authManager);
 		SVNCommitClient commitClient = SVNClientManager.newInstance().getCommitClient();
 		try {
-			SVNCommitInfo info = commitClient.doMkDir(new SVNURL[] { SVNURL.parseURIEncoded("http://192.168.3.127/repository/koux/branches") }, "commitMessage", null, true);
+			SVNCommitInfo info = commitClient.doMkDir(new SVNURL[] { SVNURL.parseURIEncoded("http://127.0.0.1:3380/svn/hunnit") }, "commitMessage", null, true);
 			long newRevision = info.getNewRevision();
 			System.out.println(newRevision);
 		} catch (SVNException e) {
diff --git a/src/main/resources/msg/zh_CN/MessageResources.properties b/src/main/resources/msg/zh-CN/MessageResources.properties
similarity index 100%
rename from src/main/resources/msg/zh_CN/MessageResources.properties
rename to src/main/resources/msg/zh-CN/MessageResources.properties