use of com.qlangtech.tis.runtime.module.action.BasicModule.Rundata in project tis by qlangtech.
the class AppDomainSelectedCheckValve method doIntercept.
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
final ActionProxy proxy = invocation.getProxy();
if ("control".equals(StringUtils.split(proxy.getNamespace(), "#")[1])) {
return invocation.invoke();
}
final Rundata rundata = BasicModule.getRundataInstance();
AppDomainInfo domain = CheckAppDomainExistValve.getAppDomain(daoContextGetter.get());
final String actionTarget = getActionTarget(proxy);
if (!include_urls.containsKey(actionTarget)) {
// 不在校验范围之内
return invocation.invoke();
}
final String specialTarget = specialForward.get(actionTarget);
boolean sensitiveRuntime = true;
try {
if (StringUtils.isNotBlank(specialTarget)) {
sensitiveRuntime = "true".equalsIgnoreCase(StringUtils.substringAfter(specialTarget, ","));
}
} catch (Throwable e) {
}
if (isInvalidDomain((BasicModule) proxy.getAction(), domain, sensitiveRuntime)) {
if (StringUtils.isNotBlank(specialTarget)) {
rundata.forwardTo(StringUtils.substringBefore(specialTarget, ","));
} else {
rundata.forwardTo("appdomainhasnotselected");
return Action.NONE;
}
// context.breakPipeline(0);
return invocation.invoke();
// return;
}
Collection<RunEnvironment> runtime = include_urls.get(actionTarget);
if (runtime.contains(domain.getRunEnvironment())) {
// 跳转到该应用是不能被使用的,不支持 该环境的应用
rundata.forwardTo("environmentunuseable");
}
return invocation.invoke();
}
use of com.qlangtech.tis.runtime.module.action.BasicModule.Rundata in project tis by qlangtech.
the class AuthorityCheckAdvice method doIntercept.
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
BasicModule action = (BasicModule) invocation.getAction();
ActionProxy proxy = invocation.getProxy();
String namespace = proxy.getNamespace();
final Method method = action.getExecuteMethod();
Func func = method.getAnnotation(Func.class);
final Rundata rundata = BasicModule.getRundataInstance();
// }
final IUser user = UserUtils.getUser(ServletActionContext.getRequest(), daoContextGetter.get());
if (!user.hasLogin() && !(action instanceof LoginAction || StringUtils.startsWith(namespace, "/config"))) {
rundata.redirectTo("/runtime/login.htm");
return Action.NONE;
}
action.setAuthtoken(user);
if (func == null) {
log.debug("target:" + proxy.getActionName() + ",method:" + method.getName() + " has not set FUNC");
return invocation.invoke();
}
// }
return invocation.invoke();
}
Aggregations