SpringUtils 增加 getBeanIfAvailable 方法,如果可用则返回Bean,不抛出异常

This commit is contained in:
thinkgem
2025-10-09 22:52:18 +08:00
parent 490ef7c69d
commit d8be91f8eb

View File

@@ -20,6 +20,8 @@ import com.jeesite.modules.sys.service.EmpUserService;
import com.jeesite.modules.sys.service.UserService; import com.jeesite.modules.sys.service.UserService;
import com.jeesite.modules.sys.utils.LogUtils; import com.jeesite.modules.sys.utils.LogUtils;
import com.jeesite.modules.sys.utils.UserUtils; 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.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken; 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.Cas20ServiceTicketValidator;
import org.jasig.cas.client.validation.TicketValidationException; import org.jasig.cas.client.validation.TicketValidationException;
import org.jasig.cas.client.validation.TicketValidator; 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; import java.util.Map;
/** /**
@@ -154,15 +153,13 @@ public class CasAuthorizingRealm extends BaseAuthorizingRealm {
// 其它类型,根据项目需要自行创建 // 其它类型,根据项目需要自行创建
else{ else{
try{ User finalUser = user;
CasCreateUser casCreateUser = SpringUtils.getBean(CasCreateUser.class); SpringUtils.getBeanIfAvailable(CasCreateUser.class, (casCreateUser) -> {
if(casCreateUser != null){ casCreateUser.createUser(finalUser, attrs);
casCreateUser.createUser(user, attrs); }, (e -> {
}
}catch(NoSuchBeanDefinitionException e){
throw new AuthenticationException("msg:用户 “" + token.getUsername() throw new AuthenticationException("msg:用户 “" + token.getUsername()
+ "”, 类型 “" + user.getUserType() + "” 在本系统中不存在, 请联系管理员."); + "”, 类型 “" + finalUser.getUserType() + "” 在本系统中不存在, 请联系管理员.");
} }));
} }
}else{ }else{
throw new AuthenticationException("msg:用户 “" + token.getUsername() + "” 在本系统中不存在, 请联系管理员."); throw new AuthenticationException("msg:用户 “" + token.getUsername() + "” 在本系统中不存在, 请联系管理员.");