| | |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.redis.cache.BladeRedis; |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.support.Kv; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.ObjectUtil; |
| | |
| | | @Override |
| | | public boolean pwdFreeLoginByBoolean(String userName, ServletRequest servletRequest) throws AuthenticationException { |
| | | //进来先判断缓存中是否存在token |
| | | // 请求来自己哪个ip地址 |
| | | // 请求来自哪个ip地址 |
| | | HttpServletRequest request = (HttpServletRequest) servletRequest; |
| | | String ipAddr = request.getRemoteAddr(); |
| | | // 先尝试从缓存当中取,存在就直接从缓存中获取 |
| | |
| | | String token2 = JwtUtil.getToken(authToken); |
| | | BladeUser user = this.getUser(token2); |
| | | //不存在就请求 |
| | | if((Func.isEmpty(authToken) || Func.isEmpty(user)) && user.getTenantId().equals(NacosConfigCache.getAdminUserInfo().getTenantId())){ |
| | | if(Func.isEmpty(authToken) || Func.isEmpty(user) || !user.getTenantId().equals(NacosConfigCache.getAdminUserInfo().getTenantId())){ |
| | | String responseBody = this.passwordFreeLogin(userName); |
| | | //拿到响应体其中包含token,用request中的ip地址作为键值,将token存入缓存 |
| | | TokenUserObject tokenUserObject = null; |
| | |
| | | token2 = JwtUtil.getToken(authToken); |
| | | user = this.getUser(token2); |
| | | } |
| | | //request.setAttribute("Blade-Auth",token); |
| | | request.setAttribute("Blade-Auth",authToken); |
| | | request.setAttribute("_BLADE_USER_REQUEST_ATTR_",user); |
| | | return true; |
| | | } |