diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java b/modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java index 14f99948..d118c3ba 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java @@ -11,6 +11,7 @@ import org.apache.shiro.subject.PrincipalCollection; import com.jeesite.common.codec.EncodeUtils; import com.jeesite.common.lang.ObjectUtils; +import com.jeesite.common.utils.SpringUtils; import com.jeesite.common.web.http.ServletUtils; import com.jeesite.modules.sys.entity.EmpUser; import com.jeesite.modules.sys.entity.Log; @@ -45,7 +46,7 @@ public class AuthorizingRealm extends com.jeesite.common.shiro.realm.BaseAuthori .decodeUrl(ObjectUtils.toString(attributes.get("companyCode")))); empUser.getEmployee().getOffice().setOfficeCode(EncodeUtils .decodeUrl(ObjectUtils.toString(attributes.get("officeCode")))); - empUserService.save(empUser); + getEmpUserService().save(empUser); } @Override @@ -55,7 +56,7 @@ public class AuthorizingRealm extends com.jeesite.common.shiro.realm.BaseAuthori User user = UserUtils.getUser(); // 更新登录IP、时间、会话ID等 - userService.updateUserLoginInfo(user); + getUserService().updateUserLoginInfo(user); // 记录用户登录日志 LogUtils.saveLog(user, ServletUtils.getRequest(), "系统登录", Log.TYPE_LOGIN_LOGOUT); @@ -66,13 +67,19 @@ public class AuthorizingRealm extends com.jeesite.common.shiro.realm.BaseAuthori // 记录用户退出日志 LogUtils.saveLog(logoutUser, request, "系统退出", Log.TYPE_LOGIN_LOGOUT); } - - public void setUserService(UserService userService) { - this.userService = userService; + + public UserService getUserService() { + if (userService == null){ + userService = SpringUtils.getBean(UserService.class); + } + return userService; } - public void setEmpUserService(EmpUserService empUserService) { - this.empUserService = empUserService; + public EmpUserService getEmpUserService() { + if (empUserService == null){ + empUserService = SpringUtils.getBean(EmpUserService.class); + } + return empUserService; } } diff --git a/modules/core/src/main/java/com/jeesite/modules/config/ShiroConfig.java b/modules/core/src/main/java/com/jeesite/modules/config/ShiroConfig.java index ba3fc416..38b347d4 100644 --- a/modules/core/src/main/java/com/jeesite/modules/config/ShiroConfig.java +++ b/modules/core/src/main/java/com/jeesite/modules/config/ShiroConfig.java @@ -30,8 +30,6 @@ import com.jeesite.common.shiro.session.SessionDAO; import com.jeesite.common.shiro.session.SessionManager; import com.jeesite.common.shiro.web.ShiroFilterFactoryBean; import com.jeesite.common.shiro.web.WebSecurityManager; -import com.jeesite.modules.sys.service.EmpUserService; -import com.jeesite.modules.sys.service.UserService; /** * Shiro配置 @@ -54,13 +52,10 @@ public class ShiroConfig { * 系统安全认证实现类 */ @Bean - public AuthorizingRealm authorizingRealm(SessionDAO sessionDAO, UserService userService, - EmpUserService empUserService, CasOutHandler casOutHandler) { + public AuthorizingRealm authorizingRealm(SessionDAO sessionDAO, CasOutHandler casOutHandler) { AuthorizingRealm bean = new AuthorizingRealm(); bean.setCachingEnabled(false); bean.setSessionDAO(sessionDAO); - bean.setUserService(userService); - bean.setEmpUserService(empUserService); bean.setCasOutHandler(casOutHandler); bean.setCasServerUrl(Global.getProperty("shiro.casServerUrl")); bean.setCasServerCallbackUrl(Global.getProperty("shiro.casClientUrl") + Global.getAdminPath() + "/login-cas");