登录成功以后,window.location.href = "${nutz}/platform/login/home"; 跳转方法,如果方法体声明如下就可以进入方法体
@At("/home")
@Filters(@By(type = PlatformAuthenticationFilter.class))
public void home() {
System.out.println();
}
声明为下面的就不能进入方法体,是什么原因?
@At("/home")
@RequiresAuthentication
public void home() {
System.out.println();
}
/**
* 登陆验证
*
* @param token
* @param req
* @return
*/
@At("/doLogin")
@Ok("json")
@Filters(@By(type = PlatformAuthenticationFilter.class))
public Object doLogin(@Attr("loginToken") AuthenticationToken token, HttpServletRequest req, HttpSession session) {
int errCount = 0;
try {
//输错三次显示验证码窗口
errCount = NumberUtils.toInt(Strings.sNull(SecurityUtils.getSubject().getSession(true).getAttribute("errCount")));
Subject subject = SecurityUtils.getSubject();
ThreadContext.bind(subject);
subject.login(token);
User user = (User) subject.getPrincipal();
int count = user.getLoginCount() == null ? 0 : user.getLoginCount();
userService.update(Chain.make("loginIp", user.getLoginIp()).add("loginAt", System.currentTimeMillis())
.add("loginCount", count + 1).add("isOnline", true)
, Cnd.where("id", "=", user.getId()));
Sys_log sysLog = new Sys_log();
sysLog.setType("info");
sysLog.setTag("用户登陆");
sysLog.setSrc(this.getClass().getName()+"#doLogin");
sysLog.setMsg("成功登录系统!");
sysLog.setIp(StringUtil.getRemoteAddr());
sysLog.setOpBy(user.getId());
sysLog.setOpAt((int) (System.currentTimeMillis() / 1000));
sysLog.setUsername(user.getUsername());
sLogService.async(sysLog);
return Result.success("login.success");
} catch (CaptchaIncorrectException e) {
//自定义的验证码错误异常
return Result.error(1, "login.error.captcha");
} catch (CaptchaEmptyException e) {
//验证码为空
return Result.error(2, "login.error.captcha");
} catch (LockedAccountException e) {
return Result.error(3, "login.error.locked");
} catch (UnknownAccountException e) {
errCount++;
SecurityUtils.getSubject().getSession(true).setAttribute("errCount", errCount);
return Result.error(4, "login.error.user");
} catch (AuthenticationException e) {
errCount++;
SecurityUtils.getSubject().getSession(true).setAttribute("errCount", errCount);
return Result.error(5, "login.error.user");
} catch (Exception e) {
errCount++;
SecurityUtils.getSubject().getSession(true).setAttribute("errCount", errCount);
return Result.error(6, "login.error.system");
}
}
@At("/home")
@RequiresAuthentication
public void home() {
System.out.println();
}
访问这个URL的时候, 页面出啥???
前台代码也是一样的,返回的状态码也是0,window.location.href = "${ctx}/platform/login/homepage"; 只有这里我改成我自己的URL,不同是我的前台是用的JSP,
$(document).ready(function () {
$("#year").html(new Date().getFullYear());
$("#loginForm").ajaxForm({
dataType: 'json',
beforeSubmit: function (arr, form, options) {
form.find("button:submit").text("${msg['login.load']}");
form.find("button:submit").attr("disabled", "disabled");
},
success: function (data, statusText, xhr, form) {
if (data.code == 0) {
$("#tip").hide();
form.find("button:submit").text("${msg['login.success']}");
window.location.href = "${ctx}/platform/login/homepage";
} else if (data.code == 2) {
$("#verifycode").val("");
$("#dialogVeryCode img").attr("src", '${ctx}/platform/login/captcha?_=' + new Date().getTime());
return $("#dialogVeryCode").modal({show: true, backdrop: 'static', keyboard: false});
} else {
$("#captcha").val("");
$('#captcha_img').attr('src', '${ctx}/platform/login/captcha?_=' + new Date().getTime());
$("#tip").html(data.msg);
$("#tip").fadeIn();
form.find("button:submit").text("${msg['login.submit']}");
form.find("button:submit").removeAttr("disabled")
}
}
});
$("#ok").on("click", function () {
if ($("#verifycode").val() == "") {
$("#f2").submit();
return false;
}
$("#captcha").val($("#verifycode").val());
$("#loginForm").submit();
});
$("#dialogVeryCode").on("keypress", function (event) {
var key = event.which;
if (key == 13) {
$("#ok").trigger("click");
}
});
$("#username").focus();
});
前台代码也是一样的,返回的状态码也是0,window.location.href = "${ctx}/platform/login/homepage"; 只有这里我改成我自己的URL,不同是我的前台是用的JSP,
$(document).ready(function () {
$("#year").html(new Date().getFullYear());
$("#loginForm").ajaxForm({
dataType: 'json',
beforeSubmit: function (arr, form, options) {
form.find("button:submit").text("${msg['login.load']}");
form.find("button:submit").attr("disabled", "disabled");
},
success: function (data, statusText, xhr, form) {
if (data.code == 0) {
$("#tip").hide();
form.find("button:submit").text("${msg['login.success']}");
window.location.href = "${ctx}/platform/login/homepage";
} else if (data.code == 2) {
$("#verifycode").val("");
$("#dialogVeryCode img").attr("src", '${ctx}/platform/login/captcha?_=' + new Date().getTime());
return $("#dialogVeryCode").modal({show: true, backdrop: 'static', keyboard: false});
} else {
$("#captcha").val("");
$('#captcha_img').attr('src', '${ctx}/platform/login/captcha?_=' + new Date().getTime());
$("#tip").html(data.msg);
$("#tip").fadeIn();
form.find("button:submit").text("${msg['login.submit']}");
form.find("button:submit").removeAttr("disabled")
}
}
});
$("#ok").on("click", function () {
if ($("#verifycode").val() == "") {
$("#f2").submit();
return false;
}
$("#captcha").val($("#verifycode").val());
$("#loginForm").submit();
});
$("#dialogVeryCode").on("keypress", function (event) {
var key = event.which;
if (key == 13) {
$("#ok").trigger("click");
}
});
$("#username").focus();
});
@wendal 大神帮忙,我搞了好长时间这个了,一直也没有搞定呢,进行不下去了
回调函数在jsp页面里面,应该是渲染了,如果我在方法体上声明@Filters(@By(type = PlatformAuthenticationFilter.class)) 这个就能进到方法体,如果声明@RequiresAuthentication 这个就进不了方法体
import com.nutz.shrio.token.CaptchaToken;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;
import org.apache.shiro.web.util.WebUtils;
import org.nutz.mvc.ActionContext;
import org.nutz.mvc.ActionFilter;
import org.nutz.mvc.View;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
/**
* Created by wizzer on 2017/1/10.
*/
public class PlatformAuthenticationFilter extends FormAuthenticationFilter implements ActionFilter {
private String captchaParam = "platformCaptcha";
public String getCaptchaParam() {
return captchaParam;
}
protected String getCaptcha(ServletRequest request) {
return WebUtils.getCleanParam(request, getCaptchaParam());
}
protected AuthenticationToken createToken(HttpServletRequest request) {
String username = getUsername(request);
String password = getPassword(request);
String captcha = getCaptcha(request);
boolean rememberMe = isRememberMe(request);
String host = getHost(request);
return new CaptchaToken(username, password, rememberMe, host, captcha);
}
public View match(ActionContext actionContext) {
HttpServletRequest request = actionContext.getRequest();
AuthenticationToken authenticationToken = createToken(request);
request.setAttribute("loginToken", authenticationToken);
return null;
}
}
```
话说, 既然已经code=0, 那么 window.location.href = "${ctx}/platform/login/homepage";
肯定执行了吧?
那浏览器的路径肯定跳转到 /xxx//platform/login/homepage 了? 难道没有吗??
是的,所以那样就可以跳转到url里面 ,方法声明为@RequiresAuthentication 验证用户是否登录的时候就进不去方法体了 ,那还是用户没有真正的登录码?
| 1 |
|----------|
| admin |
For example:> "SELECT * FROM (SELECT T.*, ROWNUM RN FROM ( SELECT * FROM sys_user WHERE loginname='admin') T WHERE ROWNUM <= 1) WHERE RN > 0 "
DEBUG 16:50:46 NutDaoExecutor.printSQL(388)-->SELECT * FROM sys_role WHERE id IN (SELECT roleId FROM sys_user_role WHERE userId='2eef3704c47b4b97a7e026b98cd442d6')
DEBUG 16:50:46 NutDaoExecutor.printSQL(388)-->SELECT * FROM sys_unit WHERE id IN (SELECT unitId FROM sys_user_unit WHERE userId='2eef3704c47b4b97a7e026b98cd442d6')
DEBUG 16:50:46 NutDaoExecutor.printSQL(388)-->SELECT * FROM sys_unit WHERE id IS NULL
DEBUG 16:50:46 NutDaoExecutor.printSQL(388)-->select distinct a.* from sys_menu a,sys_role_menu b where a.id=b.menuId and b.roleId in(select c.roleId from sys_user_role c,sys_role d where c.roleId=d.id and c.userId=? and d.disabled='0') and a.disabled='0' and a.isShow='1' and a.type='menu' order by a.location ASC,a.path asc
| 1 |
|----------------------------------|
| 2eef3704c47b4b97a7e026b98cd442d6 |
For example:> "select distinct a.* from sys_menu a,sys_role_menu b where a.id=b.menuId and b.roleId in(select c.roleId from sys_user_role c,sys_role d where c.roleId=d.id and c.userId='2eef3704c47b4b97a7e026b98cd442d6' and d.disabled='0') and a.disabled='0' and a.isShow='1' and a.type='menu' order by a.location ASC,a.path asc"
DEBUG 16:50:46 NutDaoExecutor.printSQL(388)-->UPDATE sys_user SET loginIp=?,loginAt=?,loginCount=?,isOnline=? WHERE id=?
| 1 | 2 | 3 | 4 | 5 |
|------|---------------|----|------|----------------------------------|
| NULL | 1498467046414 | 60 | true | 2eef3704c47b4b97a7e026b98cd442d6 |
For example:> "UPDATE sys_user SET loginIp='NULL',loginAt=1498467046414,loginCount=60,isOnline=true WHERE id='2eef3704c47b4b97a7e026b98cd442d6'"
DEBUG 16:50:46 UrlMappingImpl.get(101)-->Found mapping for [GET] path=/platform/login/homepage : LoginAt.homepage(LoginAt.java:181)
DEBUG 16:50:46 NutIoc.get(151)-->Get 'shiroUtil'<class com.nutz.util.ShiroUtil>
DEBUG 16:50:46 NutIoc.get(151)-->Get 'dateUtil'<class com.nutz.util.DateUtil>
DEBUG 16:50:46 NutIoc.get(151)-->Get 'loginAt'<class com.nutz.LoginAt>
DEBUG 16:50:50 NutDaoExecutor.printSQL(388)-->INSERT INTO sys_log(username,type,tag,src,ip,msg,opBy,opAt,delFlag) VALUES(?,?,?,?,?,?,?,?,?)
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|-------|------|------|-----------------------------|-----------------|---------|----------------------------------|------------|------|
| 管理员 | info | 用户登陆 | com.nutz.LoginAt#doLogin | 0:0:0:0:0:0:0:1 | 成功登录系统! | 2eef3704c47b4b97a7e026b98cd442d6 | 1498467046 | NULL |
For example:> "INSERT INTO sys_log(username,type,tag,src,ip,msg,opBy,opAt,delFlag) VALUES('管理员','info','用户登陆','com.wonders.LoginAt#doLogin','0:0:0:0:0:0:0:1','成功登录系统!','2eef3704c47b4b97a7e026b98cd442d6',1498467046,'NULL') "
登录成功跳转到process,
match的值是true,执行 interceptor.assertAuthorized(new NutShiroInterceptor(ac)); 是对的吗?
public void process(ActionContext ac) throws Throwable {
if (match) {
try {
interceptor.assertAuthorized(new NutShiroInterceptor(ac));
} catch (Exception e) {
whenException(ac, e);
return;
}
}
doNext(ac);
}
D:\apache-tomcat-8.5.8\bin\catalina.bat run
[2017-06-27 08:51:27,181] Artifact nutz:war exploded: Server is not connected. Deploy is not available.
Using CATALINA_BASE: "C:\Users\Administrator\.IntelliJIdea2017.1\system\tomcat\Unnamed_nutz_2"
Using CATALINA_HOME: "D:\apache-tomcat-8.5.8"
Using CATALINA_TMPDIR: "D:\apache-tomcat-8.5.8\temp"
Using JRE_HOME: "C:\java\jdk1.8.0_25"
Using CLASSPATH: "D:\apache-tomcat-8.5.8\bin\bootstrap.jar;D:\apache-tomcat-8.5.8\bin\tomcat-juli.jar"
Connected to the target VM, address: '127.0.0.1:51309', transport: 'socket'
27-Jun-2017 08:51:29.543 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.8
27-Jun-2017 08:51:29.575 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Nov 3 2016 21:14:13 UTC
27-Jun-2017 08:51:29.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.8.0
27-Jun-2017 08:51:29.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 8.1
27-Jun-2017 08:51:29.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 6.3
27-Jun-2017 08:51:29.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
27-Jun-2017 08:51:29.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\java\jdk1.8.0_25\jre
27-Jun-2017 08:51:29.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_25-b18
27-Jun-2017 08:51:29.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
27-Jun-2017 08:51:29.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\Administrator\.IntelliJIdea2017.1\system\tomcat\Unnamed_nutz_2
27-Jun-2017 08:51:29.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\apache-tomcat-8.5.8
27-Jun-2017 08:51:29.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51309,suspend=y,server=n
27-Jun-2017 08:51:29.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dfile.encoding=UTF-8
27-Jun-2017 08:51:29.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
27-Jun-2017 08:51:29.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
27-Jun-2017 08:51:29.578 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
27-Jun-2017 08:51:29.578 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
27-Jun-2017 08:51:29.578 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
27-Jun-2017 08:51:29.578 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
27-Jun-2017 08:51:29.578 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
27-Jun-2017 08:51:29.578 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\Administrator\.IntelliJIdea2017.1\system\tomcat\Unnamed_nutz_2\conf\logging.properties
27-Jun-2017 08:51:29.579 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
27-Jun-2017 08:51:29.579 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\Administrator\.IntelliJIdea2017.1\system\tomcat\Unnamed_nutz_2
27-Jun-2017 08:51:29.579 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=D:\apache-tomcat-8.5.8
27-Jun-2017 08:51:29.579 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=D:\apache-tomcat-8.5.8\temp
27-Jun-2017 08:51:29.579 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.2.10 using APR version 1.5.2.
27-Jun-2017 08:51:29.579 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
27-Jun-2017 08:51:29.579 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
27-Jun-2017 08:51:30.629 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized (OpenSSL 1.0.2j 26 Sep 2016)
27-Jun-2017 08:51:31.399 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
27-Jun-2017 08:51:31.606 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
27-Jun-2017 08:51:31.622 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
27-Jun-2017 08:51:31.638 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
27-Jun-2017 08:51:31.639 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 3007 ms
27-Jun-2017 08:51:31.830 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
27-Jun-2017 08:51:31.830 信息 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.8
27-Jun-2017 08:51:31.846 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080]
27-Jun-2017 08:51:31.869 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]
27-Jun-2017 08:51:31.875 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 235 ms
Connected to server
[2017-06-27 08:51:32,303] Artifact nutz:war exploded: Artifact is being deployed, please wait...
27-Jun-2017 08:51:41.866 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory D:\apache-tomcat-8.5.8\webapps\manager
27-Jun-2017 08:51:42.765 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
27-Jun-2017 08:51:42.951 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory D:\apache-tomcat-8.5.8\webapps\manager has finished in 1,084 ms
27-Jun-2017 08:51:46.676 信息 [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
INFO 08:51:48 NutFilter._init(85)-->NutFilter[nutz] starting ...
DEBUG 08:51:48 Scans.printLocations(521)-->Locations count=4 time use 8ms
DEBUG 08:51:48 Scans.printLocations(521)-->Locations count=64 time use 56ms
DEBUG 08:51:48 Castors.reload(115)-->Using 95 castor for Castors
DEBUG 08:51:48 AbstractNutConfig.createLoading(59)-->Loading by class org.nutz.mvc.impl.NutLoading
INFO 08:51:48 NutLoading.load(55)-->Nutz Version : 1.r.61-SNAPSHOT
INFO 08:51:48 NutLoading.load(56)-->Nutz.Mvc[nutz] is initializing ...
DEBUG 08:51:48 NutLoading.load(60)-->Web Container Information:
DEBUG 08:51:48 NutLoading.load(61)--> - Default Charset : UTF-8
DEBUG 08:51:48 NutLoading.load(62)--> - Current . path : D:\apache-tomcat-8.5.8\bin\.
DEBUG 08:51:48 NutLoading.load(63)--> - Java Version : 1.8.0_25
DEBUG 08:51:48 NutLoading.load(64)--> - File separator : \
DEBUG 08:51:48 NutLoading.load(65)--> - Timezone : Asia/Shanghai
DEBUG 08:51:48 NutLoading.load(66)--> - OS : Windows 8.1 amd64
DEBUG 08:51:48 NutLoading.load(67)--> - ServerInfo : Apache Tomcat/8.5.8
DEBUG 08:51:48 NutLoading.load(68)--> - Servlet API : 3.1
DEBUG 08:51:48 NutLoading.load(73)--> - ContextPath :
DEBUG 08:51:48 NutLoading.load(74)--> - context.tempdir : C:\Users\Administrator\.IntelliJIdea2017.1\system\tomcat\Unnamed_nutz_2\work\Catalina\localhost\ROOT
DEBUG 08:51:48 NutLoading.load(75)--> - MainModule : com.nutz.MainModule
DEBUG 08:51:48 NutLoading.createContext(235)-->>> app.root = E:/nutz_module/nutz/target/nutz
DEBUG 08:51:48 NutLoading.createIoc(376)-->@IocBy(type=org.nutz.mvc.ioc.provider.ComboIocProvider, args=["*org.nutz.ioc.loader.json.JsonLoader", "ioc/", "*org.nutz.ioc.loader.annotation.AnnotationIocLoader", "com.nutz"],init=[])
DEBUG 08:51:48 Scans.scan(274)-->Found 3 resource by src( ioc/ ) , regex( ^(.+[.])(js|json)$ )
DEBUG 08:51:48 JsonLoader.<init>(49)-->loading [aop.js]
DEBUG 08:51:48 JsonLoader.<init>(49)-->loading [dao.js]
DEBUG 08:51:48 JsonLoader.<init>(49)-->loading [ehcache.json]
DEBUG 08:51:48 JsonLoader.<init>(57)-->Loaded 13 bean define from path=[ioc/] --> [log, txNONE, cacheManager, $aop, txREPEATABLE_READ, dao, uploadFileContext, txREAD_UNCOMMITTED, myUpload, txREAD_COMMITTED, tmpFilePool, txSERIALIZABLE, dataSource]
DEBUG 08:51:49 Scans.scan(274)-->Found 386 resource by src( com/nutz/ ) , regex( ^.+[.]class$ )
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.homeAt
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.LoginAt
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.shrio.interceptor.NutShiroMethodInterceptor
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.shrio.realm.PlatformAuthorizingRealm
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.site.DownLoadOfficeAt
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.slog.SLogService
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.tdsc.corp.CorpInfoAt
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.tiles.authority.service.impl.SysApiServiceImpl
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.tiles.authority.service.impl.SysMenuServiceImpl
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.tiles.authority.service.impl.SysRoleServiceImpl
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.tiles.authority.service.impl.SysUserServiceImpl
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.util.DateUtil
DEBUG 08:51:49 AnnotationIocLoader.addClass(74)-->Found @IocBean : class com.nutz.util.ShiroUtil
INFO 08:51:49 AnnotationIocLoader.<init>(50)-->Found 120 classes in 1 base-packages!
INFO 08:51:49 NutIoc.<init>(98)-->NutIoc init begin ...
INFO 08:51:49 NutIoc.<init>(115)-->... NutIoc init complete
INFO 08:51:49 NutLoading.evalUrlMapping(159)-->Build URL mapping by org.nutz.mvc.impl.UrlMappingImpl ...
DEBUG 08:51:49 NutLoading.createViewMakers(366)-->@Views(BeetlViewMaker.class,PdfViewMaker.class,DefaultViewMaker.class)
DEBUG 08:51:49 Scans.scan(274)-->Found 1 resource by src( chain/nutzwk-mvc-chain.json ) , regex( ^(.+[.])(js|json)$ )
DEBUG 08:51:49 JsonActionChainMakerConfiguretion.<init>(37)-->ActionChain Config:
{
"default": {
"ps": ["com.nutz.commons.processor.LogTimeProcessor", "com.nutz.commons.processor.GlobalsSettingProcessor", "org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor", "org.nutz.mvc.impl.processor.EncodingProcessor", "org.nutz.mvc.impl.processor.ModuleProcessor", "com.nutz.commons.processor.NutShiroProcessor", "com.nutz.commons.processor.XssSqlFilterProcessor", "org.nutz.mvc.impl.processor.ActionFiltersProcessor", "org.nutz.mvc.impl.processor.AdaptorProcessor", "org.nutz.mvc.impl.processor.MethodInvokeProcessor", "org.nutz.mvc.impl.processor.ViewProcessor"],
"error": "org.nutz.mvc.impl.processor.FailProcessor"
}
}
DEBUG 08:51:49 NutLoading.createChainMaker(263)-->@ChainBy(org.nutz.mvc.impl.NutActionChainMaker)
DEBUG 08:51:49 Loadings.scanModules(154)-->module class location 'file:/E:/nutz_module/nutz/target/nutz/WEB-INF/classes/'
DEBUG 08:51:49 Loadings.scanModuleInPackage(184)--> > scan 'com.nutz'
DEBUG 08:51:49 Scans.scan(274)-->Found 386 resource by src( com/nutz/ ) , regex( ^.+[.]class$ )
DEBUG 08:51:49 Loadings.checkModule(199)--> >> add 'com.nutz.homeAt'
DEBUG 08:51:49 Loadings.checkModule(199)--> >> add 'com.nutz.LoginAt
DEBUG 08:51:50 NutIoc.get(151)-->Get 'errView'<interface org.nutz.mvc.View>
DEBUG 08:51:50 NutIoc.get(151)-->Get '$aop'<interface org.nutz.ioc.aop.config.AopConfigration>
DEBUG 08:51:50 NutIoc.get(177)--> >> Load definition name=$aop
DEBUG 08:51:50 MapLoader.load(67)-->Loading define for name=$aop
DEBUG 08:51:50 ComboIocLoader.load(161)-->Found IocObject($aop) in JsonLoader(paths=[ioc/])
DEBUG 08:51:50 NutIoc.get(209)--> >> Make...'$aop'<interface org.nutz.ioc.aop.config.AopConfigration>
DEBUG 08:51:50 ScopeContext.save(64)-->Save object '$aop' to [app]
DEBUG 08:51:50 SimpleAopMaker.<init>(79)-->Load AopConfigure for anno=org.nutz.ioc.aop.Aop by type=org.nutz.ioc.aop.config.impl.AnnotationAopConfigration
DEBUG 08:51:50 NutIoc.get(177)--> >> Load definition name=errView
DEBUG 08:51:50 ComboIocLoader.load(161)-->Found IocObject(errView) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:51:50 NutIoc.get(209)--> >> Make...'errView'<interface org.nutz.mvc.View>
DEBUG 08:51:50 NutIoc.get(151)-->Get 'txSERIALIZABLE'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:51:50 NutIoc.get(177)--> >> Load definition name=txSERIALIZABLE
DEBUG 08:51:50 MapLoader.load(67)-->Loading define for name=txSERIALIZABLE
DEBUG 08:51:50 ComboIocLoader.load(161)-->Found IocObject(txSERIALIZABLE) in JsonLoader(paths=[ioc/])
DEBUG 08:51:50 NutIoc.get(209)--> >> Make...'txSERIALIZABLE'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:51:50 ScopeContext.save(64)-->Save object 'txSERIALIZABLE' to [app]
DEBUG 08:51:50 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:51:50 NutIoc.get(177)--> >> Load definition name=txREAD_COMMITTED
DEBUG 08:51:50 MapLoader.load(67)-->Loading define for name=txREAD_COMMITTED
DEBUG 08:51:50 ComboIocLoader.load(161)-->Found IocObject(txREAD_COMMITTED) in JsonLoader(paths=[ioc/])
DEBUG 08:51:50 NutIoc.get(209)--> >> Make...'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:51:50 ScopeContext.save(64)-->Save object 'txREAD_COMMITTED' to [app]
DEBUG 08:51:50 AsmClassAgent.<clinit>(29)-->AsmClassAgent will define class in Version 50
DEBUG 08:51:50 ScopeContext.save(64)-->Save object 'errView' to [app]
DEBUG 08:51:50 NutIoc.get(151)-->Get 'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:50 NutIoc.get(177)--> >> Load definition name=myUpload
DEBUG 08:51:50 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:51:50 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:51:50 NutIoc.get(209)--> >> Make...'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:50 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadAdaptor without AOP
DEBUG 08:51:50 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:50 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:50 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:50 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:50 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:50 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:50 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:50 NutIoc.get(177)--> >> Load definition name=tmpFilePool
DEBUG 08:51:50 MapLoader.load(67)-->Loading define for name=tmpFilePool
DEBUG 08:51:50 ComboIocLoader.load(161)-->Found IocObject(tmpFilePool) in JsonLoader(paths=[ioc/])
DEBUG 08:51:50 NutIoc.get(209)--> >> Make...'tmpFilePool'<>
DEBUG 08:51:50 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.filepool.NutFilePool without AOP
DEBUG 08:51:50 ScopeContext.save(64)-->Save object 'tmpFilePool' to [app]
INFO 08:51:50 NutFilePool.<init>(23)-->Init file-pool by: ~/nutz/blog/upload/tmps [1000]
DEBUG 08:51:51 NutFilePool.<init>(37)-->file-pool.home: 'C:\Users\Administrator\nutz\blog\upload\tmps'
INFO 08:51:51 NutFilePool.<init>(66)-->file-pool.cursor: 96
DEBUG 08:51:51 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:51 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:51 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:51 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:51 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:51 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:51 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:51 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:51 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:51 NutIoc.get(151)-->Get 'errView'<interface org.nutz.mvc.View>
DEBUG 08:51:51 NutIoc.get(151)-->Get 'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:51 NutIoc.get(177)--> >> Load definition name=myUpload
DEBUG 08:51:51 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:51:51 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:51:51 NutIoc.get(209)--> >> Make...'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:51 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadAdaptor without AOP
DEBUG 08:51:51 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:51 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:51 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:51 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:51 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:51 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:51 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:51 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:51 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:51 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:51 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:51 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:51 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:51 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:51 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:51 NutIoc.get(151)-->Get 'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:51 NutIoc.get(177)--> >> Load definition name=myUpload
DEBUG 08:51:51 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:51:51 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:51:51 NutIoc.get(209)--> >> Make...'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:51 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadAdaptor without AOP
DEBUG 08:51:51 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:51 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:51 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:51 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:51 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:51 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:51 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:51 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:51 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:51 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:51 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:51 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:51 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:51 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=myUpload
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadAdaptor without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'errView'<interface org.nutz.mvc.View>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'errView'<interface org.nutz.mvc.View>
DEBUG 08:51:52 UrlMappingImpl.print(146)--> '/research/info/supplementlist' >> (ResearchInfoAt.java:400).supplementList : Map | @Ok(jsp:jsp.researchinfo.meeting.supplement) @Fail(ioc:errView) | by 1 Filters | (I:UTF-8/O:UTF-8)
DEBUG 08:51:52 NutIoc.get(151)-->Get 'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=myUpload
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadAdaptor without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'errView'<interface org.nutz.mvc.View>
DEBUG 08:51:52 UrlMappingImpl.print(146)--> '/research/info/supplementsave' >> (ResearchInfoAt.java:412).supplementSave : Map | @Ok(json ) @Fail(ioc:errView) | by 1 Filters | (I:UTF-8/O:UTF-8)
DEBUG 08:51:52 NutIoc.get(151)-->Get 'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=myUpload
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadAdaptor without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=myUpload
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadAdaptor without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'errView'<interface org.nutz.mvc.View>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=myUpload
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadAdaptor without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'errView'<interface org.nutz.mvc.View>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=myUpload
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadAdaptor without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'errView'<interface org.nutz.mvc.View>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=myUpload
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'myUpload'<class org.nutz.mvc.upload.UploadAdaptor>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadAdaptor without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'uploadFileContext'<>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=uploadFileContext
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'uploadFileContext'<>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.mvc.upload.UploadingContext without AOP
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'tmpFilePool'<>
DEBUG 08:51:52 NutIoc.get(151)-->Get 'errView'<interface org.nutz.mvc.View>
DEBUG 08:51:52 Scans.scan(274)-->Found 0 resource by src( locales/ ) , regex( ^.+[.]properties$ )
DEBUG 08:51:52 NutMessageLoader.load(27)-->Load Messages in 0 resource : [[]]
DEBUG 08:51:52 NutMessageLoader.load(95)-->Message Loaded, size = 0
INFO 08:51:52 NutLoading.createSessionProvider(410)-->SessionBy --> com.nutz.shrio.session.ShiroSessionProvider@18df8435
INFO 08:51:52 NutLoading.evalSetup(271)-->Setup application...
DEBUG 08:51:52 NutIoc.get(151)-->Get 'dao'<interface org.nutz.dao.Dao>
DEBUG 08:51:52 NutIoc.get(177)--> >> Load definition name=dao
DEBUG 08:51:52 MapLoader.load(67)-->Loading define for name=dao
DEBUG 08:51:52 ComboIocLoader.load(161)-->Found IocObject(dao) in JsonLoader(paths=[ioc/])
DEBUG 08:51:52 NutIoc.get(209)--> >> Make...'dao'<interface org.nutz.dao.Dao>
DEBUG 08:51:52 DefaultMirrorFactory.getMirror(70)-->Load class org.nutz.dao.impl.NutDao without AOP
DEBUG 08:51:52 ScopeContext.save(64)-->Save object 'dao' to [app]
DEBUG 08:51:53 NutIoc.get(151)-->Get 'dataSource'<>
DEBUG 08:51:53 NutIoc.get(177)--> >> Load definition name=dataSource
DEBUG 08:51:53 MapLoader.load(67)-->Loading define for name=dataSource
DEBUG 08:51:53 ComboIocLoader.load(161)-->Found IocObject(dataSource) in JsonLoader(paths=[ioc/])
DEBUG 08:51:53 NutIoc.get(209)--> >> Make...'dataSource'<>
DEBUG 08:51:53 DefaultMirrorFactory.getMirror(70)-->Load class com.alibaba.druid.pool.DruidDataSource without AOP
DEBUG 08:51:53 ScopeContext.save(64)-->Save object 'dataSource' to [app]
INFO 08:51:55 NutFilePool.<init>(23)-->Init file-pool by: C:\Users\Administrator/.nutz/tmp/dao/ [200000]
DEBUG 08:51:55 NutFilePool.<init>(37)-->file-pool.home: 'C:\Users\Administrator\.nutz\tmp\dao'
INFO 08:51:55 NutFilePool.<init>(66)-->file-pool.cursor: 0
DEBUG 08:51:55 Jdbcs.<clinit>(90)-->Jdbcs init complete
INFO 08:51:55 Jdbcs.getExpert(103)-->Get Connection from DataSource for JdbcExpert, if you lock at here, check your database server and configure
DEBUG 08:51:55 DaoSupport.setDataSource(189)-->select expert : org.nutz.dao.impl.jdbc.oracle.OracleJdbcExpert
DEBUG 08:51:55 DaoSupport$1.invoke(200)-->JDBC Driver --> 12.1.0.2.0
DEBUG 08:51:55 DaoSupport$1.invoke(201)-->JDBC Name --> Oracle JDBC driver
DEBUG 08:51:55 DaoSupport$1.invoke(203)-->JDBC URL --> jdbc:oracle:thin:@127.0.0.1:1522:orcl
DEBUG 08:51:55 DaoSupport.setDataSource(222)-->Database info --> ORACLE:[Oracle - Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options]
DEBUG 08:51:55 NutDaoExecutor.printSQL(388)-->SELECT * FROM sys_config
DEBUG 08:51:55 NutDaoExecutor.printSQL(388)-->SELECT COUNT(*) FROM sys_route
DEBUG 08:51:55 NutDaoExecutor.printSQL(388)-->SELECT * FROM sys_route WHERE disabled=?
| 1 |
|-------|
| false |
For example:> "SELECT * FROM sys_route WHERE disabled=false"
DEBUG 08:51:55 NutIoc.get(151)-->Get 'cacheManager'<class net.sf.ehcache.CacheManager>
DEBUG 08:51:55 NutIoc.get(177)--> >> Load definition name=cacheManager
DEBUG 08:51:55 MapLoader.load(67)-->Loading define for name=cacheManager
DEBUG 08:51:55 ComboIocLoader.load(161)-->Found IocObject(cacheManager) in JsonLoader(paths=[ioc/])
DEBUG 08:51:55 NutIoc.get(209)--> >> Make...'cacheManager'<class net.sf.ehcache.CacheManager>
DEBUG 08:51:55 DefaultMirrorFactory.getMirror(70)-->Load class net.sf.ehcache.CacheManager without AOP
DEBUG 08:51:55 ScopeContext.save(64)-->Save object 'cacheManager' to [app]
INFO 08:51:55 Setup.init(66)-->
_ _ _ _ _____ ______ ___ __
| \| | | | |_ _|_ /\ \ / / |/ /
| .` | |_| | | | / / \ \/\/ /| ' <
|_|\_|\___/ |_| /___| \_/\_/ |_|\_\
INFO 08:51:55 NutLoading.load(141)-->Nutz.Mvc[nutz] is up in 7219ms
INFO 08:51:55 NutFilter._init(117)-->exclusionsPrefix = ^(/assets/|/druid/|/upload/|/apidoc/)
[2017-06-27 08:51:55,941] Artifact nutz:war exploded: Artifact is deployed successfully
[2017-06-27 08:51:55,942] Artifact nutz:war exploded: Deploy took 23,639 milliseconds
DEBUG 08:52:22 UrlMappingImpl.get(101)-->Found mapping for [POST] path=/platform/login/doLogin : LoginAt.doLogin(LoginAt.java:132)
DEBUG 08:52:22 NutIoc.get(151)-->Get 'shiroUtil'<class com.nutz.util.ShiroUtil>
DEBUG 08:52:22 NutIoc.get(177)--> >> Load definition name=shiroUtil
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(shiroUtil) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 NutIoc.get(209)--> >> Make...'shiroUtil'<class com.nutz.util.ShiroUtil>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txSERIALIZABLE'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 ScopeContext.save(64)-->Save object 'shiroUtil' to [app]
DEBUG 08:52:22 NutIoc.get(151)-->Get 'dateUtil'<class com.nutz.util.DateUtil>
DEBUG 08:52:22 NutIoc.get(177)--> >> Load definition name=dateUtil
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(dateUtil) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 NutIoc.get(209)--> >> Make...'dateUtil'<class com.nutz.util.DateUtil>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txSERIALIZABLE'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 ScopeContext.save(64)-->Save object 'dateUtil' to [app]
DEBUG 08:52:22 NutIoc.get(151)-->Get 'loginAt'<class com.nutz.LoginAt>
DEBUG 08:52:22 NutIoc.get(177)--> >> Load definition name=loginAt
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(loginAt) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 NutIoc.get(209)--> >> Make...'loginAt'<class com.nutz.LoginAt>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txSERIALIZABLE'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 ScopeContext.save(64)-->Save object 'loginAt' to [app]
DEBUG 08:52:22 ReferTypeValue.get(64)-->name=userService not found, search for type=com.nutz.tiles.authority.service.SysUserService
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=log
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(log) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=txNONE
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(txNONE) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=cacheManager
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(cacheManager) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=$aop
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject($aop) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=txREPEATABLE_READ
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(txREPEATABLE_READ) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=dao
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(dao) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=txREAD_UNCOMMITTED
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(txREAD_UNCOMMITTED) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=txREAD_COMMITTED
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(txREAD_COMMITTED) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=tmpFilePool
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(tmpFilePool) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=txSERIALIZABLE
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(txSERIALIZABLE) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=dataSource
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(dataSource) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(contractRevokedAt) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(bankInfoAt) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(sysUserServiceImpl) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 NutIoc.get(151)-->Get 'sysUserServiceImpl'<interface com.nutz.tiles.authority.service.SysUserService>
DEBUG 08:52:22 NutIoc.get(177)--> >> Load definition name=sysUserServiceImpl
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(sysUserServiceImpl) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 NutIoc.get(209)--> >> Make...'sysUserServiceImpl'<interface com.nutz.tiles.authority.service.SysUserService>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txSERIALIZABLE'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 ScopeContext.save(64)-->Save object 'sysUserServiceImpl' to [app]
DEBUG 08:52:22 NutIoc.get(151)-->Get 'dao'<>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'dao'<>
DEBUG 08:52:22 EntityService.<init>(41)-->Get TypeParams for self : com.nutz.tiles.authority.entity.User
DEBUG 08:52:22 ReferTypeValue.get(64)-->name=sysMenuService not found, search for type=com.nutz.tiles.authority.service.SysMenuService
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=log
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(log) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=txNONE
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(txNONE) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=cacheManager
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(cacheManager) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=$aop
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject($aop) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=txREPEATABLE_READ
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(txREPEATABLE_READ) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=dao
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(dao) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=uploadFileContext
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(uploadFileContext) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=txREAD_UNCOMMITTED
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(txREAD_UNCOMMITTED) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=myUpload
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(myUpload) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=txREAD_COMMITTED
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(txREAD_COMMITTED) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=tmpFilePool
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(tmpFilePool) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=txSERIALIZABLE
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(txSERIALIZABLE) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 MapLoader.load(67)-->Loading define for name=dataSource
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(dataSource) in JsonLoader(paths=[ioc/])
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(sysRoleServiceImpl) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(systemService) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(homeAt) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(sysMenuServiceImpl) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 NutIoc.get(151)-->Get 'sysMenuServiceImpl'<interface com.nutz.tiles.authority.service.SysMenuService>
DEBUG 08:52:22 NutIoc.get(177)--> >> Load definition name=sysMenuServiceImpl
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(sysMenuServiceImpl) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 NutIoc.get(209)--> >> Make...'sysMenuServiceImpl'<interface com.nutz.tiles.authority.service.SysMenuService>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txSERIALIZABLE'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 ScopeContext.save(64)-->Save object 'sysMenuServiceImpl' to [app]
DEBUG 08:52:22 NutIoc.get(151)-->Get 'dao'<>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'dao'<>
DEBUG 08:52:22 EntityService.<init>(41)-->Get TypeParams for self : com.nutz.tiles.authority.entity.Authority
DEBUG 08:52:22 NutIoc.get(151)-->Get 'sLogService'<class com.nutz.slog.SLogService>
DEBUG 08:52:22 NutIoc.get(177)--> >> Load definition name=sLogService
DEBUG 08:52:22 ComboIocLoader.load(161)-->Found IocObject(sLogService) in AnnotationIocLoader(packages=[com.nutz])
DEBUG 08:52:22 NutIoc.get(209)--> >> Make...'sLogService'<class com.nutz.slog.SLogService>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txSERIALIZABLE'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 NutIoc.get(151)-->Get 'txREAD_COMMITTED'<interface org.nutz.aop.MethodInterceptor>
DEBUG 08:52:22 ScopeContext.save(64)-->Save object 'sLogService' to [app]
DEBUG 08:52:22 NutIoc.get(151)-->Get 'dao'<interface org.nutz.dao.Dao>
DEBUG 08:52:27 NutIoc.get(151)-->Get 'sysUserServiceImpl'<class com.nutz.tiles.authority.service.impl.SysUserServiceImpl>
DEBUG 08:52:27 NutDaoExecutor.printSQL(388)-->SELECT * FROM (SELECT T.*, ROWNUM RN FROM ( SELECT * FROM sys_user WHERE loginname=?) T WHERE ROWNUM <= 1) WHERE RN > 0
| 1 |
|----------|
| tj_admin |
For example:> "SELECT * FROM (SELECT T.*, ROWNUM RN FROM ( SELECT * FROM sys_user WHERE loginname='tj_admin') T WHERE ROWNUM <= 1) WHERE RN > 0 "
DEBUG 08:52:27 NutDaoExecutor.printSQL(388)-->SELECT * FROM sys_role WHERE id IN (SELECT roleId FROM sys_user_role WHERE userId='2eef3704c47b4b97a7e026b98cd442d6')
DEBUG 08:52:27 NutDaoExecutor.printSQL(388)-->SELECT * FROM sys_unit WHERE id IN (SELECT unitId FROM sys_user_unit WHERE userId='2eef3704c47b4b97a7e026b98cd442d6')
DEBUG 08:52:27 NutDaoExecutor.printSQL(388)-->SELECT * FROM sys_unit WHERE id IS NULL
DEBUG 08:52:27 NutDaoExecutor.printSQL(388)-->select distinct a.* from sys_menu a,sys_role_menu b where a.id=b.menuId and b.roleId in(select c.roleId from sys_user_role c,sys_role d where c.roleId=d.id and c.userId=? and d.disabled='0') and a.disabled='0' and a.isShow='1' and a.type='menu' order by a.location ASC,a.path asc
| 1 |
|----------------------------------|
| 2eef3704c47b4b97a7e026b98cd442d6 |
For example:> "select distinct a.* from sys_menu a,sys_role_menu b where a.id=b.menuId and b.roleId in(select c.roleId from sys_user_role c,sys_role d where c.roleId=d.id and c.userId='2eef3704c47b4b97a7e026b98cd442d6' and d.disabled='0') and a.disabled='0' and a.isShow='1' and a.type='menu' order by a.location ASC,a.path asc"
DEBUG 08:52:27 NutDaoExecutor.printSQL(388)-->UPDATE sys_user SET loginIp=?,loginAt=?,loginCount=?,isOnline=? WHERE id=?
| 1 | 2 | 3 | 4 | 5 |
|------|---------------|----|------|----------------------------------|
| NULL | 1498524747510 | 69 | true | 2eef3704c47b4b97a7e026b98cd442d6 |
For example:> "UPDATE sys_user SET loginIp='NULL',loginAt=1498524747510,loginCount=69,isOnline=true WHERE id='2eef3704c47b4b97a7e026b98cd442d6'"
DEBUG 08:52:28 NutDaoExecutor.printSQL(388)-->INSERT INTO sys_log(username,type,tag,src,ip,msg,opBy,opAt,delFlag) VALUES(?,?,?,?,?,?,?,?,?)
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|-------|------|------|-----------------------------|-----------------|---------|----------------------------------|------------|------|
| 管理员 | info | 用户登陆 | com.nutz.LoginAt#doLogin | 0:0:0:0:0:0:0:1 | 成功登录系统! | 2eef3704c47b4b97a7e026b98cd442d6 | 1498524747 | NULL |
For example:> "INSERT INTO sys_log(username,type,tag,src,ip,msg,opBy,opAt,delFlag) VALUES('管理员','info','用户登陆','com.nutz.LoginAt#doLogin','0:0:0:0:0:0:0:1','成功登录系统!','2eef3704c47b4b97a7e026b98cd442d6',1498524747,'NULL') "
DEBUG 08:52:28 UrlMappingImpl.get(101)-->Found mapping for [GET] path=/platform/login/homepage : LoginAt.homepage(LoginAt.java:181)
DEBUG 08:52:28 NutIoc.get(151)-->Get 'shiroUtil'<class com.nutz.util.ShiroUtil>
DEBUG 08:52:28 NutIoc.get(151)-->Get 'dateUtil'<class com.nutz.util.DateUtil>
DEBUG 08:52:28 NutIoc.get(151)-->Get 'loginAt'<class com.nutz.LoginAt>
方法这么写没有问题吧?
@IocBean // 声明为Ioc容器中的一个Bean
@At("/platform/login") // 整个模块的路径前缀
@Ok("json:{locked:'password|createAt',ignoreNull:true}") // 忽略password和createAt属性,忽略空属性的json输出
public class LoginAt {
private static final Log log = Logs.get();
@Inject
private SysUserService userService;
@Inject
private SLogService sLogService;
/**
* 登陆验证
*
* @param token
* @param req
* @return
*/
@At("/doLogin")
@Ok("json")
@Filters(@By(type = PlatformAuthenticationFilter.class))
public Object doLogin(@Attr("loginToken") AuthenticationToken token, HttpServletRequest req, HttpSession session) {
int errCount = 0;
try {
//输错三次显示验证码窗口
errCount = NumberUtils.toInt(Strings.sNull(SecurityUtils.getSubject().getSession(true).getAttribute("errCount")));
Subject subject = SecurityUtils.getSubject();
ThreadContext.bind(subject);
subject.login(token);
User user = (User) subject.getPrincipal();
int count = user.getLoginCount() == null ? 0 : user.getLoginCount();
userService.update(Chain.make("loginIp", user.getLoginIp()).add("loginAt", System.currentTimeMillis())
.add("loginCount", count + 1).add("isOnline", true)
, Cnd.where("id", "=", user.getId()));
Sys_log sysLog = new Sys_log();
sysLog.setType("info");
sysLog.setTag("用户登陆");
sysLog.setSrc(this.getClass().getName()+"#doLogin");
sysLog.setMsg("成功登录系统!");
sysLog.setIp(StringUtil.getRemoteAddr());
sysLog.setOpBy(user.getId());
sysLog.setOpAt((int) (System.currentTimeMillis() / 1000));
sysLog.setUsername(user.getUsername());
sLogService.async(sysLog);
return Result.success("login.success");
} catch (CaptchaIncorrectException e) {
//自定义的验证码错误异常
return Result.error(1, "login.error.captcha");
} catch (CaptchaEmptyException e) {
//验证码为空
return Result.error(2, "login.error.captcha");
} catch (LockedAccountException e) {
return Result.error(3, "login.error.locked");
} catch (UnknownAccountException e) {
errCount++;
SecurityUtils.getSubject().getSession(true).setAttribute("errCount", errCount);
return Result.error(4, "login.error.user");
} catch (AuthenticationException e) {
errCount++;
SecurityUtils.getSubject().getSession(true).setAttribute("errCount", errCount);
return Result.error(5, "login.error.user");
} catch (Exception e) {
errCount++;
SecurityUtils.getSubject().getSession(true).setAttribute("errCount", errCount);
return Result.error(6, "login.error.system");
}
}
@At("/homepage")
@RequiresAuthentication
@Ok("json")
public void homepage() {
System.out.println();
}
}
homepage方法除了@Ok不对之外, 没啥问题.
改成下面的代码, 看看显示啥, 不加@RequiresAuthentication
@At("/homepage")
@Ok("raw")
@Fail("http:500")
public Object homepage() {
return SecurityUtils.getSubject().isAuthenticated();
}
@wendal 不好意思 ,还有个问题,就是在前台我可以用下面这种方式直接取到数据吗?
<ul class="nav" id="side-menu">
<c:forEach items="${shiro.getPrincipalProperty('firstMenus')}" var="menu" >
<li>
<a href="#">
<i class="fa fa-circle-thin"></i>
<span class="nav-label">${firstMenu.name}</span>
<span class="fa arrow"></span>
</a>
</li>
</c:forEach>
</ul>