diff --git a/.gitignore b/.gitignore
index 154724e..838e520 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,5 @@ out
gen
target
.jar
-.class
\ No newline at end of file
+.class
+.md
\ No newline at end of file
diff --git a/modules/i3plus-core-api/pom.xml b/modules/i3plus-core-api/pom.xml
index 5b737d8..d2a1ac2 100644
--- a/modules/i3plus-core-api/pom.xml
+++ b/modules/i3plus-core-api/pom.xml
@@ -25,6 +25,12 @@
org.apache.shiro
shiro-core
+
+ i3plus.pojo
+ i3plus-pojo-mes
+ 1.0-SNAPSHOT
+ compile
+
\ No newline at end of file
diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IDataSimpleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IDataSimpleService.java
index 7d692eb..0a7cab1 100644
--- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IDataSimpleService.java
+++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IDataSimpleService.java
@@ -1,6 +1,6 @@
package cn.estsh.i3plus.core.api.iservice.base;
-import cn.estsh.i3plus.pojo.factory.bean.MachineFactory;
+import cn.estsh.i3plus.pojo.mes.MachineFactory;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemUserService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java
similarity index 54%
rename from modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemUserService.java
rename to modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java
index 7439f18..f79a54c 100644
--- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemUserService.java
+++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java
@@ -1,23 +1,20 @@
-package cn.estsh.i3plus.core.api.iservice.busi;
+package cn.estsh.i3plus.core.api.iservice.base;
-import cn.estsh.i3plus.core.api.token.AdminToken;
-import cn.estsh.i3plus.core.api.token.SaAdminToken;
-import cn.estsh.i3plus.core.api.token.UserToken;
-import cn.estsh.i3plus.pojo.model.common.Pager;
+import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken;
+import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken;
+import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
-import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
-import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
import java.util.List;
/**
- * @Description : 用户功能方法,包含权限、角色等
+ * @Description : 用户登陆方法,平台统一登陆
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 16:59
* @Modify:
**/
-public interface ISystemUserService {
+public interface ISystemLoginService {
SessionUser queryUserLogin(String loginName, String s, String languageCode);
diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java
new file mode 100644
index 0000000..e46147a
--- /dev/null
+++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java
@@ -0,0 +1,15 @@
+package cn.estsh.i3plus.core.api.iservice.busi;
+
+import cn.estsh.i3plus.pojo.platform.bean.Department;
+
+/**
+ * @Description : 通用树查询服务
+ * @Reference :
+ * @Author : wei.peng
+ * @Date : 2018-10-24 11:16
+ * @Modify :
+ **/
+public interface ICoreTreeService {
+
+ Department getDepartmentTreeByParentId(long depParentId);
+}
diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java
index b353ea2..4286db0 100644
--- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java
+++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java
@@ -1,9 +1,9 @@
package cn.estsh.i3plus.core.api.iservice.busi;
-import cn.estsh.i3plus.pojo.model.common.Pager;
+import cn.estsh.i3plus.pojo.base.bean.ListPager;
+import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
-import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -16,7 +16,7 @@ import java.util.List;
**/
public interface ISystemResourceService {
- SysLocaleLanguage saveSysLocaleLanguage(SysLocaleLanguage lang);
+ SysLocaleLanguage insertSysLocaleLanguage(SysLocaleLanguage lang);
SysLocaleLanguage updateSysLocaleLanguage(SysLocaleLanguage lang);
@@ -24,15 +24,17 @@ public interface ISystemResourceService {
List listSysLocaleLanguage(SysLocaleLanguage lang);
- List listSysLocaleLanguageByPager(SysLocaleLanguage lang,Pager pager);
+ ListPager listSysLocaleLanguageByPager(SysLocaleLanguage lang, Pager pager);
- SysLocaleResource saveSysLocaleResource(SysLocaleResource res);
+ SysLocaleResource insertSysLocaleResource(SysLocaleResource res);
SysLocaleResource updateSysLocaleResource(SysLocaleResource res);
void deleteSysLocaleResourceById(long id);
- List listSysLocaleResourceByPager(SysLocaleResource res,Pager pager);
+ void deleteSysLocaleResourceByIds(String[] ids);
+
+ ListPager listSysLocaleResourceByPager(SysLocaleResource res,Pager pager);
List listSysLocaleResource(SysLocaleResource res);
diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/AdminToken.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/AdminToken.java
deleted file mode 100644
index 18b36da..0000000
--- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/AdminToken.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package cn.estsh.i3plus.core.api.token;
-
-/**
- * @Description : 管理员token
- * @Reference :
- * @Author : alwaysfrin
- * @CreateDate : 2018-10-13 18:00
- * @Modify:
- **/
-public class AdminToken extends BaseToken {
-
- public AdminToken(String loginName, String loginPwd, String languageCode) {
- super(loginName, loginPwd, languageCode);
- }
-}
diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/BaseToken.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/BaseToken.java
deleted file mode 100644
index 35f057f..0000000
--- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/BaseToken.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package cn.estsh.i3plus.core.api.token;
-
-import org.apache.shiro.authc.AuthenticationToken;
-
-/**
- * @Description : 基本验证类
- * @Reference :
- * @Author : alwaysfrin
- * @CreateDate : 2018-10-13 18:00
- * @Modify:
- **/
-public class BaseToken implements AuthenticationToken {
-
- private String loginName;
- private String loginPwd;
- private String languageCode;
-
- public BaseToken(String loginName, String loginPwd, String languageCode) {
- this.loginName = loginName;
- this.loginPwd = loginPwd;
- this.languageCode = languageCode;
- }
-
- //身份
- @Override
- public Object getPrincipal() {
- return this.loginName;
- }
-
- //验证
- @Override
- public Object getCredentials() {
- return this.loginPwd;
- }
-
- public String getLoginName() {
- return loginName;
- }
-
- public void setLoginName(String loginName) {
- this.loginName = loginName;
- }
-
- public String getLoginPwd() {
- return loginPwd;
- }
-
- public void setLoginPwd(String loginPwd) {
- this.loginPwd = loginPwd;
- }
-
- public String getLanguageCode() {
- return languageCode;
- }
-
- public void setLanguageCode(String languageCode) {
- this.languageCode = languageCode;
- }
-}
diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/SaAdminToken.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/SaAdminToken.java
deleted file mode 100644
index c850f1f..0000000
--- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/SaAdminToken.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package cn.estsh.i3plus.core.api.token;
-
-/**
- * @Description : 超级管理员token
- * @Reference :
- * @Author : alwaysfrin
- * @CreateDate : 2018-10-13 18:00
- * @Modify:
- **/
-public class SaAdminToken extends BaseToken {
-
- public SaAdminToken(String loginName, String loginPwd, String languageCode) {
- super(loginName, loginPwd, languageCode);
- }
-}
diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/UserToken.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/UserToken.java
deleted file mode 100644
index 89cc732..0000000
--- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/UserToken.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package cn.estsh.i3plus.core.api.token;
-
-/**
- * @Description : 普通用户token
- * @Reference :
- * @Author : alwaysfrin
- * @CreateDate : 2018-10-13 18:00
- * @Modify:
- **/
-public class UserToken extends BaseToken {
-
- public UserToken(String loginName, String loginPwd, String languageCode) {
- super(loginName, loginPwd, languageCode);
- }
-}
diff --git a/modules/i3plus-core-apiservice/pom.xml b/modules/i3plus-core-apiservice/pom.xml
index 0e3d45b..4dfbc41 100644
--- a/modules/i3plus-core-apiservice/pom.xml
+++ b/modules/i3plus-core-apiservice/pom.xml
@@ -14,6 +14,12 @@
jar
+
+
+ i3plus.pojo
+ i3plus-pojo-model
+
+
i3plus.core
@@ -60,6 +66,10 @@
org.apache.shiro
shiro-web
+
+ org.apache.shiro
+ shiro-ehcache
+
@@ -72,6 +82,12 @@
net.sf.ehcache
ehcache-core
+
+ i3plus.pojo
+ i3plus-pojo-mes
+ 1.0-SNAPSHOT
+ compile
+
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/AuthUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/AuthUtil.java
deleted file mode 100644
index 06c163f..0000000
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/AuthUtil.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package cn.estsh.i3plus.core.apiservice.auth;
-
-import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
-import cn.estsh.i3plus.platform.common.util.CommonConstWords;
-import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
-import cn.estsh.impp.framework.boot.util.ImppRedis;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.authc.AuthenticationToken;
-import org.apache.shiro.session.Session;
-import org.apache.shiro.subject.Subject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * @Description : 授权会话工具类
- * @Reference :
- * @Author : alwaysfrin
- * @CreateDate : 2018-10-13 13:21
- * @Modify:
- **/
-public class AuthUtil {
- public static final Logger LOGGER = LoggerFactory.getLogger(AuthUtil.class);
-
- /**
- * 缓存
- */
- @Resource(name="redisSession")
- private ImppRedis redisSession;
-
- //登陆,保存会话对象
- public static SessionUser login(AuthenticationToken token){
- Subject subject = SecurityUtils.getSubject();
- subject.login(token);
-
- SessionUser sessionUser = (SessionUser) subject.getPrincipal();
- //使用了redis,此处不需要防止
- if(sessionUser != null){
- //userType为CommonEnumUtil.USER_TYPE.xxx.getCode()
- setSessionUser(sessionUser);
- }
-
- return sessionUser;
- }
-
- /**
- * 退出,移除会话中对象
- */
- public static void logout(){
- Session session = SecurityUtils.getSubject().getSession(false);
- if(session != null) {
- session.removeAttribute(CommonConstWords.SESSION_USER);
- session.touch();
- session.stop();
- }
- }
-
- /**
- * 保存会话中用户
- * @param user
- * @return
- */
- public static void setSessionUser(SessionUser user){
- SecurityUtils.getSubject().getSession(true).setAttribute(CommonConstWords.SESSION_USER,user);
- }
- /**
- * 获取会话中用户
- * @return
- */
- public static SessionUser getSessionUser(){
- Session session = SecurityUtils.getSubject().getSession(false);
- if(session != null){
- return (SessionUser) session.getAttribute(CommonConstWords.SESSION_USER);
- }else{
- return null;
- }
- }
-
- /**
- * 保存会话中对象
- * @param key 键
- * @param obj 值
- * @return
- */
- public static void setSessionObject(String key,Object obj){
- SecurityUtils.getSubject().getSession(true).setAttribute(key,obj);
- }
-
- /**
- * 获取会话中对象
- * @param key
- * @return
- */
- public static Object getSessionAttribute(String key){
- Session session = SecurityUtils.getSubject().getSession(false);
- if(session != null){
- return (Object) session.getAttribute(key);
- }else{
- return null;
- }
- }
-}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java
new file mode 100644
index 0000000..5f98279
--- /dev/null
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java
@@ -0,0 +1,200 @@
+package cn.estsh.i3plus.core.apiservice.auth;
+
+import cn.estsh.i3plus.core.apiservice.auth.realm.AdminAuthRealm;
+import cn.estsh.i3plus.core.apiservice.auth.realm.DefaultModularRealm;
+import cn.estsh.i3plus.core.apiservice.auth.realm.SaAuthRealm;
+import cn.estsh.i3plus.core.apiservice.auth.realm.UserAuthRealm;
+import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
+import cn.estsh.impp.framework.boot.auth.filter.AdminFilter;
+import cn.estsh.impp.framework.boot.auth.filter.SaAdminFilter;
+import cn.estsh.impp.framework.boot.auth.filter.UserFilter;
+import cn.estsh.impp.framework.boot.configuration.RedisConfig;
+import org.apache.shiro.authc.pam.ModularRealmAuthenticator;
+import org.apache.shiro.cache.CacheManager;
+import org.apache.shiro.realm.Realm;
+import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
+import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+import org.apache.shiro.mgt.SecurityManager;
+import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.annotation.Resource;
+import javax.servlet.Filter;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @Description : shiro权限配置
+ * @Reference :
+ * @Author : alwaysfrin
+ * @CreateDate : 2018-10-13 18:25
+ * @Modify:
+ **/
+@Configuration
+@AutoConfigureAfter(RedisConfig.class) //2类配置,延后加载
+public class ShiroAuthConfiguration {
+ public static final Logger LOGGER = LoggerFactory.getLogger(ShiroAuthConfiguration.class);
+
+ @Value("${filter.shiro.admin.loginuri}")
+ private String adminLoginUri;
+
+ @Value("${filter.shiro.admin.filteruri}")
+ private String adminFilterUri;
+
+ @Value("${filter.shiro.saadmin.loginuri}")
+ private String saAdminLoginUri;
+
+ @Value("${filter.shiro.saadmin.filteruri}")
+ private String saAdminFilterUri;
+
+ @Value("${filter.shiro.user.loginuri}")
+ private String userLoginUri;
+
+ @Value("${filter.shiro.user.filteruri}")
+ private String userFilterUri;
+
+ //平台控制缓存
+ @Resource(name = "imppSessionEhCacheManager")
+ private CacheManager getEhCacheManage;
+
+ //平台控制会话
+ @Resource(name = "imppSessionManager")
+ private DefaultWebSessionManager getSessionManage;
+
+ @Bean
+ public AdminAuthRealm adminAuthRealm(){
+ return new AdminAuthRealm();
+ }
+
+ @Bean
+ public SaAuthRealm saAuthRealm(){
+ return new SaAuthRealm();
+ }
+
+ @Bean
+ public UserAuthRealm userAuthRealm(){
+ return new UserAuthRealm();
+ }
+
+ public Map supportRealmMap(){
+ //支持的授权规则
+ Map realms = new HashMap();
+ realms.put(CommonEnumUtil.USER_TYPE.USER.getCode(),userAuthRealm());
+ realms.put(CommonEnumUtil.USER_TYPE.ADMIN.getCode(),adminAuthRealm());
+ realms.put(CommonEnumUtil.USER_TYPE.SA.getCode(),saAuthRealm());
+
+ return realms;
+ }
+
+ @Bean
+ public ModularRealmAuthenticator modularRealmAuthenticator(){
+ return new DefaultModularRealm(supportRealmMap());
+ }
+
+ @Bean
+ public SecurityManager securityManager(){
+ LOGGER.info("【app-shiro-加载securityManager】");
+ DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
+ securityManager.setAuthenticator(modularRealmAuthenticator());
+ securityManager.setRealms(supportRealmMap().values());
+ securityManager.setCacheManager(getEhCacheManage); //缓存管理
+ securityManager.setSessionManager(getSessionManage); //会话管理
+ //securityManager.setRememberMeManager(getRememberManager());
+ return securityManager;
+ }
+
+ @Bean
+ public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
+ ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
+ factoryBean.setSecurityManager(securityManager);
+
+ Map filterMap = new HashMap();
+ filterMap.put("user_filter", new UserFilter());
+ filterMap.put("admin_filter", new AdminFilter());
+ filterMap.put("saadmin_filter", new SaAdminFilter());
+ factoryBean.setFilters(filterMap);
+
+ Map filterChain = new LinkedHashMap();
+ //不需要过滤的路径,直接通过
+ filterChain.put(userLoginUri, "anon");
+ filterChain.put(adminLoginUri, "anon");
+ filterChain.put(saAdminLoginUri, "anon");
+
+ //需要过滤的路径
+ filterChain.put(userFilterUri, "user_filter");
+ filterChain.put(adminFilterUri, "admin_filter");
+ filterChain.put(saAdminFilterUri, "saadmin_filter");
+
+ factoryBean.setFilterChainDefinitionMap(filterChain);
+
+ LOGGER.info("【app-shiro授权过滤】加载完成...");
+ return factoryBean;
+ }
+
+ /** 缓存等配置在impp平台中设置 **/
+// /**
+// * 缓存管理
+// * @return
+// */
+// @Bean(name = "ehCacheManager")
+// public CacheManager getEhCacheManage() {
+// LOGGER.info("【shiro-加载缓存cacheManager】");
+// EhCacheManager em = new EhCacheManager();
+// em.setCacheManagerConfigFile("classpath:cache_session.xml");
+// return em;
+// }
+//
+// @Bean(name = "sessionManager")
+// public DefaultWebSessionManager getSessionManage() {
+// LOGGER.info("【shiro-加载sessionManager】");
+// DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
+// sessionManager.setSessionValidationScheduler(getExecutorServiceSessionValidationScheduler());
+// sessionManager.setSessionValidationSchedulerEnabled(true);
+// sessionManager.setDeleteInvalidSessions(true);
+// sessionManager.setSessionIdCookieEnabled(true);
+// sessionManager.setSessionIdCookie(getSessionIdCookie());
+// sessionManager.setSessionDAO(getShiroSessionRedisDaoImpl());
+// sessionManager.setGlobalSessionTimeout(30 * 60 * 1000); //30分钟有效期(以sessionDao中的有效时间为准)
+//
+// // 可以添加session 创建、删除的监听器
+// return sessionManager;
+// }
+//
+// @Bean
+// public ShiroSessionRedisDaoImpl getShiroSessionRedisDaoImpl(){
+// LOGGER.info("【shiro-加载缓存redisSessionManager】");
+// ShiroSessionRedisDaoImpl shiroSessionRedisDao = new ShiroSessionRedisDaoImpl();
+//
+// LOGGER.info("【shiro-加载缓存cacheManager】");
+// shiroSessionRedisDao.setLocalCacheManager(getEhCacheManage() );
+// return shiroSessionRedisDao;
+// }
+//
+// /**
+// * 授权验证监听任务
+// * @return
+// */
+// @Bean(name = "sessionValidationScheduler")
+// public ExecutorServiceSessionValidationScheduler getExecutorServiceSessionValidationScheduler() {
+// LOGGER.info("【shiro-加载sessionValidationScheduler】");
+// ExecutorServiceSessionValidationScheduler scheduler = new ExecutorServiceSessionValidationScheduler();
+// scheduler.setInterval(3 * 60 * 1000); //每3分钟执行一次验证
+// return scheduler;
+// }
+//
+// @Bean(name = "sessionIdCookie")
+// public SimpleCookie getSessionIdCookie() {
+// LOGGER.info("【shiro-加载sessionIdCookie】");
+// SimpleCookie cookie = new SimpleCookie("sid");
+// cookie.setHttpOnly(true);
+// cookie.setMaxAge(-1);
+//
+// return cookie;
+// }
+}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroSessionRedisDaoImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroSessionRedisDaoImpl.java
deleted file mode 100644
index cd9fc23..0000000
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroSessionRedisDaoImpl.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package cn.estsh.i3plus.core.apiservice.auth;
-
-import cn.estsh.i3plus.platform.common.util.CommonConstWords;
-import cn.estsh.impp.framework.boot.util.ImppRedis;
-import com.alibaba.fastjson.JSONObject;
-import org.apache.shiro.cache.Cache;
-import org.apache.shiro.cache.CacheManager;
-import org.apache.shiro.cache.ehcache.EhCacheManager;
-import org.apache.shiro.session.Session;
-import org.apache.shiro.session.UnknownSessionException;
-import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import javax.annotation.Resource;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * @Description : redisshiro保存会话
- * @Reference : 使用了ehcache做本地缓存,避免频繁读写redis,进行序列化和反序列化。
- * 但需要注意,本地缓存在微服的情况下可能会出现脏数据。建议在登陆时一次性放入,后续若修改则需要同时更新缓存。
- * @Author : alwaysfrin
- * @CreateDate : 2018-10-16 10:28
- * @Modify:
- **/
-public class ShiroSessionRedisDaoImpl extends EnterpriseCacheSessionDAO {
- public static final Logger LOGGER = LoggerFactory.getLogger(ShiroSessionRedisDaoImpl.class);
- public static final int EXPIRE_TIME = 30 * 60; //会话保存时间 单位秒
-
- public static final String LOCAL_SESSION_CACHE = "redis-shiro-session-cache";
-
- /**
- * 缓存
- */
- @Resource(name="redisSession")
- private ImppRedis redisSession;
-
- //本地缓存
- private Cache localCache;
-
- private CacheManager localCacheManager;
- public void setLocalCacheManager(CacheManager localCacheManager) {
- this.localCacheManager = localCacheManager;
- this.localCache = localCacheManager.getCache(LOCAL_SESSION_CACHE);
- }
-
- @Override
- public void update(Session session) throws UnknownSessionException {
- LOGGER.info("【更新缓存 : {}】{}",session,session.getId());
- this.saveSession(session);
- }
-
- private void saveSession(Session session) {
- if (session == null) {
- LOGGER.error("【要存入的session为空】");
- }else {
- //LOGGER.info("【保存session至redis,id:{}】{}",session.getId(),session);
- //设置会话过期时间
- redisSession.putObject(session.getId().toString(),session,EXPIRE_TIME);
-
- //放入本地缓存
- localCache.put(session.getId(),session);
- LOGGER.info("【保存session至redis,id:{}】{}",session.getId(),session);
- }
- }
-
- @Override
- protected Session getCachedSession(Serializable sessionId) {
- //先从本地获取,若本地没有,再从redis中获取
- Session s = (Session) localCache.get(sessionId);
- if(s == null) {
- s = (Session) redisSession.getObject(sessionId.toString());
-
- LOGGER.info("【本地缓存不存在,redis获取:{}】{}", sessionId, s);
- if(s != null) {
- //放入本地缓存
- localCache.put(sessionId, s);
- LOGGER.info("【放入本地缓存:{}】{}", sessionId, s);
- }
- }else{
- //LOGGER.info("【本地缓存获取:{}】{}", sessionId, s);
- }
-
- return s;
- }
-
- @Override
- public void delete(Session session) {
- if (session == null) {
- }else {
- LOGGER.error("【删除session-redis:{}】",session.getId());
- //redis删除
- redisSession.deleteKey(session.getId().toString());
- //本地缓存删除
- localCache.remove(session.getId());
- }
- }
-
- @Override
- protected Serializable doCreate(Session session) {
- LOGGER.info("【doCreate并保存:{}】",session);
- Serializable sessionId = this.generateSessionId(session);
- this.assignSessionId(session, sessionId);
- this.saveSession(session);
-
- return sessionId;
- }
-
- @Override
- protected Session doReadSession(Serializable sessionId) {
- Session session = null;
- if(sessionId != null) {
- //先从本地缓存读取
- Object obj = localCache.get(sessionId);
-
- if(obj == null) {
- LOGGER.info("【doReadSession-本地缓存不存在不存在:{}】", sessionId);
- obj = redisSession.getObject(sessionId.toString());
- if (obj == null) {
- LOGGER.info("【doReadSession不存在:{}】", sessionId);
- } else {
- LOGGER.info("【doReadSession:{}】", sessionId);
- session = (Session) obj;
- }
- }else{
- LOGGER.info("【doReadSession-本地缓存获取:{}】", sessionId);
- session = (Session) obj;
- }
- }
-
- return session;
- }
-
- /**
- * 获取存活的sessions
- */
- @Override
- public Collection getActiveSessions() {
- Set sessions = new HashSet<>();
- Set keys = redisSession.getKeysSet("*");
- LOGGER.info("【所有活动的key:{}】",keys.size());
- for(String key:keys){
- sessions.add((Session)redisSession.getObject(key));
- }
- return sessions;
- }
-}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/AdminFilter.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/AdminFilter.java
deleted file mode 100644
index 28dc938..0000000
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/AdminFilter.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package cn.estsh.i3plus.core.apiservice.auth.filter;
-
-import cn.estsh.i3plus.core.apiservice.auth.AuthUtil;
-import cn.estsh.i3plus.core.apiservice.configuration.ShiroAuthConfiguration;
-import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
-import cn.estsh.i3plus.platform.common.util.CommonConstWords;
-import cn.estsh.i3plus.pojo.model.busi.ResultBean;
-import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
-import com.alibaba.fastjson.JSONObject;
-import org.apache.shiro.web.filter.AccessControlFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.PrintWriter;
-
-/**
- * @Description : 管理员授权路径过滤
- * @Reference :
- * @Author : alwaysfrin
- * @CreateDate : 2018-10-13 19:17
- * @Modify:
- **/
-public class AdminFilter extends AccessControlFilter {
- public static final Logger LOGGER = LoggerFactory.getLogger(AdminFilter.class);
-
- @Override
- protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception {
- SessionUser sessionUser = AuthUtil.getSessionUser();
- if(sessionUser != null && CommonEnumUtil.USER_TYPE.ADMIN.getCode().equals(sessionUser.getUserType())){
- return true;
- }else{
- return false;
- }
- }
-
- @Override
- protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
- if (response instanceof HttpServletResponse) {
- HttpServletResponse httpServletResponse = (HttpServletResponse)response;
-
- httpServletResponse.setHeader("Content-Type", "application/json;charset=UTF-8");
- httpServletResponse.setContentType("application/json;charset=UTF-8");
- PrintWriter out = null;
-
- try {
- ResultBean result = new ResultBean();
- result.setSuccess(false);
- result.setErrorMsg("未登录");
- result.setCode("need-login");
- result.setUrl(ShiroAuthConfiguration.ADMIN_LOGIN_URI);
-
- out = response.getWriter();
- out.print(JSONObject.toJSONString(result));
- out.flush();
- } catch (IOException var11) {
- LOGGER.error(var11.getMessage(), var11);
- } finally {
- if (out != null) {
- out.close();
- }
-
- }
- }
-
- return false;
- }
-}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/SaAdminFilter.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/SaAdminFilter.java
deleted file mode 100644
index 89c521d..0000000
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/SaAdminFilter.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package cn.estsh.i3plus.core.apiservice.auth.filter;
-
-import cn.estsh.i3plus.core.apiservice.auth.AuthUtil;
-import cn.estsh.i3plus.core.apiservice.configuration.ShiroAuthConfiguration;
-import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
-import cn.estsh.i3plus.platform.common.util.CommonConstWords;
-import cn.estsh.i3plus.pojo.model.busi.ResultBean;
-import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
-import com.alibaba.fastjson.JSONObject;
-import org.apache.shiro.web.filter.AccessControlFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.PrintWriter;
-
-/**
- * @Description : 超级管理员授权路径过滤
- * @Reference :
- * @Author : alwaysfrin
- * @CreateDate : 2018-10-13 19:17
- * @Modify:
- **/
-public class SaAdminFilter extends AccessControlFilter {
- public static final Logger LOGGER = LoggerFactory.getLogger(SaAdminFilter.class);
-
- @Override
- protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception {
- SessionUser sessionUser = AuthUtil.getSessionUser();
- if(sessionUser != null && CommonEnumUtil.USER_TYPE.SA.getCode().equals(sessionUser.getUserType())){
- return true;
- }else{
- return false;
- }
- }
-
- @Override
- protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
- if (response instanceof HttpServletResponse) {
- HttpServletResponse httpServletResponse = (HttpServletResponse)response;
-
- httpServletResponse.setHeader("Content-Type", "application/json;charset=UTF-8");
- httpServletResponse.setContentType("application/json;charset=UTF-8");
- PrintWriter out = null;
-
- try {
- ResultBean result = new ResultBean();
- result.setSuccess(false);
- result.setErrorMsg("未登录");
- result.setCode("need-login");
- result.setUrl(ShiroAuthConfiguration.SAADMIN_LOGIN_URI);
-
- out = response.getWriter();
- out.print(JSONObject.toJSONString(result));
- out.flush();
- } catch (IOException var11) {
- LOGGER.error(var11.getMessage(), var11);
- } finally {
- if (out != null) {
- out.close();
- }
-
- }
- }
-
- return false;
- }
-}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/UserFilter.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/UserFilter.java
deleted file mode 100644
index 74560c1..0000000
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/UserFilter.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package cn.estsh.i3plus.core.apiservice.auth.filter;
-
-import cn.estsh.i3plus.core.apiservice.auth.AuthUtil;
-import cn.estsh.i3plus.core.apiservice.configuration.ShiroAuthConfiguration;
-import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
-import cn.estsh.i3plus.platform.common.util.CommonConstWords;
-import cn.estsh.i3plus.pojo.model.busi.ResultBean;
-import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
-import com.alibaba.fastjson.JSONObject;
-import org.apache.shiro.web.filter.AccessControlFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.PrintWriter;
-
-/**
- * @Description : 用户授权路径过滤
- * @Reference :
- * @Author : alwaysfrin
- * @CreateDate : 2018-10-13 19:17
- * @Modify:
- **/
-public class UserFilter extends AccessControlFilter {
- public static final Logger LOGGER = LoggerFactory.getLogger(UserFilter.class);
-
- @Override
- protected boolean isAccessAllowed(ServletRequest servletRequest, ServletResponse response, Object mappedValue) throws Exception {
- SessionUser sessionUser = AuthUtil.getSessionUser();
- if (sessionUser != null) {
- LOGGER.info("===用户已登陆==={}",sessionUser);
- return true;
- } else {
- LOGGER.info("===用户未登陆==={}",sessionUser);
- return false;
- }
- }
-
- @Override
- protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
- if (response instanceof HttpServletResponse) {
- LOGGER.info("===请求拒绝===请求路径:{}",((HttpServletRequest)request).getRequestURL());
- HttpServletResponse httpServletResponse = (HttpServletResponse)response;
-
- httpServletResponse.setHeader("Content-Type", "application/json;charset=UTF-8");
- httpServletResponse.setContentType("application/json;charset=UTF-8");
- PrintWriter out = null;
-
- try {
- ResultBean result = new ResultBean();
- result.setSuccess(false);
- result.setErrorMsg("未登录");
- result.setCode("need-login");
- result.setUrl(ShiroAuthConfiguration.USER_LOGIN_URI);
-
- out = response.getWriter();
- out.print(JSONObject.toJSONString(result));
- out.flush();
- } catch (IOException var11) {
- LOGGER.error(var11.getMessage(), var11);
- } finally {
- if (out != null) {
- out.close();
- }
-
- }
- }
-
- return false;
- }
-}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java
index 76afb3b..abc89e6 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java
@@ -1,9 +1,7 @@
package cn.estsh.i3plus.core.apiservice.auth.realm;
-import cn.estsh.i3plus.core.api.iservice.busi.ISystemUserService;
-import cn.estsh.i3plus.core.api.token.AdminToken;
-import cn.estsh.i3plus.core.api.token.SaAdminToken;
-import cn.estsh.i3plus.core.api.token.UserToken;
+import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService;
+import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
@@ -28,7 +26,7 @@ public class AdminAuthRealm extends AuthorizingRealm {
public static final Logger LOGGER = LoggerFactory.getLogger(AdminAuthRealm.class);
@Autowired
- private ISystemUserService systemUserService;
+ private ISystemLoginService systemLoginService;
public AdminAuthRealm(){
//添加支持的token
@@ -45,7 +43,7 @@ public class AdminAuthRealm extends AuthorizingRealm {
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
//管理员令牌
- SessionUser sessionUser = systemUserService.queryCheckAdminLogin((AdminToken) authenticationToken);
+ SessionUser sessionUser = systemLoginService.queryCheckAdminLogin((AdminToken) authenticationToken);
LOGGER.info("管理员令牌验证:{}",sessionUser);
return new SimpleAuthenticationInfo(sessionUser,((AdminToken) authenticationToken).getLoginPwd(),this.getName());
}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java
index cb03454..c7c1c9d 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java
@@ -1,10 +1,10 @@
package cn.estsh.i3plus.core.apiservice.auth.realm;
-import cn.estsh.i3plus.core.api.token.AdminToken;
-import cn.estsh.i3plus.core.api.token.SaAdminToken;
-import cn.estsh.i3plus.core.api.token.UserToken;
import cn.estsh.i3plus.core.apiservice.controller.DemoAuthController;
-import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
+import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
+import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken;
+import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken;
+import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/SaAuthRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/SaAuthRealm.java
index 4e9cd49..7d43bac 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/SaAuthRealm.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/SaAuthRealm.java
@@ -1,8 +1,7 @@
package cn.estsh.i3plus.core.apiservice.auth.realm;
-import cn.estsh.i3plus.core.api.iservice.busi.ISystemUserService;
-import cn.estsh.i3plus.core.api.token.SaAdminToken;
-import cn.estsh.i3plus.core.api.token.UserToken;
+import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService;
+import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
@@ -27,7 +26,7 @@ public class SaAuthRealm extends AuthorizingRealm {
public static final Logger LOGGER = LoggerFactory.getLogger(SaAuthRealm.class);
@Autowired
- private ISystemUserService systemUserService;
+ private ISystemLoginService systemLoginService;
public SaAuthRealm(){
//添加支持的token
@@ -44,7 +43,7 @@ public class SaAuthRealm extends AuthorizingRealm {
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
//管理员令牌
- SessionUser sessionUser = systemUserService.queryCheckSaAdminLogin((SaAdminToken) authenticationToken);
+ SessionUser sessionUser = systemLoginService.queryCheckSaAdminLogin((SaAdminToken) authenticationToken);
LOGGER.info("超级管理员令牌验证:{}",sessionUser);
return new SimpleAuthenticationInfo(sessionUser,((SaAdminToken) authenticationToken).getLoginPwd(),this.getName());
}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/UserAuthRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/UserAuthRealm.java
index 3099ce4..5e7d147 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/UserAuthRealm.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/UserAuthRealm.java
@@ -1,7 +1,7 @@
package cn.estsh.i3plus.core.apiservice.auth.realm;
-import cn.estsh.i3plus.core.api.iservice.busi.ISystemUserService;
-import cn.estsh.i3plus.core.api.token.UserToken;
+import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService;
+import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
@@ -17,7 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
/**
* @Description : 验证规则
- * @Reference :
+ * @Reference :-
* @Author : alwaysfrin
* @CreateDate : 2018-10-13 14:04
* @Modify:
@@ -26,7 +26,7 @@ public class UserAuthRealm extends AuthorizingRealm {
public static final Logger LOGGER = LoggerFactory.getLogger(UserAuthRealm.class);
@Autowired
- private ISystemUserService systemUserService;
+ private ISystemLoginService systemLoginService;
public UserAuthRealm(){
//添加支持的token
@@ -43,7 +43,7 @@ public class UserAuthRealm extends AuthorizingRealm {
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
//管理员令牌
- SessionUser sessionUser = systemUserService.queryCheckUserLogin((UserToken) authenticationToken);
+ SessionUser sessionUser = systemLoginService.queryCheckUserLogin((UserToken) authenticationToken);
LOGGER.info("{}-用户令牌验证:{}",this.getName(),sessionUser);
return new SimpleAuthenticationInfo(sessionUser,((UserToken) authenticationToken).getLoginPwd(),this.getName());
}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/ShiroAuthConfiguration.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/ShiroAuthConfiguration.java
deleted file mode 100644
index 5163000..0000000
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/ShiroAuthConfiguration.java
+++ /dev/null
@@ -1,230 +0,0 @@
-package cn.estsh.i3plus.core.apiservice.configuration;
-
-import cn.estsh.i3plus.core.apiservice.auth.ShiroSessionRedisDaoImpl;
-import cn.estsh.i3plus.core.apiservice.auth.filter.AdminFilter;
-import cn.estsh.i3plus.core.apiservice.auth.filter.SaAdminFilter;
-import cn.estsh.i3plus.core.apiservice.auth.filter.UserFilter;
-import cn.estsh.i3plus.core.apiservice.auth.realm.AdminAuthRealm;
-import cn.estsh.i3plus.core.apiservice.auth.realm.DefaultModularRealm;
-import cn.estsh.i3plus.core.apiservice.auth.realm.SaAuthRealm;
-import cn.estsh.i3plus.core.apiservice.auth.realm.UserAuthRealm;
-import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
-import cn.estsh.impp.framework.boot.configuration.RedisConfig;
-import org.apache.shiro.authc.pam.ModularRealmAuthenticator;
-import org.apache.shiro.cache.Cache;
-import org.apache.shiro.cache.CacheManager;
-import org.apache.shiro.cache.ehcache.EhCacheManager;
-import org.apache.shiro.codec.Base64;
-import org.apache.shiro.realm.Realm;
-import org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
-import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
-import org.apache.shiro.web.mgt.CookieRememberMeManager;
-import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
-import org.apache.shiro.mgt.SecurityManager;
-import org.apache.shiro.web.servlet.SimpleCookie;
-import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.DependsOn;
-import org.springframework.core.annotation.Order;
-
-import javax.crypto.KeyGenerator;
-import javax.crypto.SecretKey;
-import javax.servlet.Filter;
-import java.security.NoSuchAlgorithmException;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * @Description : shiro权限配置
- * @Reference :
- * @Author : alwaysfrin
- * @CreateDate : 2018-10-13 18:25
- * @Modify:
- **/
-@Configuration
-@AutoConfigureAfter(RedisConfig.class) //2类配置,延后加载
-public class ShiroAuthConfiguration {
- public static final Logger LOGGER = LoggerFactory.getLogger(ShiroAuthConfiguration.class);
-
- //三种登陆请求
- public static String USER_LOGIN_URI = "/login";
- public static String USER_FILTER_URI = "/operate/*";
- public static String ADMIN_LOGIN_URI = "/adlogin";
- public static String ADMIN_FILTER_URI = "/adoerate/*";
- public static String SAADMIN_LOGIN_URI = "/salogin";
- public static String SAADMIN_FILTER_URI = "/saoerate/*";
-
- @Bean
- public AdminAuthRealm adminAuthRealm(){
- return new AdminAuthRealm();
- }
-
- @Bean
- public SaAuthRealm saAuthRealm(){
- return new SaAuthRealm();
- }
-
- @Bean
- public UserAuthRealm userAuthRealm(){
- return new UserAuthRealm();
- }
-
- public Map supportRealmMap(){
- //支持的授权规则
- Map realms = new HashMap();
- realms.put(CommonEnumUtil.USER_TYPE.USER.getCode(),userAuthRealm());
- realms.put(CommonEnumUtil.USER_TYPE.ADMIN.getCode(),adminAuthRealm());
- realms.put(CommonEnumUtil.USER_TYPE.SA.getCode(),saAuthRealm());
-
- return realms;
- }
-
- @Bean
- public ModularRealmAuthenticator modularRealmAuthenticator(){
- return new DefaultModularRealm(supportRealmMap());
- }
-
- @Bean
- //@DependsOn("redisUtil")
- public SecurityManager securityManager(){
- LOGGER.info("【shiro-加载securityManager】");
- DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
- securityManager.setAuthenticator(modularRealmAuthenticator());
- securityManager.setRealms(supportRealmMap().values());
- securityManager.setCacheManager(getEhCacheManage()); //缓存管理
- securityManager.setSessionManager(getSessionManage()); //会话管理
- //securityManager.setRememberMeManager(getRememberManager());
- return securityManager;
- }
-
- /*@Bean
- public CookieRememberMeManager getRememberManager(){
- //rememberme cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位),通过以下代码可以获取
- //KeyGenerator keygen = KeyGenerator.getInstance("AES");
- //SecretKey deskey = keygen.generateKey();
- //System.out.println(Base64.encodeToString(deskey.getEncoded()));
- CookieRememberMeManager meManager = new CookieRememberMeManager();
- meManager.setCipherKey(Base64.decode("+vCeyY0qiyO1NdpOX9zX7w=="));
- meManager.setCookie(rememberMeCookie());
- return meManager;
- }
-
- *//**
- * 获取CipherKey
- *//*
- public static void main(String[] args){
- KeyGenerator keygen = null;
- try {
- keygen = KeyGenerator.getInstance("AES");
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- }
- SecretKey deskey = keygen.generateKey();
- System.out.println(Base64.encodeToString(deskey.getEncoded()));
- }
-
- @Bean
- public SimpleCookie rememberMeCookie(){
- //这个参数是cookie的名称,对应前端的checkbox的name = rememberMe
- SimpleCookie simpleCookie = new SimpleCookie("impp_remember_me");
- //如果httyOnly设置为true,则客户端不会暴露给客户端脚本代码,使用HttpOnly cookie有助于减少某些类型的跨站点脚本攻击;
- simpleCookie.setHttpOnly(true);
- //记住我cookie生效时间,默认30天 ,单位秒:60 * 60 * 24 * 30
- simpleCookie.setMaxAge(259200);
-
- return simpleCookie;
- }*/
-
- @Bean
- public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
- ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
- factoryBean.setSecurityManager(securityManager);
-
- Map filterMap = new HashMap();
- filterMap.put("user_filter", new UserFilter());
- filterMap.put("admin_filter", new AdminFilter());
- filterMap.put("saadmin_filter", new SaAdminFilter());
- factoryBean.setFilters(filterMap);
-
- Map filterChain = new LinkedHashMap();
- //不需要过滤的路径,直接通过
- filterChain.put(USER_LOGIN_URI, "anon");
- filterChain.put(ADMIN_LOGIN_URI, "anon");
- filterChain.put(SAADMIN_LOGIN_URI, "anon");
-
- //需要过滤的路径
- filterChain.put(USER_FILTER_URI, "user_filter");
- filterChain.put(ADMIN_FILTER_URI, "admin_filter");
- filterChain.put(SAADMIN_FILTER_URI, "saadmin_filter");
-
- factoryBean.setFilterChainDefinitionMap(filterChain);
-
- LOGGER.info("【shiro过滤】加载完成...");
- return factoryBean;
- }
-
- /**
- * 缓存管理
- * @return
- */
- @Bean(name = "ehCacheManager")
- public CacheManager getEhCacheManage() {
- LOGGER.info("【shiro-加载缓存cacheManager】");
- EhCacheManager em = new EhCacheManager();
- em.setCacheManagerConfigFile("classpath:cache_session.xml");
- return em;
- }
-
- @Bean(name = "sessionManager")
- public DefaultWebSessionManager getSessionManage() {
- LOGGER.info("【shiro-加载sessionManager】");
- DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
- sessionManager.setSessionValidationScheduler(getExecutorServiceSessionValidationScheduler());
- sessionManager.setSessionValidationSchedulerEnabled(true);
- sessionManager.setDeleteInvalidSessions(true);
- sessionManager.setSessionIdCookieEnabled(true);
- sessionManager.setSessionIdCookie(getSessionIdCookie());
- sessionManager.setSessionDAO(getShiroSessionRedisDaoImpl());
- sessionManager.setGlobalSessionTimeout(30 * 60 * 1000); //30分钟有效期(以sessionDao中的有效时间为准)
-
- // 可以添加session 创建、删除的监听器
- return sessionManager;
- }
-
- @Bean
- public ShiroSessionRedisDaoImpl getShiroSessionRedisDaoImpl(){
- LOGGER.info("【shiro-加载缓存redisSessionManager】");
- ShiroSessionRedisDaoImpl shiroSessionRedisDao = new ShiroSessionRedisDaoImpl();
-
- LOGGER.info("【shiro-加载缓存cacheManager】");
- shiroSessionRedisDao.setLocalCacheManager(getEhCacheManage() );
- return shiroSessionRedisDao;
- }
-
- /**
- * 授权验证监听任务
- * @return
- */
- @Bean(name = "sessionValidationScheduler")
- public ExecutorServiceSessionValidationScheduler getExecutorServiceSessionValidationScheduler() {
- LOGGER.info("【shiro-加载sessionValidationScheduler】");
- ExecutorServiceSessionValidationScheduler scheduler = new ExecutorServiceSessionValidationScheduler();
- scheduler.setInterval(3 * 60 * 1000); //每3分钟执行一次验证
- return scheduler;
- }
-
- @Bean(name = "sessionIdCookie")
- public SimpleCookie getSessionIdCookie() {
- LOGGER.info("【shiro-加载sessionIdCookie】");
- SimpleCookie cookie = new SimpleCookie("sid");
- cookie.setHttpOnly(true);
- cookie.setMaxAge(-1);
-
- return cookie;
- }
-}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/CoreTreeController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/CoreTreeController.java
new file mode 100644
index 0000000..8f0fe3a
--- /dev/null
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/CoreTreeController.java
@@ -0,0 +1,67 @@
+package cn.estsh.i3plus.core.apiservice.controller;
+
+import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService;
+import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService;
+import cn.estsh.i3plus.platform.common.convert.ConvertBean;
+import cn.estsh.i3plus.pojo.base.bean.ListPager;
+import cn.estsh.i3plus.pojo.base.common.Pager;
+import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
+import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
+import cn.estsh.i3plus.pojo.platform.bean.Department;
+import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
+import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
+import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
+import cn.estsh.impp.framework.boot.auth.AuthUtil;
+import cn.estsh.impp.framework.boot.exception.ImppBusiException;
+import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
+import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
+import cn.estsh.impp.framework.boot.util.ImppRedis;
+import cn.estsh.impp.framework.boot.util.ResultBean;
+import cn.estsh.impp.framework.boot.util.ValidatorBean;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.i18n.LocaleContextHolder;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Locale;
+
+/**
+ * @Description : 系统资源服务demo
+ * @Reference :
+ * @Author : alwaysfrin
+ * @CreateDate : 2018-09-26 10:34
+ * @Modify:
+ **/
+@RestController
+@RequestMapping("/core/tree")
+@Api(description="系统服务demo")
+public class CoreTreeController {
+ private static final Logger LOGGER = LoggerFactory.getLogger(CoreTreeController.class);
+
+ @Autowired
+ private ICoreTreeService coreTreeService;
+
+ @GetMapping(value="/department")
+ @ApiOperation(value="查询部门树",notes="通过部门主键获取部门树,-1为根节点")
+ public ResultBean listDepartmentTree(long depParentId) {
+ try {
+ Department department = coreTreeService.getDepartmentTreeByParentId(depParentId);
+
+ return ResultBean.success("查询部门树成功")
+ .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
+ .setResultObject(department);
+ }catch(ImppBusiException busExcep){
+ LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep);
+ return ResultBean.fail(busExcep.getErrorShow());
+ }catch(Exception e){
+ LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}",e.getMessage(),e);
+ return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
+ }
+
+}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoAuthController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoAuthController.java
index 9a0e891..853f73c 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoAuthController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoAuthController.java
@@ -1,12 +1,10 @@
package cn.estsh.i3plus.core.apiservice.controller;
-import cn.estsh.i3plus.core.api.iservice.busi.ISystemUserService;
-import cn.estsh.i3plus.core.apiservice.auth.AuthUtil;
+import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService;
import cn.estsh.i3plus.platform.common.tool.EncryptTool;
-import cn.estsh.i3plus.platform.common.util.CommonConstWords;
-import cn.estsh.i3plus.pojo.factory.bean.MachineFactory;
-import cn.estsh.i3plus.pojo.model.busi.ResultBean;
+import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
+import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import io.swagger.annotations.Api;
@@ -14,13 +12,10 @@ import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
-import java.io.UnsupportedEncodingException;
-import java.security.NoSuchAlgorithmException;
/**
* @Description :
@@ -34,11 +29,11 @@ import java.security.NoSuchAlgorithmException;
public class DemoAuthController {
public static final Logger LOGGER = LoggerFactory.getLogger(DemoAuthController.class);
@Autowired
- private ISystemUserService systemUserService;
+ private ISystemLoginService systemLoginService;
/**
* 缓存
*/
- @Resource(name="redisUtil")
+ @Resource(name="redisCore")
private ImppRedis imppRedis;
@GetMapping(value="/login")
@@ -46,7 +41,7 @@ public class DemoAuthController {
public ResultBean login(String loginName,String loginPwd,String languageCode){
LOGGER.info("用户登陆:{},{},{}",loginName,loginPwd,languageCode);
try {
- SessionUser sUser = systemUserService.queryUserLogin(loginName,loginPwd,languageCode);
+ SessionUser sUser = systemLoginService.queryUserLogin(loginName,loginPwd,languageCode);
LOGGER.info("会员登陆:{}",sUser);
AuthUtil.setSessionObject("languageCode",languageCode);
@@ -97,7 +92,7 @@ public class DemoAuthController {
LOGGER.info("管理员登陆:{},{},{}",loginName,loginPwd,languageCode);
try {
- systemUserService.queryAdminLogin(loginName,EncryptTool.hexMD5(loginPwd),languageCode);
+ systemLoginService.queryAdminLogin(loginName,EncryptTool.hexMD5(loginPwd),languageCode);
return new ResultBean(true,"");
} catch (Exception e) {
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRestController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRestController.java
index dfb8f86..efb5464 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRestController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRestController.java
@@ -1,16 +1,11 @@
package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueue;
-import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
-import cn.estsh.i3plus.pojo.factory.bean.MachineFactory;
-import cn.estsh.i3plus.pojo.model.busi.ResultBean;
-import cn.estsh.impp.framework.base.BaseImppException;
-import cn.estsh.impp.framework.boot.exception.ImppBusiException;
+import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
+import cn.estsh.impp.framework.boot.util.ResultBean;
+import cn.estsh.i3plus.pojo.mes.MachineFactory;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
-import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient;
-import cn.estsh.impp.framework.boot.quartz.ScheduleTool;
-import cn.estsh.impp.framework.boot.quartz.TaskInfo;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import com.rabbitmq.client.Channel;
import io.swagger.annotations.Api;
@@ -21,15 +16,11 @@ import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.annotation.Resource;
import java.io.IOException;
-import java.util.List;
import java.util.Locale;
import java.util.concurrent.TimeoutException;
@@ -49,8 +40,8 @@ public class DemoRestController {
/**
* 缓存
*/
- @Resource(name="redisUtil")
- private ImppRedis imppRedis;
+ @Resource(name="redisCore")
+ private ImppRedis redisCore;
/**
* rabbitMQ队列
@@ -70,8 +61,8 @@ public class DemoRestController {
@ApiOperation(value="缓存",notes="放入数据")
public ResultBean putCache(){
//放入缓存
- imppRedis.putObject("machineFactory",new MachineFactory("111","nnnn"));
- imppRedis.putObject("wms","123123123");
+ redisCore.putObject("machineFactory",new MachineFactory("111","nnnn"));
+ redisCore.putObject("wms","123123123");
return new ResultBean(true,"已放入缓存");
}
@@ -79,9 +70,9 @@ public class DemoRestController {
@GetMapping(value="/get-cache")
@ApiOperation(value="缓存",notes="获取数据")
public ResultBean getCache(){
- MachineFactory mf = (MachineFactory) imppRedis.getObject("machineFactory");
+ MachineFactory mf = (MachineFactory) redisCore.getObject("machineFactory");
System.out.println("1===== " + mf);
- System.out.println("2===== " + imppRedis.getObject("wms"));
+ System.out.println("2===== " + redisCore.getObject("wms"));
return new ResultBean(true,mf);
}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoScheduleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoScheduleController.java
index 702471d..5200db6 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoScheduleController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoScheduleController.java
@@ -1,27 +1,18 @@
package cn.estsh.i3plus.core.apiservice.controller;
-import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueue;
-import cn.estsh.i3plus.pojo.factory.bean.MachineFactory;
-import cn.estsh.i3plus.pojo.model.busi.ResultBean;
+import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.quartz.ScheduleTool;
import cn.estsh.impp.framework.boot.quartz.TaskInfo;
-import cn.estsh.impp.framework.boot.util.ImppRedis;
-import com.rabbitmq.client.Channel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.amqp.core.Message;
-import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.io.IOException;
import java.util.List;
-import java.util.concurrent.TimeoutException;
/**
* @Description :
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoSystemController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoSystemController.java
index 8550c3d..eaefbef 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoSystemController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoSystemController.java
@@ -1,42 +1,42 @@
package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService;
-import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueue;
-import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
-import cn.estsh.i3plus.pojo.factory.bean.MachineFactory;
-import cn.estsh.i3plus.pojo.model.busi.ResultBean;
+import cn.estsh.i3plus.platform.common.convert.ConvertBean;
+import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
+import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
+import cn.estsh.i3plus.pojo.base.bean.ListPager;
+import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
+import cn.estsh.impp.framework.boot.auth.AuthUtil;
+import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
+import cn.estsh.impp.framework.boot.util.ResultBean;
+import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
-import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
+import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ImppRedis;
-import com.rabbitmq.client.Channel;
+import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.amqp.core.Message;
-import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
-import java.io.IOException;
import java.util.Locale;
-import java.util.concurrent.TimeoutException;
/**
- * @Description :
+ * @Description : 系统资源服务demo
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-26 10:34
* @Modify:
**/
@RestController
-@RequestMapping("/demo-system")
+@RequestMapping("/demo-system-service")
@Api(description="系统服务demo")
public class DemoSystemController {
private static final Logger LOGGER = LoggerFactory.getLogger(DemoSystemController.class);
@@ -44,8 +44,8 @@ public class DemoSystemController {
/**
* 缓存
*/
- @Resource(name="redisUtil")
- private ImppRedis imppRedis;
+ @Resource(name="redisCore")
+ private ImppRedis redisCore;
/**
* rabbitMQ队列
@@ -56,41 +56,160 @@ public class DemoSystemController {
@Autowired
private ISystemResourceService systemResourceService;
- @PutMapping(value="/addlanguage")
- @ApiOperation(value="添加语言")
- public ResultBean addlanguage(SysLocaleLanguage lang) {
- systemResourceService.saveSysLocaleLanguage(lang);
- return new ResultBean(true,"操作成功");
+ @PutMapping(value="/language/insert")
+ @ApiOperation(value="添加语言",notes = "添加系统语言,可用于国际化")
+ public ResultBean insertLanguage(SysLocaleLanguage lang) {
+ try {
+ //登陆用户
+ SessionUser user = AuthUtil.getSessionUser();
+
+ //条件验证
+ ValidatorBean.beginValid(lang)
+ .notNull("languageName",lang.getLanguageName())
+ .notNull("languageCode",lang.getLanguageCode());
+
+ //新增初始化
+ ConvertBean.modelInitialize(lang,user);
+
+ systemResourceService.insertSysLocaleLanguage(lang);
+ return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
+ }catch(ImppBusiException busExcep){
+ LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep);
+ return ResultBean.fail(busExcep.getErrorShow()).build();
+ }catch(Exception e){
+ return ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
}
- @PutMapping(value="/listlang")
- @ApiOperation(value="查询语言")
- public ResultBean listlang(SysLocaleLanguage lang) {
- return new ResultBean(true,"操作成功",systemResourceService.listSysLocaleLanguage(lang));
+ @PutMapping(value="/language/update")
+ @ApiOperation(value="修改语言",notes = "修改系统语言,可用于国际化")
+ public ResultBean updateLanguage(SysLocaleLanguage lang) {
+ try {
+ //登陆用户
+ SessionUser user = AuthUtil.getSessionUser();
+
+ //条件验证
+ ValidatorBean.beginValid(lang)
+ .notNull("languageName",lang.getLanguageName())
+ .notNull("languageCode",lang.getLanguageCode());
+
+ //修改条件
+ ConvertBean.modelUpdate(lang,user);
+ systemResourceService.updateSysLocaleLanguage(lang);
+ return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
+ }catch(ImppBusiException busExcep){
+ LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep);
+ return ResultBean.fail(busExcep.getErrorShow()).build();
+ }catch(Exception e){
+ return ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
}
- @PutMapping(value="/addres")
- @ApiOperation(value="添加资源")
- public ResultBean addres(SysLocaleResource res) {
- systemResourceService.saveSysLocaleResource(res);
- return new ResultBean(true,"操作成功");
+ @PutMapping(value="/language/query")
+ @ApiOperation(value="查询语言",notes = "添加系统语言,可用于国际化")
+ public ResultBean queryLanguage(SysLocaleLanguage lang,Pager pager) {
+ try {
+ ListPager listPager = systemResourceService.listSysLocaleLanguageByPager(lang,pager);
+ return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
+ }catch(ImppBusiException busExcep){
+ LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep);
+ return ResultBean.fail(busExcep.getErrorShow());
+ }catch(Exception e){
+ LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}",e.getMessage(),e);
+ return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
}
- @PutMapping(value="/listres")
- @ApiOperation(value="查询资源")
- public ResultBean listres(SysLocaleResource res) {
- return new ResultBean(true,"操作成功",systemResourceService.listSysLocaleResource(res));
+ @PutMapping(value="/resource/insert")
+ @ApiOperation(value="添加资源",notes = "添加系统语言,可用于国际化")
+ public ResultBean insertResource(SysLocaleResource res) {
+ try {
+ //登陆用户
+ SessionUser user = AuthUtil.getSessionUser();
+
+ //条件验证
+ ValidatorBean.beginValid(res)
+ .notNull("resourceKey",res.getResourceKey())
+ .notNull("resourceValue",res.getResourceValue());
+
+ //新增初始化
+ ConvertBean.modelInitialize(res,user);
+ systemResourceService.insertSysLocaleResource(res);
+ return ResultBean.success("操作成功")
+ .setResultObject(res)
+ .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
+ }catch(ImppBusiException busExcep){
+ LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep);
+ return ResultBean.fail(busExcep.getErrorShow());
+ }catch(Exception e){
+ LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}",e.getMessage(),e);
+ return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
+ }
+
+ @PutMapping(value="/resource/query")
+ @ApiOperation(value="查询资源",notes = "分页查询系统资源")
+ public ResultBean queryResource(SysLocaleResource res,Pager pager) {
+ try{
+ ListPager listPager = systemResourceService.listSysLocaleResourceByPager(res,pager);
+ return ResultBean.success("操作成功")
+ .setListPager(listPager)
+ .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
+ }catch(ImppBusiException busExcep){
+ LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep);
+ return ResultBean.fail(busExcep.getErrorShow());
+ }catch(Exception e){
+ LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}",e.getMessage(),e);
+ return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
}
- @GetMapping(value="/getlocaleresource")
+ @GetMapping(value="/locale-resource/get")
@ApiOperation(value="语言资源匹配",notes="资源配置文件及国际化")
- public ResultBean getlocaleresource(int resourceType,String langCode,String resKey) {
- Locale locale = LocaleContextHolder.getLocale();
- System.out.println("当前语言:"+locale.getLanguage() + ",国家:" + locale.getCountry());
+ public ResultBean getLocaleResource(int resourceType,String langCode,String resKey) {
+ try {
+ ValidatorBean.checkNotZero(resourceType,"请选择资源类型。");
+ ValidatorBean.checkNotNull(langCode,"请输入语言编码");
+ ValidatorBean.checkNotNull(resKey,"请输入资源编码");
+ Locale locale = LocaleContextHolder.getLocale();
+ LOGGER.info("当前语言:" + locale.getLanguage() + ",国家:" + locale.getCountry());
- SysLocaleResource res = systemResourceService.getSysLocaleResourceByLanguage(resourceType,langCode,resKey);
- System.out.println("获取的资源:" + res);
+ SysLocaleResource res = systemResourceService.getSysLocaleResourceByLanguage(resourceType, langCode, resKey);
+ LOGGER.info("获取的资源:" + res);
- return new ResultBean(true,"操作成功",res);
+ return ResultBean.success("保存成功")
+ .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
+ .setResultObject(res);
+ }catch(ImppBusiException busExcep){
+ LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep);
+ return ResultBean.fail(busExcep.getErrorShow());
+ }catch(Exception e){
+ LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}",e.getMessage(),e);
+ return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
}
+
+ @DeleteMapping (value="/locale-resource/delete")
+ @ApiOperation(value="删除资源",notes="批量删除资源")
+ public ResultBean deleteLocaleResource(String[] resourceIds) {
+ try {
+ if(resourceIds.length == 0){
+ throw ImppExceptionBuilder.newInstance()
+ .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
+ .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
+ .setErrorDetail("请选择需要删除的资源。")
+ .build();
+ }
+ systemResourceService.deleteSysLocaleResourceByIds(resourceIds);
+
+ return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
+ }catch(ImppBusiException busExcep){
+ LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep);
+ return ResultBean.fail(busExcep.getErrorShow());
+ }catch(Exception e){
+ LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}",e.getMessage(),e);
+ return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
+ }
+
}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SimpleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SimpleController.java
index 0c5ea4b..5d8a5f0 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SimpleController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SimpleController.java
@@ -1,8 +1,8 @@
package cn.estsh.i3plus.core.apiservice.controller.base;
import cn.estsh.i3plus.core.api.iservice.base.IDataSimpleService;
-import cn.estsh.i3plus.pojo.factory.bean.MachineFactory;
-import cn.estsh.i3plus.pojo.model.busi.ResultBean;
+import cn.estsh.impp.framework.boot.util.ResultBean;
+import cn.estsh.i3plus.pojo.mes.MachineFactory;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/FactoryStoreController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/FactoryStoreController.java
index c509afe..373f58b 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/FactoryStoreController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/FactoryStoreController.java
@@ -1,7 +1,7 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.IDataMoreService;
-import cn.estsh.i3plus.pojo.model.busi.ResultBean;
+import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.i3plus.pojo.wms.bean.FactoryStore;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IMachineFactoryDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IMachineFactoryDao.java
index abb4d11..87cd346 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IMachineFactoryDao.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IMachineFactoryDao.java
@@ -1,6 +1,6 @@
package cn.estsh.i3plus.core.apiservice.dao;
-import cn.estsh.i3plus.pojo.factory.bean.MachineFactory;
+import cn.estsh.i3plus.pojo.mes.MachineFactory;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/listener/SysResourceBindleListener.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/listener/SysResourceBindleListener.java
index 52d2248..897dbeb 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/listener/SysResourceBindleListener.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/listener/SysResourceBindleListener.java
@@ -2,16 +2,14 @@ package cn.estsh.i3plus.core.apiservice.listener;
import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService;
import cn.estsh.i3plus.core.apiservice.util.ConstWords;
-import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
+import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
-import cn.estsh.impp.framework.boot.configuration.SwaggerConfig;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
-import org.springframework.context.annotation.Bean;
import org.springframework.context.event.ContextRefreshedEvent;
import javax.annotation.Resource;
@@ -31,8 +29,8 @@ public class SysResourceBindleListener implements ApplicationListener listSysLocaleLanguageByPager(SysLocaleLanguage lang, Pager pager) {
+ public ListPager listSysLocaleLanguageByPager(SysLocaleLanguage lang, Pager pager) {
if(lang == null) {
pager = PagerHelper.getPager(pager, sysLocaleLanguageRDao.listCount());
- return sysLocaleLanguageRDao.listPager(pager);
+ return new ListPager(sysLocaleLanguageRDao.listPager(pager),pager);
}else {
- String[] params = new String[]{"languageCode", "languageName", "isDefault"};
- Object[] values = new Object[]{lang.getLanguageCode(), lang.getLanguageName(), lang.getIsDefault()};
-
- pager = PagerHelper.getPager(pager, sysLocaleLanguageRDao.findByPropertyCount(params,values));
- return sysLocaleLanguageRDao.findByPropertyPage(params,values,"order by id asc",pager);
+ String hqlPack = CoreHqlPack.packHqlSysLocaleLanguage(lang);
+ pager = PagerHelper.getPager(pager, sysLocaleLanguageRDao.findByHqlWhereCount(hqlPack));
+ return new ListPager(sysLocaleLanguageRDao.findByHqlWherePage(hqlPack + lang.getOrderByParam(),pager),pager);
}
}
@Override
- public SysLocaleResource saveSysLocaleResource(SysLocaleResource res) {
+ public SysLocaleResource insertSysLocaleResource(SysLocaleResource res) {
return sysLocaleResourceRDao.insert(res);
}
@@ -87,17 +86,24 @@ public class SystemResourceService implements ISystemResourceService {
}
@Override
- public List listSysLocaleResourceByPager(SysLocaleResource res, Pager pager) {
+ public void deleteSysLocaleResourceByIds(String[] ids){
+ for(String idStr : ids){
+ sysLocaleResourceRDao.deleteById(Long.parseLong(idStr));
+ }
+ }
+
+ @Override
+ public ListPager listSysLocaleResourceByPager(SysLocaleResource res, Pager pager) {
if(res == null){
+ //不传入实体对象,查询所有
int count = sysLocaleResourceRDao.listCount();
pager = PagerHelper.getPager(pager,count);
- return sysLocaleResourceRDao.listPager(pager);
+ return new ListPager(sysLocaleResourceRDao.listPager(pager),pager);
}else {
- String[] params = new String[]{"resourceType", "languageCode", "resourceKey", "resourceValue", "isSystem", "isDefault"};
- Object[] values = new Object[]{res.getResourceType(), res.getLanguageCode(), res.getResourceKey(), res.getResourceValue(), res.getIsSystem(), res.getIsDefault()};
-
- pager = PagerHelper.getPager(pager,sysLocaleResourceRDao.findByPropertyCount(params,values));
- return sysLocaleResourceRDao.findByPropertyPage(params,values,"order by id asc", pager);
+ //生成hql查询语句
+ String hqlPack = CoreHqlPack.packHqlSysLocaleResource(res);
+ pager = PagerHelper.getPager(pager,sysLocaleResourceRDao.findByHqlWhereCount(hqlPack));
+ return new ListPager(sysLocaleResourceRDao.findByHqlWherePage(hqlPack + res.orderBy(), pager),pager);
}
}
diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties
index d14d31a..1b8c5bf 100644
--- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties
+++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties
@@ -1,3 +1,17 @@
+#û½·
+filter.shiro.user.loginuri = /login
+#ϵͳԱ½·
+filter.shiro.admin.loginuri = /salogin
+#άԱ½·
+filter.shiro.saadmin.loginuri = /salogin
+
+#ûȨ·
+filter.shiro.user.filteruri = /operate/*
+#ûȨ·
+filter.shiro.admin.filteruri = /adoperate/*
+#ûȨ·
+filter.shiro.saadmin.filteruri = /saoperate/*
+
################ Դ ################
# mysql
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
diff --git a/modules/i3plus-core-apiservice/src/main/resources/application.properties b/modules/i3plus-core-apiservice/src/main/resources/application.properties
index 15285c9..70b4d92 100644
--- a/modules/i3plus-core-apiservice/src/main/resources/application.properties
+++ b/modules/i3plus-core-apiservice/src/main/resources/application.properties
@@ -1,7 +1,7 @@
#Ŀ
spring.application.name=${project.name}
#Ŀ˿
-server.port=8080
+server.port=8081
#ʹ
spring.profiles.active=dev
diff --git a/modules/i3plus-core-apiservice/src/main/resources/banner.txt b/modules/i3plus-core-apiservice/src/main/resources/banner.txt
new file mode 100644
index 0000000..de58f3d
--- /dev/null
+++ b/modules/i3plus-core-apiservice/src/main/resources/banner.txt
@@ -0,0 +1,15 @@
+ ______ _____ _______ _____ _ _ _____ ____ _____ _
+ | ____|/ ____|__ __/ ____| | | | |_ _|___ \| __ \| |
+ | |__ | (___ | | | (___ | |__| | | | __) | |__) | |_ _ ___
+ | __| \___ \ | | \___ \| __ | | | |__ <| ___/| | | | / __|
+ | |____ ____) | | | ____) | | | | _ _| |_ ___) | | | | |_| \__ \
+ |______|_____/ |_| |_____/|_| |_| (_)_____|____/|_| |_|\__,_|___/
+ _____ __ __ _____ _____ _ _ __
+ |_ _| \/ | __ \| __ \| | | | / _|
+ | | | \ / | |__) | |__) | | __ _| |_| |_ ___ _ __ _ __ ___
+ | | | |\/| | ___/| ___/| |/ _` | __| _/ _ \| '__| '_ ` _ \
+ _| |_| | | | | | | | | (_| | |_| || (_) | | | | | | | |
+ |_____|_| |_|_| |_| |_|\__,_|\__|_| \___/|_| |_| |_| |_|
+------------------------------------------------------------------->>>
+ ::::: CORE of i3plus Impp framework :::: (v1.0.0.Build)
+------------------------------------------------------------------->>> >>>
diff --git a/modules/i3plus-core-apiservice/src/main/resources/log4j2.xml b/modules/i3plus-core-apiservice/src/main/resources/log4j2.xml
index 75208ea..0ac324c 100644
--- a/modules/i3plus-core-apiservice/src/main/resources/log4j2.xml
+++ b/modules/i3plus-core-apiservice/src/main/resources/log4j2.xml
@@ -2,7 +2,8 @@
- %d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
+
+ [%-5p] %d{yyyy-MM-dd HH:mm:ss-SSS} %l:%m%n
diff --git a/pom.xml b/pom.xml
index 11b707a..6d77ff9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,11 +47,6 @@
i3plus.pojo
- i3plus-pojo-factory
- ${project.version}
-
-
- i3plus.pojo
i3plus-pojo-wms
${project.version}
@@ -66,6 +61,12 @@
${project.version}
+
+ i3plus.pojo
+ i3plus-pojo-model
+ ${project.version}
+
+
i3plus.core
@@ -109,6 +110,11 @@
shiro-spring
1.4.0
+
+ org.apache.shiro
+ shiro-ehcache
+ 1.4.0
+