From d8be91f8eb8885b871906919da721da75193dc91 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Thu, 9 Oct 2025 22:52:18 +0800 Subject: [PATCH] =?UTF-8?q?SpringUtils=20=E5=A2=9E=E5=8A=A0=20getBeanIfAva?= =?UTF-8?q?ilable=20=E6=96=B9=E6=B3=95=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=8F=AF?= =?UTF-8?q?=E7=94=A8=E5=88=99=E8=BF=94=E5=9B=9EBean=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E6=8A=9B=E5=87=BA=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shiro/realm/CasAuthorizingRealm.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/realm/CasAuthorizingRealm.java b/modules/core/src/main/java/com/jeesite/common/shiro/realm/CasAuthorizingRealm.java index d4133db3..b1237959 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/realm/CasAuthorizingRealm.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/realm/CasAuthorizingRealm.java @@ -20,6 +20,8 @@ import com.jeesite.modules.sys.service.EmpUserService; import com.jeesite.modules.sys.service.UserService; import com.jeesite.modules.sys.utils.LogUtils; import com.jeesite.modules.sys.utils.UserUtils; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.ValidationException; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; @@ -28,10 +30,7 @@ import org.jasig.cas.client.validation.Assertion; import org.jasig.cas.client.validation.Cas20ServiceTicketValidator; import org.jasig.cas.client.validation.TicketValidationException; import org.jasig.cas.client.validation.TicketValidator; -import org.springframework.beans.factory.NoSuchBeanDefinitionException; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.validation.ValidationException; import java.util.Map; /** @@ -154,15 +153,13 @@ public class CasAuthorizingRealm extends BaseAuthorizingRealm { // 其它类型,根据项目需要自行创建 else{ - try{ - CasCreateUser casCreateUser = SpringUtils.getBean(CasCreateUser.class); - if(casCreateUser != null){ - casCreateUser.createUser(user, attrs); - } - }catch(NoSuchBeanDefinitionException e){ + User finalUser = user; + SpringUtils.getBeanIfAvailable(CasCreateUser.class, (casCreateUser) -> { + casCreateUser.createUser(finalUser, attrs); + }, (e -> { throw new AuthenticationException("msg:用户 “" + token.getUsername() - + "”, 类型 “" + user.getUserType() + "” 在本系统中不存在, 请联系管理员."); - } + + "”, 类型 “" + finalUser.getUserType() + "” 在本系统中不存在, 请联系管理员."); + })); } }else{ throw new AuthenticationException("msg:用户 “" + token.getUsername() + "” 在本系统中不存在, 请联系管理员.");